HR简历筛选助手
这个技能做什么
帮HR快速筛选简历:读取JD和简历 → AI匹配评分 → 输出分析报告+面试提问清单 → 自动存档。
核心能力:
- 单份/批量简历筛选
- 候选人去重(避免重复分析)
- 文件夹自动监控(新简历自动匹配JD)
- 多渠道输入输出(10种输入 × 8种输出)
- 自动创建候选人档案包
目录
快速开始
第一次使用:
- 安装依赖:
python scripts/install_deps.py - 直接说"帮我筛选简历",按引导完成2轮配置
- 配置后不再询问,自动按偏好执行
日常使用:
- 单份:"用产品经理JD筛选这份简历" + 上传文件
- 批量:"用产品经理JD筛选简历库"
- 改配置:说"修改配置"
- 自动化:"启用文件夹监控"
支持格式: PDF/Word(.docx)/Excel/图片/文本(.txt/.md)
工作流程
执行简历筛选时按以下步骤:
Step 0 — 检查配置
检查 config.json 是否存在。如果首次使用:
- 介绍技能能力
- 第一轮:收集存储位置(平台:本地/腾讯文档/金山文档/IMA)
- 第二轮:收集偏好(输出格式、输入渠道、是否启用自动化)
- 写入
config.json
如果已配置,直接执行,不再询问。
修改配置时说"修改配置",会引导分类修改(输入/输出/存储/自动化)。
Step 1 — 获取JD
按用户提供的JD来源获取:
- 岗位名称 → 从JD知识库读取
- 文件 →
scripts/file_parser.py解析 - 文本 → 直接使用
- IMA知识库 → 搜索获取
Step 2 — 获取并解析简历
用 scripts/file_parser.py 解析简历文件。
Step 3 — 候选人去重
用 scripts/candidate_registry.py 检查候选人是否已有分析记录:
- 姓名/手机号/邮箱任一匹配即视为同一人
- 找到记录:展示历史并询问(查看历史/重新分析/跳过)
- 未找到:继续分析
Step 4 — AI匹配分析
使用 references/resume_analysis_prompt.md 模板,填充JD和简历内容后提交AI分析。
Step 5 — 创建候选人档案包 ⭐ 必须执行
根据 config.json 中的 storage_platform 决定存储位置:
档案结构:
候选人档案库/候选人姓名-YYYYMMDD/
├── 01_原始简历.[格式]
├── 02_匹配分析报告.md (按 references/candidate_report_template.md)
└── 03_面试提问清单.md (按 references/interview_template.md)
存储平台处理:
local→ 本地文件系统tencent_docs→ 用 tencent-docs Skill MCP 工具kdocs→ 用 kdocs Skill MCP 工具ima→ 用 ima-skills Skill
Step 6 — 输出结果
按 config.json 中的 preferred_output_channels 逐一输出,不询问。
支持的输出渠道:chat/json/excel/word/kdocs/tencent_docs/wechat_push/api_output。
配置管理
所有配置存储在 config.json(由 scripts/user_config.py 管理)。
核心配置项:
| 配置 | 方法 |
|------|------|
| 存储平台 | config.update(storage_platform="tencent_docs") |
| 输出格式 | config.set_channel_preferences(output_channels=["excel","chat"]) |
| 简历库路径 | config.update(resume_storage_path="...") |
| 自动化 | config.set_automation(enabled=True, watch_jd="...", interval="DAILY") |
| 云端空间ID | config.update(cloud_space_id="...") |
| API配置 | config.update(api_endpoint="...", api_token="...") |
配置生效规则:
- 每个配置项独立生效,以最后一次修改为准
- 未改的保持不变
- 修改立即写入
config.json并生效
渠道适配器
所有输入/输出通过统一渠道适配器(scripts/channels/)处理:
输入渠道(10种):
local_file / text / local_kb / ima / user_file / dialog / folder_monitor / api_input / wecom_trigger / web_scraper(存根)
输出渠道(8种):
chat / json / excel / word / kdocs / tencent_docs / wechat_push / api_output
使用方式:
from scripts.channels import get_channel_manager
manager = get_channel_manager()
result = manager.get_input("local_file").fetch(source="path/to/resume.pdf")
manager.get_output("excel").export(results=[...], output_path="report.xlsx")
候选人去重
使用 scripts/candidate_registry.py 管理候选人注册表。
三个维度匹配(任一命中即为同一人):
- 姓名完全匹配
- 手机号完全匹配
- 邮箱完全匹配(不区分大小写)
注册表存储在 candidate_registry.json,API:
registry.find_candidate_with_field(name, phone, email)— 查找registry.register(name, phone, email, source_file)— 注册registry.add_analysis(candidate_id, jd_name, score, report_path)— 记录分析registry.get_history(candidate_id)— 查看历史
自动化模式下重复简历直接跳过。
文件夹自动监控
启用后定时检查简历库,新简历自动匹配JD。
启用流程:
- 询问是否启用
- 选择匹配的JD(从知识库列出)
- 选择检查间隔(每小时/每4小时/每天)
- 用
automation_update工具创建定时任务
rrule 对应:
- 每小时 →
FREQ=HOURLY - 每4小时 →
FREQ=HOURLY;INTERVAL=4 - 每天 →
FREQ=DAILY
查询状态:
from scripts.folder_watcher import FolderWatcher
status = FolderWatcher().get_status()
错误处理
| 错误 | 处理 | |------|------| | 文件格式不支持 | 提示支持格式列表 | | 文件超过20MB | 提示压缩或拆分 | | .doc旧格式 | 建议转.docx | | 文件读取失败 | 检查路径和文件完整性 | | JD知识库为空 | 提醒先添加JD | | 自动化JD不存在 | 提示先添加JD到知识库 | | 渠道不可用 | 回退到默认输出(chat+json) | | 云端未配置空间ID | 引导通过Step 0.5配置 |
数据安全
- 简历和分析结果保存在用户配置的文档平台
- JD知识库和候选人档案库均在用户自己的账号下
- 本地简历文件不上传服务器
- 存储位置以
config.json最新配置为准
示例
单份筛选:
用户:用产品经理JD筛选这份简历 [上传 resume.pdf] 助手:解析JD→解析简历→去重→AI分析→输出结果→创建档案包
批量筛选:
用户:用产品经理JD筛选简历库 助手:扫描目录→逐一分析→每份创建档案包→汇总输出
去重提示:
助手:检测到候选人「张三」已有3份分析记录:[展示历史] 请选择:查看历史 / 重新分析 / 跳过
Scan to join WeChat group