简历雷达 · HR 批量智能初筛


简历雷达 · HR 批量智能初筛 Skill

一句话定位:给 HR 一把「雷达」,把一整个文件夹里的几百份 PDF/Word 简历,
在几分钟内变成打过分、排好序、分好类、可直接交付的 Excel 一览表 + JSON 资产库。

:bullseye: 适用场景

场景 传统做法 使用本 Skill
校招季一次性收到 500+ 简历 人工逐份翻阅,主观筛选 一条指令批处理,自动排序
猎头一天推 30 份 PDF 打包给你 一份份看格式各异的简历 统一结构化,按岗位模板打分
跨部门招聘多岗位并行 多套标准记在脑子里 每个岗位一套 scoring_rules.yaml,可切换
筛过的简历要归档 手动移动文件、做 Excel 自动分文件夹 + 自动出一览表

:compass: 核心触发条件 (何时自动启用本 Skill)

必须满足以下任一条件时,立即启用本 Skill:

  1. 用户要求对一个文件夹里的多份简历进行「批量筛选 / 初筛 / 打分 / 排序」
  2. 用户要求把简历按是否通过分文件夹保存、生成一览表、转成 JSON
  3. 用户明确提到 HR / HRBP / 招聘 场景下的简历处理
  4. 用户上传或指定了一个文件夹,内含若干 .pdf.docx 简历文件

:clipboard: 工作流程 (Agent 必须按序执行)

         ┌────────────────┐
         │ 0. 启动校验     │  确认依赖与工作目录
         └───────┬────────┘
                 ▼
         ┌────────────────┐
         │ 1. 收集与询问   │  收集 输入目录 / 岗位 / 规则文件 / 输出目录
         └───────┬────────┘
                 ▼
         ┌────────────────┐
         │ 2. 文件扫描     │  扫描目录下全部 .pdf / .docx
         └───────┬────────┘
                 ▼
         ┌────────────────┐
         │ 3. 文本抽取     │  extract_resume.py → 原始文本
         └───────┬────────┘
                 ▼
         ┌────────────────┐
         │ 4. 结构化解析   │  parse_resume.py → JSON (含学历/经历/技能)
         └───────┬────────┘
                 ▼
         ┌────────────────┐
         │ 5. 评分排序     │  score_resume.py (加载 scoring_rules.yaml)
         └───────┬────────┘
                 ▼
         ┌────────────────┐
         │ 6. 产物组装     │  build_report.py → Excel + 分类文件夹 + JSON
         └───────┬────────┘
                 ▼
         ┌────────────────┐
         │ 7. 交付呈现     │  给用户展示排名 Top N + 可点击链接
         └────────────────┘

Step 0 启动校验

  • 检查 Python 3.9+、pdfplumberpython-docxopenpyxlpyyamlpypdf
  • 若缺失 → 建议 pip install pdfplumber python-docx openpyxl pyyaml pypdf

Step 1 收集输入信息 (必须询问或从上下文确认)

必填

  • input_dir:简历所在文件夹(可包含子目录)
  • output_dir:结果输出目录(默认 <input_dir>/_筛选结果_<时间戳>

选填

  • rules_file:自定义评分规则 YAML 路径,默认用 resources/scoring_rules.default.yaml
  • job_template:岗位模板名,可选 大模型算法工程师 / 算法工程师 / 数据工程师
  • pass_threshold:通过分数阈值,默认 75
  • use_llm_parse:是否调用大模型做结构化解析。默认 false(纯规则),推荐 true(更准确)

Step 2-6 一条命令跑通

python scripts/run_pipeline.py \
  --input-dir   "<输入目录>" \
  --output-dir  "<输出目录>" \
  --rules       "resources/scoring_rules.default.yaml" \
  --job         "大模型算法工程师" \
  --threshold   75

产物目录结构:

<output_dir>/
├── 一览表.xlsx                    # 最终交付物(含学历/年龄/经历/技术/综合/打分/排名)
├── json/                          # 每人一个 JSON + _all.json 汇总
├── 通过_≥75分/                     # 综合评分 ≥ 阈值的原简历副本
├── 未通过_<75分/                   # 综合评分 < 阈值的原简历副本
└── _run.log                       # 运行日志

:control_knobs: 自定义评分规则 (核心特性)

用户可 resources/scoring_rules.default.yaml 为模板,DIY 任意岗位的评分体系。
评分采用 “维度 → 规则 → 分数” 的组合式配置,支持正则关键词、字段比较、加权求和、奖励/惩罚项。

最小可行配置示例:

version: 1
total: 100
pass_threshold: 75
dimensions:
  - name: 学历背景
    weight: 30
    rules:
      - match: {field: "学历", equals: "博士"}
        score: 30
      - match: {field: "本科.学校", any_in_list: "c9"}
        score: 28
      - match: {field: "本科.学校", any_in_list: "985"}
        score: 24
      - match: {field: "本科.学校", any_in_list: "211"}
        score: 18
      - default: 10

  - name: 大模型算法匹配
    weight: 30
    rules:
      - match: {field: "技能描述", contains_any: ["大模型","LLM","VLM","Diffusion","SFT","DPO"]}
        score_per_hit: 3
        max: 30

  - name: 工作经验
    weight: 20
    rules:
      - match: {field: "工作经历", contains_any: ["百度","阿里","腾讯","字节","华为","蚂蚁","小米"]}
        score: 15
      - default: 8

  - name: 综合素质
    weight: 20
    rules:
      - match: {field: "荣誉论文", contains_any: ["顶刊","SCI","论文","专利","奖"]}
        score: 15
      - default: 10

bonus:
  - desc: 博士优先
    when: {field: "学历", equals: "博士"}
    add: 3
  - desc: 本科 985/211 额外奖励
    when: {field: "本科.学校", any_in_list: ["985","211"]}
    add: 2
  - desc: 大模型方向匹配
    when: {field: "标签", contains_any: ["大模型","多模态","LLM"]}
    add: 2

penalty:
  - desc: 年龄明显偏高(>40 岁)
    when: {field: "年龄", gt: 40}
    sub: 3

规则文件里的 c9 / 985 / 211 常量引用自 resources/schools_tier.yaml,可扩展。

:puzzle_piece: 文件清单

resume-radar/
├── SKILL.md                              # 本文件
├── README.md                             # 面向用户的介绍与上手
├── scripts/
│   ├── run_pipeline.py                   # 主流程一键跑
│   ├── extract_resume.py                 # PDF/DOCX 文本抽取
│   ├── parse_resume.py                   # 规则式结构化解析
│   ├── score_resume.py                   # YAML 规则打分引擎
│   └── build_report.py                   # Excel 一览表生成
├── resources/
│   ├── scoring_rules.default.yaml        # 默认评分规则
│   ├── scoring_rules.bigmodel.yaml       # 大模型岗示例
│   ├── scoring_rules.data_engineer.yaml  # 数据工程师示例
│   ├── schools_tier.yaml                 # 985/211/C9 学校库
│   └── job_templates/
│       ├── 大模型算法工程师.md
│       ├── 算法工程师.md
│       └── 数据工程师.md
└── examples/
    ├── input_resumes/                    # 3 份脱敏示例简历
    ├── expected_output/                  # 示例运行后的产物
    └── README.md                         # 示例说明

:white_check_mark: 输出校验清单 (Agent 在交付前必须确认)

  • 一览表.xlsx 中每位候选人一行,含「本科/研究生学校·专业·毕业时间」三项完整
  • json/ 目录中每人一个 JSON,且 _all.json 汇总按 总分 降序排列
  • 通过_≥XX分/未通过_<XX分/ 两个文件夹正确分拣了原始简历副本
  • Excel 表头含:排名 / 姓名 / 性别 / 年龄 / 学历 / 本科 / 研究生 / 工作经历 / 专业技术水平 / 综合素质 / 各维度分 / 总分 / 推荐等级 / 源文件
  • 运行日志中无未处理异常(每份简历或成功或明确报错)

:prohibited: 安全与合规

  • 隐私信息保护:本 Skill 仅在本地处理简历,不向第三方发送数据
  • 去标识化建议:如需二次分享 JSON / Excel,建议使用 --redact 选项隐藏手机号、邮箱、身份证
  • 评分可解释性:每一项得分来自于 YAML 规则,均可溯源复核
  • 偏见最小化:默认规则不含性别、户籍、颜值等歧视性字段;自定义规则时请 HR 自审

:megaphone: 作者寄语

招聘的第一道门槛不该被 Ctrl+滚轮 消耗。
把它交给「简历雷达」,让你把精力留给 真正值得聊一聊 的那个人。

1 个赞

要是你能贴上使用后的输出效果图,感觉会更容易理解~

1 个赞