Hiring Agent:开源AI简历评估工具,自动解析PDF简历+GitHub技术能力打分
一、Hiring Agent 是什么
Hiring Agent 是 HackerRank(interviewstreet)开源、基于 Python 构建的简历自动打分流水线(Resume-to-Score pipeline),开源协议为 MIT,专门面向技术岗招聘场景打造。工具可读取 PDF 简历,依托大模型抽取标准化简历信息,自动抓取候选人 GitHub 开源履历补充评估维度,输出带证据、可溯源的客观候选人评分报告,解决传统人工筛选效率低、主观偏差大、技术能力难以量化的招聘痛点。
项目支持两套大模型运行方案:本地离线 Ollama 开源模型、云端 Google Gemini,兼顾数据隐私与云端算力需求,全程以 CLI 命令行运行,支持缓存、批量导出 CSV 评分报表,可二次开发对接企业内部招聘系统。

二、核心功能特色
PDF简历结构化解析
基于 PyMuPDF 将简历 PDF 转换为带排版信息的 Markdown,自动识别标题、表格、链接,分模块(基础信息、工作、教育、技能、项目、奖项)通过定制提示词抽取标准化 JSON Resume 数据,解决杂乱简历文本无法机器识别问题。GitHub履历自动增强评估
自动提取简历内 GitHub 账号,调用 GitHub API 获取个人主页与全部仓库,通过 LLM 筛选7个高贡献优质开源项目,量化开源贡献、个人项目、工程落地经验三大技术维度,精准评估开发者实战能力。支持配置 GitHub Token 提升接口调用限额。公平可解释多维度打分体系
内置公平约束评分规则,分为开源贡献、个人项目、生产项目、专业技术技能四大核心打分项,同步记录每一项分数对应的简历原文证据,附带加分项、扣分项明细,杜绝AI主观评判黑箱,HR可完整溯源评分依据。双大模型兼容切换
一套代码无缝切换两种 LLM 后端:Ollama 本地离线部署(Gemma3 系列模型,数据本地存储无外泄)、Google Gemini 云端API(高速批量处理海量简历),可自由配置模型版本。本地缓存与批量报表导出
开启开发模式后自动缓存 PDF 解析、GitHub 接口原始数据,减少重复调用LLM与第三方API;自动生成resume_evaluations.csv批量评分文件,便于数据归档、统计分析。完善工程化容错机制
内置 Gemini 接口指数退避+抖动限流策略,修复简历解析失败后的缓存异常问题,统一清洗大模型返回不规范JSON,代码统一采用 Black 格式化规范,适配迭代维护。全流程命令行极简调度
仅需一条命令即可完成简历完整评估,无需复杂可视化操作,轻量无前端依赖,适配服务器、本地PC离线运行。
三、技术细节
3.1 整体流水线架构(5阶段执行链路)
PDF文本转换:
pymupdf_rag.py负责PDF转Markdown结构化文本;简历信息抽取:
pdf.py加载prompts/templates下Jinja提示词,分模块调用LLM生成标准简历JSON;GitHub数据拉取与筛选:
github.py抓取仓库数据,大模型筛选优质开源项目;标准化候选人评估:
evaluator.py加载评分规则模板,生成带证据的分项得分;结果输出调度:
score.py程序入口,控制台打印报告、缓存中间数据、导出CSV。
3.2 核心模块分工说明
| 文件名 | 核心技术职责 |
|---|---|
| score.py | 项目入口,全流程串联、结果输出、缓存控制 |
| pymupdf_rag.py / pdf.py | PDF解析、文本格式化、分段LLM抽取简历信息 |
| github.py | GitHub API交互、项目筛选、开源贡献量化 |
| evaluator.py | 评分规则执行、多维度打分、生成评估依据 |
| models.py | Pydantic数据模型、统一LLM厂商抽象接口、限流逻辑 |
| llm_utils.py | LLM实例初始化、模型响应清洗、异常处理 |
| prompt.py | LLM厂商映射、提示词模板统一加载 |
| transform.py | 清洗LLM松散JSON,转换为标准JSON Resume格式 |
| config.py | 全局开发模式开关(缓存/CSV导出控制) |
| prompts/ | 全套Jinja提示词模板,覆盖简历抽取、项目筛选、评分评估全场景 |
3.3 环境依赖与技术栈
运行环境:固定 Python 3.11.13,项目内置
.python-version锁定版本;PDF解析:PyMuPDF;
LLM后端二选一:Ollama(Gemma3:1b/4b/12b本地模型)、Google Gemini(gemini-2.0-flash/gemini-2.5-pro);
配置管理:
.env环境变量配置,区分模型厂商、API密钥、GitHub令牌;数据格式:Jinja2 提示词模板、JSON Resume 标准简历结构、CSV 报表;
代码规范:Black 统一代码格式化,MIT 开源协议。
四、应用场景
技术团队校招/社招批量简历初筛
研发、后端、前端、算法、运维等技术岗海量简历自动化初筛,替代人工通读,快速过滤低匹配候选人,提升招聘效率。开源开发者专项人才挖掘
针对重视开源能力的岗位,自动量化候选人GitHub项目贡献,精准筛选具备实战、开源协作经验的工程师。企业内部人才库标准化打分归档
批量评估历史简历,导出CSV统一存储评分数据,建立可检索、可量化的技术人才库。外包/猎头技术候选人快速背调
无需人工翻阅GitHub主页,工具自动完成开源履历评估,降低猎头人工核验成本。私有化合规招聘场景
使用 Ollama 本地模型离线运行,简历、候选人数据全程本地存储,满足金融、政企等数据不出内网合规要求。二次开发集成
基于开源代码封装API,对接企业自研ATS招聘系统、内部OA、人才管理平台。
五、完整使用方法
5.1 环境前置准备
安装 Python 3.11.13;
二选一部署LLM:
本地方案:安装 Ollama,执行
ollama pull gemma3:4b拉取开源模型;云端方案:申请 Google Gemini API Key;
(可选)获取 GitHub Token,提升API访问频次限制。
5.2 项目拉取与依赖安装
# 克隆仓库 git clone https://github.com/interviewstreet/hiring-agent cd hiring-agent # 创建虚拟环境 python -m venv .venv # Mac/Linux 激活环境 source .venv/bin/activate # Windows 激活环境 .venv\Scripts\activate # 安装全部依赖 pip install -r requirements.txt
5.3 环境变量配置
复制模板文件生成配置文件,填写对应密钥:
cp .env.example .env
核心环境变量配置项:
LLM_PROVIDER:ollama / gemini(默认ollama)DEFAULT_MODEL:模型名称,如gemma3:4b、gemini-2.5-proGEMINI_API_KEY:Gemini云端调用必填GITHUB_TOKEN:可选,提升GitHub接口限额
5.4 执行简历评估(核心命令)
python score.py /你的简历文件路径/resume.pdf
执行后自动完成PDF解析、GitHub数据抓取、打分评估,控制台输出完整评估报告;开启 DEVELOPMENT_MODE=True 时自动缓存中间数据并导出CSV评分表格。
六、竞品对比
选取2款同类工具:阿里开源简历解析工具 SmartResume、通用开源简历匹配工具 Resume Matcher,与 Hiring Agent 做全维度对比。
| 对比维度 | Hiring Agent | SmartResume(阿里开源) | Resume Matcher |
|---|---|---|---|
| 项目定位 | 技术岗完整简历打分流水线,集成GitHub开源能力评估 | 通用多格式简历结构化解析工具 | 求职者简历-JD匹配度优化工具 |
| 支持简历格式 | 仅PDF | PDF、Word、图片、Excel多格式 | PDF、文本简历 |
| GitHub履历评估 | ✅ 原生内置,自动筛选优质开源项目打分 | ❌ 无GitHub关联分析能力 | ❌ 不支持第三方账号挖掘 |
| LLM部署方案 | Ollama本地离线 + Gemini云端双方案 | 内置通义千问轻量化模型,无本地开源模型支持 | 仅文本向量相似度,无大模型深度抽取 |
| 评分可解释性 | ✅ 分项打分+原文证据溯源,公平约束 | ❌ 仅结构化字段提取,无标准化打分体系 | 仅匹配度数值,无分项能力评估 |
| 输出文件 | 控制台报告 + CSV批量报表 + 本地JSON缓存 | 结构化JSON数据,无报表导出 | 简历优化建议、匹配分数 |
| 适用人群 | 企业HR、技术招聘、猎头、私有化部署团队 | 企业文档解析、通用简历数字化 | 个人求职者简历优化 |
| 开源协议 | MIT | Apache | MIT |
| 核心短板 | 仅支持PDF简历,无可视化Web界面 | 缺少技术能力量化评分,无开源贡献评估 | 无简历结构化抽取,不适合企业批量筛选 |
七、常见问题解答(FAQ)
Q:Hiring Agent 只能处理PDF格式简历吗?
A:是的,项目原生仅支持PDF简历解析,暂不兼容Word、图片、HTML等其他简历格式,若需拓展多格式需基于pymupdf新增OCR、Word解析模块二次开发。
Q:本地Ollama和云端Gemini该如何选择?
A:对内网数据合规、简历隐私敏感的政企、金融团队,优先选择Ollama本地离线部署,所有数据不会上传第三方;需要批量高速处理海量简历、本地硬件算力不足时,选择Gemini云端方案。
Q:工具无法抓取候选人GitHub信息是什么原因?
A:一是简历内未填写GitHub账号地址;二是未配置GITHUB_TOKEN导致GitHub API限流;三是候选人GitHub账号设为私有,接口无法读取仓库数据。可补充Token或手动补充GitHub链接重新执行。
Q:DEVELOPMENT_MODE开关有什么作用?关闭会有什么影响?
A:开启后会缓存PDF解析、GitHub接口原始数据,同时生成resume_evaluations.csv评分报表;关闭后不再缓存、不导出CSV,仅控制台输出单次评估结果,减少本地磁盘占用。
Q:运行时出现Gemini接口限流报错怎么解决?
A:项目models.py内置指数退避+抖动重试机制,会自动重试请求;若频繁报错可更换更高配额的Gemini API Key,或切换Ollama本地模型规避限流。
Q:可以自定义打分规则和评估标准吗?
A:完全支持,所有评分、抽取逻辑均存放于prompts目录下Jinja模板文件,直接修改resume_evaluation_criteria.jinja等评分模板,即可自定义各维度分值、加分扣分项规则,无需改动底层Python代码。
Q:没有GPU电脑可以运行Ollama本地模型吗?
A:可以,Gemma3:1b轻量化模型仅需普通CPU即可运行,仅解析速度较慢;12b大模型建议搭配GPU提升推理效率。
八、官方链接
九、总结
Hiring Agent 是一款专为技术招聘打造的开源端到端AI简历评估流水线,依托PDF解析、大模型信息抽取与GitHub开源履历挖掘能力,实现标准化、可溯源的候选人量化打分,同时提供本地离线与云端两套大模型运行方案,兼顾数据隐私与算力灵活性;项目基于MIT协议完全开源,模块化代码结构便于企业二次开发与私有化部署,虽仅支持PDF简历、无原生Web前端界面,但在技术人才开源能力评估、批量简历自动化初筛场景具备独有优势,是中小技术团队、猎头、企业研发招聘轻量化AI筛选工具的优质开源选型。
版权及免责申明:本文由@AI铺子原创发布。该文章观点仅代表作者本人,不代表本站立场。本站不承担任何相关法律责任。
如若转载,请注明出处:https://www.aipuzi.cn/ai-news/hiring-agent.html

