| name | hr-resume-parser |
| description | 專門用於處理「104履歷候選分析」。當使用者要求將一批 PDF 履歷轉換、清理並抽取關鍵欄位成 CSV 時,請使用此技能。 |
HR Resume Parser (履歷候選分析技能)
當使用者提出需要針對候選人的履歷進行解析、整理或表格化(特別是指 104 系統匯出的 PDF 履歷)時,必須觸發並嚴格遵循本技能的所有流程。
🎯 技能目標
確保多份雜亂格式的 PDF 履歷能夠被精準且無遺漏地轉換為結構化資料,並整理成利於 HR 判讀的 CSV 表格。解決 PDF 轉檔常見的隱藏字元、換行錯位及康熙字典部首亂碼問題。
📍 執行流程 (SOP)
步驟 1: 來源確認與前置轉檔 (來源限定 .MD)
- 掃描指定目錄,確認存在
.pdf 的履歷檔案。
- 利用官方指定的
scripts/convert_pdfs.py 腳本進行 PDF 轉 Markdown 處理。該腳本使用 Python 的 markitdown 函式庫,可避免終端機指令編碼錯誤。執行時必須使用指定的綠色環境:c:\Users\01102088\Desktop\python-3.14.2-embed-amd64\python.exe scripts\convert_pdfs.py。
- 確保所有分析都必須基於生成的
.md 檔案,絕不從其他快取或不明來源讀取。
步驟 2: MD 檔案的預先清理與標準化 (解決編碼與亂碼)
- 關鍵認知:MarkItDown 轉換出來的文件會夾帶不可見的分頁符號(如
\x0c)以及康熙部首字元(如「⼯」與「工」不同)。
- 呼叫我們專屬的腳本
scripts/extract_hr_data.py。該腳本內含 unicodedata.normalize('NFKC'),會先在背景處理這些編碼陷阱與不規則的空格,才能進行安全分析。
步驟 3: 欄位抽取執行
執行腳本 scripts/extract_hr_data.py,強制且唯一地抓取以下九大欄位(CSV 加上自動產生的序號後為 10 欄):
- 姓名
- 年紀 (只准顯示數字)
- Email (從履歷正則擷取的聯絡信箱)
- 語文能力 (抓取語言種類與程度)
- 學歷 (必須抓取完整的字串區塊)
- 近期工作 (顯示公司名稱與職稱)
- 近期工作內容 (將"現職或最近的工作"=【近期工作】內容完整敘述放入這個欄位中)
- 總年資 (只准顯示數字)
- 前二次任職公司 (扣除最新一家後的近兩次經歷,以頓號分開)
步驟 4: 雙重防幻覺查核 (程式 15 組 + Agent 15 組)
- 程式自動查核 (零 Token 消耗):腳本
extract_hr_data.py 會自動從結果中隨機抽選 15 名 候選人,以程式邏輯回頭讀取 .md 原始檔比對姓名與年紀,並在終端機印出驗證報告。Agent 需讀取並向使用者回報此測試結果。
- Agent 手動抽驗 (具人工推理):除了腳本自動比對的 15 人外,Agent 必須「主動」從 CSV 中 另外隨機挑選 15 筆 不同的候選人資料。
- 使用檔案檢視工具回頭讀取該候選人對應的
.pdf 原始檔 (嚴禁用 .md 比對),親自解讀該 PDF 履歷的排版與文字涵義,將 CSV 中的數值與原始檔案徹底比對,並於對話中印出結果,完成雙重驗證。
步驟 5: 產出與最終確認
- 確認最終的
HR_Data_Summary.csv 每一欄、每一列皆有正確填入資訊。
- 告知使用者任務已完成,檔案具備
utf-8-sig 編碼可直接供 Excel 開啟。
- 注意:本步驟產出的 CSV 為初始 10 欄版本(含序號)。後續執行
/review(結案審閱)時,會再新增「審閱結果建議」(總年資之前)與「審閱排除理由簡述」(末欄)共 2 欄,擴充為 12 欄最終版。/review 僅在 CSV 內標註分類結果(正式候選 / 排除 / 降級觀察 / 碩士儲備),由官方腳本 .agent/skills/hr-talent-screener/scripts/apply_review_decisions.py 從 Agent 產出的 review_decisions.json 落地,嚴禁搬移任何 PDF/MD 檔案或建立分類子資料夾。
步驟 6: 整理功能(序號編碼與檔案對照)
腳本 extract_hr_data.py 會在步驟 3 完成後自動執行以下整理:
- CSV 候選人過濾:僅處理在專案根目錄中「有對應
.pdf 檔案」的 .md 文件,自動排除所有管理文件(README.md、GEMINI.md、CLAUDE.md、ANALYSIS.md 等),無需手動維護排除清單。
- 序號欄位:在 CSV 第一欄插入三位數序號(001, 002, 003...),依姓名筆劃排序。
- PDF/MD 重新命名:將原始檔案加上序號前綴(如
001_何建輝.pdf、001_何建輝.md),方便 HR 快速對照 CSV 與實體檔案。若目標檔名已存在則中止並報錯。
- 改名後抽檢:隨機抽選 15 份已改名的 PDF,比對外部檔名中的人名與 CSV 中的姓名欄位,15/15 全部通過才算合格。
⚠️ 關鍵限制與守則
- 不要臆測欄位:若某個履歷完全沒有寫「總年資」,則該欄位應留白,絕對不可憑藉經歷時間自行計算。
- 唯一腳本原則:清理殘留的實驗性程式碼檔案,只保留並使用官方驗證過的
scripts/extract_hr_data.py。
- 保持純粹:處理過程不應對使用者的系統進行不相關的檔案修改。