
输入一份PDF简历,自动提取结构化信息
结合GitHub代码信号,输出公平、可解释的评分
全程可本地运行,数据不外传
📋 先看痛点:招聘筛简历,为什么又慢又不准?
你是一个技术团队的招聘负责人、HR、或者技术面试官。
你收到100份简历,要从中找出合适的候选人。
问题来了:
- 每份简历5分钟 → 100份要花 8小时以上,还不一定能看完
- 简历里的“项目经历”可能夸大 → 你没法验证
- GitHub上写了“贡献过开源项目” → 你真的会去一个个查吗?
- 不同人的简历格式不同 → 比较起来很困难
- 评估标准不统一 → 不同面试官看法不同
核心矛盾:
简历太多,看不过来;简历里的信息不可验证;评估标准主观。但招聘又必须做——每个错过的优秀候选人和每个被误招的不合适的人,都代价巨大。
✅ Hiring Agent 的解法
Hiring Agent 是一个开源的、AI驱动的简历评估工具。
一句话:输入PDF简历 → AI提取结构化信息 + GitHub信号 → 输出公平、可解释的评分
它不做“简历是否通过”的武断判断。它做的是:
- 从简历PDF里提取:基本信息、工作经历、教育背景、技能、项目、获奖
- 如果简历里有GitHub信息,拉取真实代码数据
- 对候选人进行分类打分,附带证据、加分和扣分理由
- 输出一份可解释的评估报告
你可以完全本地运行(用Ollama),也可以用Google Gemini API。数据不需要上传到任何第三方。
🔥 它解决了什么?
1. 手工看简历 vs AI提取结构化信息
| 传统手工看简历 | Hiring Agent | |
|---|---|---|
| 一份简历耗时 | 5-10分钟 | 几秒钟 |
| 信息提取完整性 | 依赖个人注意力 | ✅ 结构化提取全部字段 |
| 格式不统一时 | 容易漏信息 | ✅ 统一转换成标准格式 |
| 批量处理 | 100份要10小时 | ✅ 循环跑即可 |
2. 简历内容 vs GitHub真实代码信号
| 只看简历 | + GitHub信号 | |
|---|---|---|
| 项目经历验证 | 无法验证(对方说了算) | ✅ 能看真实代码、commit历史 |
| 开源贡献 | 可能夸大 | ✅ 能看到实际参与的项目和贡献量 |
| 技术栈熟练度 | 自己写的“精通” | ✅ 能看到实际使用的语言和工具 |
3. 主观判断 vs 可解释评分
| 传统主观判断 | Hiring Agent评分 | |
|---|---|---|
| 评分标准 | 面试官个人感觉 | ✅ 统一的评分维度 |
| 证据 | “感觉还行” | ✅ 每条分数都有具体依据 |
| 公平性 | 可能存在偏差 | ✅ 相同标准,降低主观偏差 |
| 可追溯 | 难以复盘 | ✅ 评分报告可留存、可审查 |
它不替你做决定。它帮你做决定前,把候选人的信息整理好、量化好、对比好。
📦 工作流程(五个步骤)
PDF简历 → 提取文本 → 分块提取结构化数据 → GitHub信号补充 → 评分输出
第1步:PDF转文本
用 pymupdf_rag.py 把PDF转换成Markdown格式的文本。
第2步:分块提取结构化信息
用LLM按模块提取:
- 基本信息(Basics):姓名、邮箱、位置、个人链接
- 工作经历(Work):公司、职位、时间、描述
- 教育背景(Education):学校、专业、学历、时间
- 技能(Skills):技术栈、工具、语言
- 项目(Projects):项目名称、描述、技术栈、链接
- 获奖(Awards):奖项名称、时间、级别
每个模块有独立的提示词模板(prompts/templates/*.jinja),确保提取的一致性和准确性。
第3步:GitHub信息补充
- 从简历里提取GitHub用户名
- 拉取个人资料和仓库列表
- 用LLM从候选人的所有仓库里选出最重要的7个
- 分类:开源项目 / 个人项目 / 课程项目 / 生产项目
第4步:综合评估
评估维度:
- 开源贡献(Open Source):贡献了多少开源项目?影响力如何?
- 个人项目(Self Projects):独立完成的项目质量和复杂度
- 生产项目(Production):有没有在生产环境中使用过的项目?
- 技术技能(Technical Skills):技术栈的广度和深度
加减分机制:
- 加分:有影响力的开源贡献、技术博客、专利、获奖
- 减分:GitHub活跃度低、项目描述模糊、技术栈过时
第5步:输出报告
- 控制台打印可读的评分报告
- CSV导出(开发模式):
resume_evaluations.csv,包含关键字段 - 中间结果缓存(开发模式):
cache/目录
输出示例:
📊 评估报告:候选人_X
开源贡献:72/100(3个活跃开源项目,7次贡献)
个人项目:58/100(2个项目,其中1个有技术深度)
生产项目:—(无生产级项目)
技术技能:65/100(Python/Go/React)
加分项:
+5 有技术博客,月访问1000+
+3 1个开源项目被50+人fork
减分项:
-5 GitHub活跃度低(近3个月无提交)
-3 项目描述缺少技术细节
综合推荐:★★★☆☆(3.5/5)
证据:详见评估详情...
🚀 怎么用?
前提条件
- Python 3.11+
- 一个LLM后端(任选):
- Ollama(本地免费):
ollama pull gemma3:4b - Google Gemini(需要API Key)
- Ollama(本地免费):
安装
git clone 项目地址
cd hiring-agent
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
配置
cp .env.example .env
在 .env 里设置:
LLM_PROVIDER=ollama # 或 gemini
DEFAULT_MODEL=gemma3:4b
GEMINI_API_KEY=your-key # 如果用Gemini
GITHUB_TOKEN=your-token # 可选,提升API配额
运行
python score.py /path/to/resume.pdf
输出:控制台打印评估报告 + CSV(开发模式)。
🎯 谁最适合用?
| 人群 | 为什么适合 |
|---|---|
| HR/招聘专员 | 批量快速筛选简历,省下大量时间 |
| 技术面试官 | 快速了解候选人的真实技术实力(GitHub信号) |
| 招聘经理 | 有统一的评估标准,减少主观偏差 |
| 人力资源系统开发者 | 可集成到现有招聘流程(开源、可定制) |
| 求职者(自我测试) | 自己在简历里放真实信息,看看AI会打多少分,提前发现不足 |
| 对数据隐私敏感的组织 | 完全本地运行,数据不离开内部网络 |
一个典型的“批量筛选”场景
问题:某科技公司收到300份技术岗简历。HR团队只有2个人,要在一周内筛出50份进入下一轮。
传统方式:每人分150份,每份5-8分钟,总计10-20小时。精神疲劳后判断质量下降。
Hiring Agent方式:
- 批量运行
python score.py resume_001.pdf、resume_002.pdf…… - 输出所有候选人的评分和CSV
- HR按评分排序,优先看高分候选人的详细报告
- 结合报告里的证据(开源贡献、项目质量)做决策
时间:300份简历,自动化跑完约30分钟(模型推理时间)。HR用2小时看完高分候选人的详细报告。
效率提升:10倍以上。
⚙️ 技术亮点
1. 模块化设计,可替换每个环节
| 环节 | 可替换 |
|---|---|
| PDF解析 | 可换其他解析库 |
| LLM提供商 | Ollama / Gemini / 可扩展 |
| 提示词模板 | Jinja模板,可自定义 |
| 评分规则 | 可调整评估维度 |
2. 严格的评分约束
- 避免“套利”:不能用“我参与了Linux内核开发”拿高分,必须提供可验证的GitHub证据
- 保证公平:同样条件下,评分标准一致
- 证据驱动:每条分数都要有具体依据
3. 缓存机制(开发模式)
- PDF解析结果缓存,不用重复读文件
- GitHub数据缓存,不用重复拉取API
- 方便迭代调试和批量跑
⚠️ 注意事项
1. 它不是“决策工具”,是“信息工具”
- 它提供结构化的评分和证据
- 最终招不招,还是要看面试、文化匹配、团队需求
2. GitHub不是唯一的评估维度
- 候选人可能没有GitHub账号(尤其是非技术岗或资深专家)
- 没有GitHub信号时,评分会依赖其他维度
3. 本地运行需要足够的硬件
- 4B模型(如gemma3:4b)在普通笔记本上可跑
- 更大模型需要更多内存/显存
🔗 链接
- GitHub:github.com/interviewstreet/hiring-agent
- 许可证:MIT
- 作者:HackerRank
✅ 总结
| 层次 | 核心内容 |
|---|---|
| 解决了什么 | 简历筛选耗时费力、信息不可验证、评估标准不统一的问题 |
| 核心能力 | ①PDF→结构化信息 ②GitHub信号补充 ③可解释评分 |
| 怎么用 | python score.py resume.pdf |
| 谁适合 | HR、技术面试官、招聘经理、招聘系统开发者、求职者(自我测试) |
| 成本 | 开源免费,可完全本地运行 |
Hiring Agent —— 让简历筛选,从“凭感觉”变成“看证据”。
MIT协议,开源免费,数据自托管。

327

被折叠的 条评论
为什么被折叠?



