AI帮你筛简历:开源Hiring Agent,一键评估候选人真实水平

在这里插入图片描述

输入一份PDF简历,自动提取结构化信息
结合GitHub代码信号,输出公平、可解释的评分
全程可本地运行,数据不外传


📋 先看痛点:招聘筛简历,为什么又慢又不准?

你是一个技术团队的招聘负责人、HR、或者技术面试官。

你收到100份简历,要从中找出合适的候选人。

问题来了

  • 每份简历5分钟 → 100份要花 8小时以上,还不一定能看完
  • 简历里的“项目经历”可能夸大 → 你没法验证
  • GitHub上写了“贡献过开源项目” → 你真的会去一个个查吗?
  • 不同人的简历格式不同 → 比较起来很困难
  • 评估标准不统一 → 不同面试官看法不同

核心矛盾

简历太多,看不过来;简历里的信息不可验证;评估标准主观。但招聘又必须做——每个错过的优秀候选人和每个被误招的不合适的人,都代价巨大。


✅ Hiring Agent 的解法

Hiring Agent 是一个开源的、AI驱动的简历评估工具。

一句话:输入PDF简历 → AI提取结构化信息 + GitHub信号 → 输出公平、可解释的评分

它不做“简历是否通过”的武断判断。它做的是:

  1. 从简历PDF里提取:基本信息、工作经历、教育背景、技能、项目、获奖
  2. 如果简历里有GitHub信息,拉取真实代码数据
  3. 对候选人进行分类打分,附带证据、加分和扣分理由
  4. 输出一份可解释的评估报告

你可以完全本地运行(用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)

安装

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方式

  1. 批量运行 python score.py resume_001.pdfresume_002.pdf……
  2. 输出所有候选人的评分和CSV
  3. HR按评分排序,优先看高分候选人的详细报告
  4. 结合报告里的证据(开源贡献、项目质量)做决策

时间: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协议,开源免费,数据自托管。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lichong951

你的鼓励决定更新的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值