Community程式設計與開發github.com

emrekgn/客製化履歷技能

根據特定職缺調整履歷,產出可編輯的 Markdown 檔案與 ATS 友善的 PDF,且絕不捏造經歷。

客製化履歷技能 是什麼?

此技能專為需要根據特定職缺量身打造履歷的使用者設計。它能讀取使用者的基礎履歷 (`base-resume.md`)、事實記錄 (`facts.md`) 及其他相關資料,並針對職位描述進行分析、比對與改寫,最終產出一個符合 ATS(求職者追蹤系統)格式的 Markdown 檔案與 PDF。其核心原則是「誠實」:它嚴格遵循事實記錄,絕不誇大或捏造經歷,並會明確報告履歷與職缺要求之間的差距。支援 Claude Code 等命令列工具,工作流程自動化,確保每次修改皆有依據且可追溯。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/emrekgn/tailored-resume-skill/tree/HEAD/skills/tailored-resume

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

客製化履歷

將一個人的基礎履歷加上職缺描述,轉換成客製化履歷 (.md + .pdf)。然後報告這份履歷對職缺需求的覆蓋程度,以及缺少了什麼。

準確性是這項技能的重點。一份誇大經歷的客製化履歷可能讓使用者失去錄取機會,甚至入職後的工作。因此,這項技能會維護一份經驗事實記錄,絕不捏造任何資訊,並將差距視為需要報告的項目,而非隱藏起來。

履歷工作區

在使用者的履歷資料夾中工作,通常是當前目錄。其中包含:

檔案用途
base-resume.md以此技能的 Markdown 格式儲存的主履歷。所有客製化版本都從此開始。
facts.md事實記錄:修正、基礎履歷中缺少的已確認事實、絕對不能宣稱的事項,以及偏好設定(頁數、紙張尺寸、聯絡方式行)。
<slug>-resume-<company>.md / .pdf每個職位申請對應一個客製化版本。<slug> 是使用者姓名的短橫線式。
其他任何檔案使用者提供的輔助資料:LinkedIn 匯出檔、舊 PDF、GitHub 個人檔案、專案 README。

如果資料夾中有名稱不同的履歷,請使用它,並在 facts.md 中註明其名稱,而不是重新命名使用者的檔案。

首次執行:初始化

如果還沒有基礎履歷:

  1. 詢問使用者現有的履歷(PDF、DOCX、純文字,或 LinkedIn 匯出檔)。如果是 PDF,使用 pdftotext -layout 提取。
  2. 將其轉換成 references/format.md 中的格式,保留原有的措辭。此時不要進行客製化。
  3. 從 assets/facts-template.md 建立 facts.md,填入聯絡資訊行和使用者提及的任何偏好設定。
  4. 向使用者顯示基礎履歷,並請他們在進行客製化前先檢查。此處的錯誤會擴散到所有後續版本。

處理新職缺的工作流程

  1. 閱讀來源。 閱讀 base-resume.md、facts.md 以及任何輔助來源。facts.md 的內容在與基礎履歷不一致時具有優先權。

  2. 分析職缺。 將其要求分為三個等級:

    • P1: 必要條件(決定性因素)
    • P2: 強烈希望具備
    • P3: 有加分

    記錄職缺的用詞和重複出現的關鍵字。ATS 的關鍵字匹配是字面上的,因此在兩者都屬實的情況下,職缺的用詞優於同義詞。

  3. 比對證據。 針對每個要求,在來源中尋找實際證據。將其標記為強烈、部分或差距。

  4. 撰寫客製化版本 到 <slug>-resume-<company>.md。從基礎履歷的副本開始,然後:

    • 摘要: 重寫,使其開頭強調此職位最重視的部分。這是招募人員最先看到的內容。
    • 技能: 重新排序並分組,使最相關的技能排在前面,並將行標籤重新命名為職缺的用語(例如「訊息佇列與串流」、「平台與交付」)。對於職缺中使用的關鍵縮寫詞,在每個詞旁邊寫一次全稱,例如「Terraform (基礎設施即程式碼, IaC)」、「Kubernetes (K8s)」。ATS 可能會搜尋任一形式。
    • 條列項目: 在每個職位描述中重新排序和改寫,讓最相關的內容排在前面,並刪除對這個職缺不重要的項目。較舊的職位可以縮減為 1–3 個條列項目。
    • 事實記錄: 套用 facts.md 中的每一項。
    • 開源 / 專案: 對於有公開作品的技術職位,在聯絡資訊行中加入 GitHub/作品集連結,並新增一個簡短的 ## 開源貢獻 或 ## 專案 區段。選擇 2–3 個最相關的項目。
    • 轉職: 如果此職位是職涯轉變(例如從工程師轉為開發者關係),請保持一般的時間順序版面。在摘要和技能之間新增一個簡短的亮點區段,收集真實、可轉移的證據。不要使用「功能性」履歷;招募人員和 ATS 系統通常不信任此類格式。
  5. 建置並驗證(見下文)。在回報前修正版面問題。

  6. 回報,使用下列格式。

誠實規則

這些規則的存在是因為誇大陳述的誘惑持續存在且難以察覺。每一條規則都是為了防止實際發生過的錯誤。

  • 絕不捏造 技能、工具、指標、規模數字、職稱或責任。如果職缺要求某些來源中未顯示的內容,請將其省略並列為差距。使用者很可能確實有相關經驗。詢問只需一條訊息;而捏造的宣稱可能會在面試中被揭露。
  • 改寫是可以的;強化則不行。 匹配職缺的詞彙是可行的。但提升宣稱的強度則不行,例如:
    • 「參與過」變成「主導」
    • 在沒有來源的情況下加入「在數分鐘內」、「大規模」、「在生產環境負載下」
    • 將兩個獨立的陳述合併成一個更大的宣稱。例如,「主導團隊處理開源和企業專案;企業專案有 20 萬名使用者」絕對不能變成「主導一個開源團隊,其專案觸及 20 萬名使用者」。
  • 不得加入來源中沒有的自我讚美, 例如「處理疑難雜症的工程師」或「能向任何聽眾解釋任何事物」。應以證據來展現。
  • 謹慎歸因。 將事實與它來自的職位綁定。使用者確認但不屬於特定職位的事實(例如「我用過 Terraform」)應放在摘要或技能中,而不是放在推測的職位下方。
  • 保留指標原貌。 百分比、數量和時間範圍必須與來源所述完全一致。
  • 保留真實職稱。 在摘要中進行框架描述(例如「資深後端工程師」)是可以的。
  • 在建置前,檢查每個新增或修改的條列項目 是否有來源依據。當某項內容是合理的推論但未明確說明時,要嘛刪除它,要嘛在回報中標明。

當使用者修正或確認某事項時

立即將其加入 facts.md,包含日期,如果知道的話,也包含所屬職位。然後搜尋所有其他客製化版本的履歷,找出相同的錯誤並一併修正。跳過使用者表示已寄出的版本,並在 facts.md 中列出這些版本,以便未來執行時略過它們。重新建置你修改過的 PDF,並告知使用者哪些檔案有變更。

建置與驗證

python3 "${CLAUDE_SKILL_DIR}/scripts/build_resume.py" <slug>-resume-<company>.md --check
  • 功能: 將 PDF 寫入 Markdown 檔案旁邊,然後印出頁數以及 ATS 解析器會提取的文字。如果 facts.md 中說使用者偏好 A4,請加上 --paper a4 參數。
  • 如果 ${CLAUDE_SKILL_DIR} 未設定: 請使用此技能目錄的絕對路徑。
  • 如果找不到瀏覽器: 請使用者安裝 Chrome 或 Chromium,或者設定 CHROME_BIN 環境變數指向其路徑。

然後檢查三件事:

  1. 頁數。 使用 facts.md 中的使用者偏好。否則,約 10 年以下經驗目標為 1 頁,10 年以上則為 2 頁。
  2. 視覺版面。 如果 pdftoppm 可用,執行 pdftoppm -r 60 -png <pdf> <tmpdir>/preview 並查看每一頁的圖片。檢查是否有尷尬的分頁和換行不佳的文字行。
  3. 提取的文字。 每個技能行應該讀起來是一行包含其標籤,每個職位標題應該是一行包含其日期。如果不是,表示 Markdown 可能偏離了格式。

如果超出頁數目標,請依此順序刪減

  1. 較舊職位中最不相關的條列項目
  2. 過長的技能行(合併行,保持每行在一行內)
  3. 證照(合併到一行,刪除不相關的)
  4. 摘要長度

不要為了符合頁數而縮小字體或邊界。密集的頁面對人類來說閱讀體驗較差,對 ATS 也無益處。

版面規則

建置工具的版面是專為 ATS 解析而設計的,因此請勿修改。表格、多欄位和靠右對齊的日期(flex 或 float)看起來沒問題,但提取效果很差:標籤與值分離,日期與職稱分離。建置工具也會保持連字符號的單詞不換行,因為在換行處的連字符號會在提取時被省略(例如 "high-throughput" 會變成 "highthroughput")。

回報格式

建置完成後,請回覆:

  1. 檔案: .md 和 .pdf 的路徑。

  2. 覆蓋率表格:

    等級要求履歷中的證據(或 差距)
  3. 重點說明: 簡短說明你強調了哪些內容以及刪減了哪些內容。

  4. 提問: 詢問可能填補 P1/P2 差距的經驗,或者你需要確認的推測陳述。請具體說明:「你是直接參與 X 專案,還是僅透過 Y 間接接觸?」

  5. 額外服務: 在不主動撰寫的前提下,提及你可以草擬求職信開場白、回答申請問題,或準備面試談話重點。

如果此職缺差距過大(存在多個 P1 差距),請坦白說明並建議最有幫助的作法。例如:一個作品集專案、對該公司程式庫的開源貢獻,或一封說明轉職原因的求職信。

申請問題與求職信

使用相同的事實記錄和誠實規則。以使用者的口吻(第一人稱)回答,簡潔有力,並明確指出你推測的具體細節,以便使用者修正。將求職信寫成 <slug>-cover-letter-<company>.md。build_resume.py 是為履歷設計的,因此若要產生 PDF 格式的求職信,請撰寫簡單的 HTML,並使用與腳本相同的無頭瀏覽器命令來列印。

參考檔案

  • references/format.md:建置工具解析的 Markdown 確切格式,附有完整範例。在撰寫或轉換履歷前請先閱讀。
  • assets/facts-template.md:新 facts.md 的起點。
  • assets/example-resume.md:一個用於測試建置工具的虛構範例履歷。

相關技能