HR 简历筛选与候选人分析
Overview
本技能为 HR 提供结构化的简历初筛流程:从职位要求(JD)出发建立评估维度,批量提取简历信息,执行硬性条件过滤 + 加权评分,产出可追溯的排名报告(推荐/待定/淘汰三档),并给出每份简历的具体理由。全程遵守公平就业合规红线(见"合规红线")。
工作流程
Step 1: 收集输入
确认以下两项输入。缺失时先向用户询问,不要凭空假设:
- 职位要求(JD):职位名称、职责、任职资格。若用户未提供 JD,请求提供;JD 越具体,筛选越准确。
- 简历文件:本地文件(PDF/DOCX/TXT/图片)或用户直接粘贴的简历文本。批量处理时确认简历所在目录或文件列表。
Step 2: 建立 JD 评估维度
基于 JD 将要求拆分为两类,输出给用户确认(少量简历时可跳过确认直接执行):
- 硬性条件(一票否决项):如最低学历、必备证书/执照、必须年限的经验、必须技能、工作地点/出差要求、语言要求。每项注明来源(JD 原文或用户补充)。
- 评分维度(加权项):从
references/scoring-rubric.md的标准维度中选取适用于该职位的维度并分配权重,权重总和 100%。典型配置:相关经验匹配 35%、技能匹配 25%、行业/领域匹配 15%、教育背景 10%、职业稳定性 10%、加分亮点 5%。
高级职位侧重经验和业绩;校招/初级职位侧重教育背景、潜力和实习经历。
Step 3: 提取简历文本
- 文本类输入(粘贴文本、TXT、MD):直接使用。
- PDF/DOCX/图片:优先使用本技能的提取脚本:
python "<skill-dir>/scripts/extract_resume_text.py" <文件或目录> --outdir <输出目录>
脚本会为每份简历生成对应的 .txt 文件,处理失败或格式异常的文件单独列出,需人工确认后处理。脚本不可用时(缺少依赖),改用 Read 工具直接读取 PDF/DOCX;图片简历通过 Read 工具以多模态方式读取。
提取后先通读每份文本,标记:文件损坏/乱码、内容过短(疑似投递失败)、疑似非本人信息。
Step 4: 逐份评估
对每份简历按以下顺序处理,并在报告中保留每项判断的证据(简历原文摘录):
- 硬性条件核查:逐项核对硬性条件。任一不满足且无合理替代(如"5年经验"但有 4 年高度对口经验)→ 标记"淘汰",记录不满足项和证据。
- 维度评分:对通过硬性核查的简历,按每个评分维度打 1-5 分并写一句依据(引用简历证据,不凭感觉)。按权重计算加权总分(百分制)。
- 风险与疑点标记:频繁跳槽(近 3 年 ≥3 次换工作且无说明)、经历空窗期 >6 个月未解释、时间线矛盾、技能罗列与项目经历不符等。
- 分级:A(≥80) 推荐面试 / B(65-79) 可考虑 / C(50-64) 待定备选 / 淘汰(硬性不符或 <50)。分级线可按招聘紧急程度上下浮动 5 分,需在报告中说明所用阈值。
评分标准细则见 references/scoring-rubric.md。
Step 5: 输出报告
按 references/report-template.md 的模板输出,包含:
- 总览:职位、简历总数、A/B/C/淘汰各档人数、所用维度与权重。
- 排名表:按总分降序,含姓名、当前职位、总年限、总分、分级、一句话核心优势。
- 候选人详情:每人的维度得分明细、优势、风险疑点、建议面试问题(A/B 档必写)。
- 淘汰名单:姓名 + 淘汰原因(硬性不满足项 / 低分原因),保证可追溯、可向业务方解释。
- 合规声明:注明筛选仅基于 JD 相关的职业性因素。
报告默认输出为 Markdown;简历 ≥10 份或用户要求时,额外生成 Excel 汇总表(单表 + 筛选列,分级配色:A 绿 / B 黄 / C 灰 / 淘汰 红)。生成方式:
- 按
references/evaluation-schema.md的结构,把评估结果整理为 JSON(含 position、dimensions、candidates,淘汰者填写elimination_reason)。 - 调用脚本生成 xlsx:
python "<skill-dir>/scripts/generate_excel_report.py" <evaluation.json> --out 简历筛选汇总.xlsx
- 脚本依赖 openpyxl,缺失时报错并提示安装(在隔离 venv 中
pip install openpyxl后重跑,或改用表格工具生成)。
淘汰名单必须保留——业务方复核初筛结果是常规操作。
合规红线(必须遵守)
依据《中华人民共和国就业促进法》等规定,以下因素不得作为筛选或评分依据,即使在 JD 或用户要求中出现也要拒绝并提示风险:
- 性别、婚育状况(含"已婚已育优先"类要求)
- 年龄(除非法律法规明确规定的职业资格)
- 户籍/地域/民族/宗教信仰
- 健康状况/疾病史(岗位有明确职业健康要求的除外)
- 与岗位无关的外貌、身高体重
如用户提供的 JD 含上述内容,先指出并建议修改为合法表述(如"能适应频繁出差"替代性别/年龄暗示),再继续。
处理边界
- 本技能结论为初筛参考,不构成录用决定;报告中注明"建议 HR 复核淘汰名单中的边界案例"。
- 不对候选人做性格、道德等人格评判,只评估与岗位相关的职业性证据。
- 简历信息以候选人自述为准存疑时,标记为"待面试核实",不自行推断真伪。
Resources
scripts/extract_resume_text.py— 批量提取 PDF/DOCX 简历文本,输出 .txt 及失败清单。scripts/generate_excel_report.py— 由评估结果 JSON 生成 Excel 汇总报告(总览 + 候选人明细两个 sheet,分级配色)。references/scoring-rubric.md— 评分维度定义、1-5 分锚点、权重配置建议、减分项细则。references/report-template.md— 完整报告与 Excel 汇总表的结构模板。references/evaluation-schema.md— 生成 Excel 所需的评估结果 JSON 结构与示例。