Community生產力與協作github.com

MartinezAgullo/job-offer-evaluator

評估求職者收到的職缺或獵頭訊息(LinkedIn、Email、獵人頭公司),透過面談了解當前薪資條件,估算當前工作與新工作的淨實得薪資(考慮社保、所得稅、自僱成本),比對履歷合適度,評分工作條件(遠端、福利、職涯發展),提出2-3個關鍵問題,並草擬回覆(婉拒或索取細節)。

job-offer-evaluator 是什麼?

這個技能專為頻繁收到招聘訊息的使用者設計,能自動執行標準化的評估流程:分析履歷與職缺的匹配度、進行淨實得薪資比較(扣除社保、所得稅及自僱成本)、評分工作條件(遠端、福利、職涯發展),並草擬回覆。它支援 Claude Code、Codex CLI、Gemini CLI 等多種 AI 代理平台,透過讀取個人資料檔(profile.md)與過往職缺紀錄(offers_log.md)來初始化。技能的核心是基於使用者提供的確切數據(而非假設)進行淨實得薪資比較,並自動執行 Python 腳本(net_compare.py)計算,同時支援西班牙與美國的稅務模組,其他國家則提供手動估算。最終會產出結構化報告,包含評估摘要、淨比較表、合適度評分、條件分析、招募訊號、關鍵問題與回覆草稿。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/MartinezAgullo/agent-skills-toolbox/tree/HEAD/skills/job-offer-evaluator

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

職缺評估工具

使用者經常收到獵頭訊息,希望每次都能進行相同的評估:這個職位是否合適、實際(淨)條件是否比現有工作好、應該問什麼問題、以及如何回覆。不同合約類型和國家的毛額數字會誤導人,因此這個技能的核心是根據使用者提供的事實進行淨實得薪資比較,絕不依賴記憶或假設的事實。

第 0 步:載入脈絡

個人資料存放在技能外部,因此更新、複製或發布技能都不會暴露或覆蓋這些資料。請按以下順序一次解析資料資料夾 <data_dir>:

  1. 如果設定了 $JOB_SEARCH_DIR,則使用該路徑。
  2. 否則,使用 agent 使用者級別配置資料夾內的 job-search/ 資料夾:Claude Code 使用 ~/.claude/job-search/,Codex CLI 使用 ~/.codex/job-search/,Gemini CLI 使用 ~/.gemini/job-search/。對於其他 agent,請使用對應的使用者級別資料夾。

絕對不要使用技能內部或專案倉庫中的資料夾。如果 <data_dir> 不存在,請建立它,並將此技能中的 templates/profile.md 和 templates/offers_log.md 複製進去,然後告知使用者你使用的路徑。

  1. 履歷 (CV):從 <data_dir>/profile.md 中讀取 cv_path。如果它是 ?、缺失或找不到檔案,請要求使用者提供履歷(路徑或貼上文字),並將路徑儲存在 profile 中;沒有履歷就不要評估合適度。履歷是技能和資歷的真實來源;不要憑空捏造經驗。
  2. LinkedIn(可選,盡力而為):LinkedIn 通常會封鎖自動化讀取(需要登入),因此如果 profile 中有 linkedin URL,請嘗試一次,如果被封鎖,則靜默跳過。僅當職缺內容依賴於此(例如,獵頭聲稱他們看到的使用者檔案,或履歷缺少職位所需的內容)時,才要求使用者貼上他們的個人資料或 PDF 匯出檔案。履歷仍是主要來源;LinkedIn 僅作為獵頭可能看到內容的交叉比對。
  3. Profile:讀取 <data_dir>/profile.md(參見第 1 步)。
  4. 過往職缺:瀏覽 <data_dir>/offers_log.md。如果同一家公司或獵頭再次出現,或者薪資與之前的職缺相比有參考價值,請提及它。

第 1 步:確認或面談(提問,不要假設)

薪資數字和條件會變動,錯誤的假設會悄然破壞比較結果。

  • Profile 有數值且 last_verified 存在: 顯示已儲存詳細資料的簡潔摘要,並要求使用者確認它們或說明哪些部分有變更。僅對標記為 ? 的欄位或使用者更正的欄位提出問題。如果 last_verified 已超過 6 個月,請說明並更仔細地逐項檢查欄位。
  • Profile 為空或缺失(首次執行): 執行以下完整面談,然後將答案寫入 <data_dir>/profile.md,並將 last_verified 設為今天。
  • 在任何變更之後,更新 profile.md(保持現有佈局),以便下次執行時能快速確認。

將問題作為一組群發送(如果你的 agent 有結構化提問工具,請使用它),並附上任何缺失的職缺詳細資料。

1. 財務基線與合約結構

  • 目前的年薪總額與年度目標獎金/變動薪酬(及其支付的可靠性)。
  • 合約類型:西班牙的永久合約/臨時僱傭、EOR、自僱/自由職業、美國 W2 與 1099 等。
  • 付款分期(12 或 14 個月)。這會影響每月現金流,而非年度淨額,但在比較每月數字時很重要。

2. 地點與稅務背景

  • 目前納稅的國家和城市/地區,以及職缺將要納稅的地點(稅率因西班牙自治區、瑞士州、美國州而異)。
  • 任何特殊制度或扣除額(Beckham/外派人員制度、殘疾、家屬、抵押貸款、地區扣除額)。

3. 福利與自付費用

  • 目前的非現金福利:私人醫療保險、退休金匹配、餐券、交通補貼、股票、培訓預算,每項皆需有每年的大致歐元價值。
  • 自己支付的工作相關費用:無補償的通勤、設備、共享工作空間。

4. 工作模式與成本影響

  • 目前的工作模式(100% 遠端、混合每週幾天、辦公室),以及他們偏好的模式以及能容忍多少辦公室時間。
  • 如果是混合或辦公室工作:每月通勤費用和每週通勤時間。

5. 決策門檻

  • 促使他們換工作的最低淨收入增長,例如「+15% 有效淨額」(建議換工作約 +15-20%,B2B 或較不穩定的職缺則更高),並讓他們覆寫此值。詢問硬性拒絕條件(on-site、僅限承包商、特定行業)。

對於每個職缺(從不儲存在 profile 中):對於 B2B/時薪制,提供實際可計費時數和合約間預期的空窗期;對於非歐元薪資,提供外匯匯率(第 2 步會取得)。

第 2 步:淨實得薪資比較

比較當前工作和職缺的淨額,而非毛額。淨額是指扣除社會保險、所得稅以及自由職業者的自僱成本(自僱稅、會計師、保險)後的金額。然後加上非現金福利的年度價值,並減去自付的工作成本,得出有效淨額。

  • 外匯 (FX): 對於非歐元職缺,執行 python3 scripts/fetch_fx.py USD(透過 frankfurter.dev 取得 ECB 匯率)並使用該匯率,註明日期。如果查詢失敗,請向使用者索取匯率。
  • 執行腳本: python3 scripts/net_compare.py(參見 --help)。當前工作在 --country 的稅制下課稅,職缺在 --offer-country 的稅制下課稅(預設:相同)。它接受目前的合約類型、毛額(包括預期變動薪酬)、福利、額外成本、地區調整和職缺詳細資料,並列印出淨額、有效淨額(以歐元計)、差異,以及如果使用 --threshold,則顯示增長是否超過門檻。--irpf-shift(別名 --region-adjust)是當前國家的地區調整,--offer-region-adjust 則是職缺國家的調整;請說明你傳遞的值。
    • 西班牙 (ES): 調整是 IRPF 百分點偏移(低稅率地區如 Madrid 約 -0.01 至 -0.015,高稅率地區約 +0.01,不確定則為 0)。
    • 美國 (US): 僅聯邦稅、單身申報人、標準扣除額、無 401(k)/HSA、無 QBI 扣除。調整是使用者的平均州所得稅率(TX/FL/WA 為 0,否則請詢問州名)。對於 1099 工作,將自付的健康保險納入 --expenses;對於 W-2 職缺,將僱主的健康保險和 401(k) 匹配納入 --offer-benefits。
    • 貨幣: 職缺金額以職缺國家的貨幣為單位。--fx 將薪資貨幣轉換為該貨幣(在西班牙課稅的 USD 薪資:--fx 0.89),而 --to-eur 將職缺國家的貨幣轉換為歐元(在美國課稅的 USD 薪資:--fx 1 --to-eur 0.89)。福利和額外成本始終為歐元。
  • 稅務模組: 國家規則位於 scripts/tax/<cc>.py,其數字位於 data/tax_<cc>.json;已存在西班牙 (ES) 和美國 (US)。對於其他國家(瑞士、英國等),從目前的稅級和社會安全規則手動估算淨額(網路搜尋當年數字),顯示主要步驟,並將其標記為粗略估算。如果該國家的職缺持續出現,建議建立一個模組(references/adding-a-country.md)。
  • 過時檢查: net_compare.py 在稅務資料過時或未經驗證時會印出 WARNING。當你看到此訊息時,請告訴使用者,並在依賴這些數字之前提供以下重新整理程序。
  • 永遠說明所使用的假設: 外匯匯率、可計費時數、費用、地區、稅務年度。說明結果僅為估算,實際決策應由會計師或稅務顧問確認。
  • 對於 B2B,淨額仍然忽略員工免費獲得的福利: 帶薪休假、帶薪病假、失業保障、退休金累積、僱主繳款。提供「等值僱員毛額」,並標示合約風險(單一客戶、通知條款、假性自僱風險、獨家經營權)。

第 3 步:合適度與條件

合適度(履歷 vs 職位): 以 10 分制評分並附上一行原因。列出匹配項目(附履歷證據)、差距(真實差距與僅未列出的項目),以及與他們當前角色相比,實際日常工作內容和資歷可能為何。獵頭的職稱常常隱藏比他們宣傳的更窄的工作範圍,因此請說明該職位實際上是什麼。

條件(優先順序:淨薪資 > 遠端 > 職涯發展): 使用 references/benefits-checklist.md 作為福利清單,並將每個項目標記為 已陳述 / 法定預設值 / 未知:

  • 薪資與福利(健康、退休金匹配、帶薪休假、病假、育兒假),特別是對於西班牙以外的角色,其法定預設值可能不同。
  • 工作模式與他們陳述的偏好相比,加上時區重疊和差旅。
  • 職涯發展:成長路徑、自主權、公司和客戶聲譽、該工作是否朝着 profile 中的 target_roles_and_topics 發展或背離、工作的穩定性。

獵頭端訊號: 使用 references/recruiter-signals.md 閱讀訊息本身(隱藏的最終客戶、範本化招募、「薪資高達」、合約形式 vs 角色、範圍 vs 職稱),並列出發現的紅旗和正面訊號。可選項:網路搜尋公司和最終客戶的聲譽。

第 4 步:裁決、問題、回覆

  • 裁決: 追求、先問清楚、或婉拒,附上決定性的 2-3 個理由,並明確核對其門檻和硬性拒絕條件。
  • 給獵頭的問題: 僅提出 2-3 個其答案可能改變決定的問題(通常是實際薪資結構和帶薪休假條款、實際工作範圍和團隊、合約期限和終止條款)。不要問泛泛的問題。
  • 回覆草稿: 一旦裁決明確或使用者表明意圖,使用獵頭的語言、簡短、以使用者的語氣草擬。婉拒:感謝他們,可選擇附上一行理由。索取詳細資訊:有條件的興趣加上問題;不要透露他們目前的薪資(如有需要,可提供目標範圍替代)。如果仍未決定,可簡短提供兩種草稿。一段話一行(不要強制換行),並謹慎使用破折號。

第 5 步:記錄職缺

在裁決後,將一行附加到 <data_dir>/offers_log.md(日期、公司和最終客戶、職位、合約、提供的薪資、有效淨額差異、合適度、裁決、結果/備註)。在使用者尚未表示要記錄之前,請先詢問再寫入。之後,當他們告訴你發生了什麼事(回覆了、婉拒了、面試了),更新該行的結果。

年度稅務資料重新整理

每個 data/tax_<cc>.json 都包含該國的所得稅稅率表、社會安全或薪資稅費率和上限,以及扣除額(西班牙還包含自僱稅表),並附有 tax_year、verified_on 和 verified_by。數字每年一月會過時,因此在腳本發出警告、日曆年超過 tax_year 或使用者要求時進行重新整理。程序:

  1. 搜尋檔案中 sources 列出的官方來源。西班牙:AEAT 的 IRPF 稅率表和個人免稅額,Social Security 的 RETA 自僱稅率表、最高繳費基數以及包含 MEI 的員工費率。美國:IRS 通膨調整 Rev. Proc. 的稅級和標準扣除額,SSA 的社會安全工資基數;重新閱讀 Additional Medicare Tax 和自僱稅規則,第一個版本是從常識中取得的。
  2. 向使用者顯示每個變更值的變更前/後差異及其來源連結。不要靜默覆寫:錯誤的稅務數字會悄悄地破壞未來所有的比較,因此使用者必須先確認。
  3. 在使用者核准後,編輯 JSON,將 tax_year、verified_on 設為今天,並將 verified_by 設為實際閱讀的來源(只有當你確實根據官方頁面驗證過時,才刪除「NOT checked」字樣)。
  4. 重新執行一個範例比較以檢查是否一切正常。

排程提醒是可選的:如果使用者希望在 1 月收到真正的提醒,請提供設定提醒的功能,可以使用 agent 或作業系統提供的任何排程機制(cron、排程的 agent 任務、日曆事件),該機制將開啟一個執行此重新整理的會話。

輸出格式

保持易於掃讀,而非長篇大論。請按以下順序使用這些區段:

  1. TL;DR(2 行):裁決、合適度評分、有效淨額差異 vs 門檻。
  2. 淨額比較:一個表格,列有 毛額 / 社會保險/自僱稅 / 所得稅 / 淨額 / 福利 / 自付費用 / 有效淨額,以及欄位 當前 / 職缺 / 差異;表格下方是假設清單。
  3. 合適度:評分、匹配項目、差距、可能的實際工作範圍。
  4. 條件:關於遠端、福利、職涯發展、風險的簡短表格。
  5. 招募訊號(每個一行簡短說明)和 給獵頭的問題:2-3 個編號項目。
  6. 回覆草稿。
  7. 假設或未驗證事項:項目符號清單。

不要產出可以用表格或項目符號呈現的散文段落。

相關技能