Hiring Agent:开源AI简历评估工具,自动解析PDF简历+GitHub技术能力打分

原创 发布日期:
63

一、Hiring Agent 是什么

Hiring Agent 是 HackerRank(interviewstreet)开源、基于 Python 构建的简历自动打分流水线(Resume-to-Score pipeline),开源协议为 MIT,专门面向技术岗招聘场景打造。工具可读取 PDF 简历,依托大模型抽取标准化简历信息,自动抓取候选人 GitHub 开源履历补充评估维度,输出带证据、可溯源的客观候选人评分报告,解决传统人工筛选效率低、主观偏差大、技术能力难以量化的招聘痛点。

项目支持两套大模型运行方案:本地离线 Ollama 开源模型、云端 Google Gemini,兼顾数据隐私与云端算力需求,全程以 CLI 命令行运行,支持缓存、批量导出 CSV 评分报表,可二次开发对接企业内部招聘系统。

Hiring Agent:开源AI简历评估工具,自动解析PDF简历+GitHub技术能力打分

二、核心功能特色

  1. PDF简历结构化解析
    基于 PyMuPDF 将简历 PDF 转换为带排版信息的 Markdown,自动识别标题、表格、链接,分模块(基础信息、工作、教育、技能、项目、奖项)通过定制提示词抽取标准化 JSON Resume 数据,解决杂乱简历文本无法机器识别问题。

  2. GitHub履历自动增强评估
    自动提取简历内 GitHub 账号,调用 GitHub API 获取个人主页与全部仓库,通过 LLM 筛选7个高贡献优质开源项目,量化开源贡献、个人项目、工程落地经验三大技术维度,精准评估开发者实战能力。支持配置 GitHub Token 提升接口调用限额。

  3. 公平可解释多维度打分体系
    内置公平约束评分规则,分为开源贡献、个人项目、生产项目、专业技术技能四大核心打分项,同步记录每一项分数对应的简历原文证据,附带加分项、扣分项明细,杜绝AI主观评判黑箱,HR可完整溯源评分依据。

  4. 双大模型兼容切换
    一套代码无缝切换两种 LLM 后端:Ollama 本地离线部署(Gemma3 系列模型,数据本地存储无外泄)、Google Gemini 云端API(高速批量处理海量简历),可自由配置模型版本。

  5. 本地缓存与批量报表导出
    开启开发模式后自动缓存 PDF 解析、GitHub 接口原始数据,减少重复调用LLM与第三方API;自动生成 resume_evaluations.csv 批量评分文件,便于数据归档、统计分析。

  6. 完善工程化容错机制
    内置 Gemini 接口指数退避+抖动限流策略,修复简历解析失败后的缓存异常问题,统一清洗大模型返回不规范JSON,代码统一采用 Black 格式化规范,适配迭代维护。

  7. 全流程命令行极简调度
    仅需一条命令即可完成简历完整评估,无需复杂可视化操作,轻量无前端依赖,适配服务器、本地PC离线运行。

三、技术细节

3.1 整体流水线架构(5阶段执行链路)

  1. PDF文本转换:pymupdf_rag.py 负责PDF转Markdown结构化文本;

  2. 简历信息抽取:pdf.py 加载 prompts/templates 下Jinja提示词,分模块调用LLM生成标准简历JSON;

  3. GitHub数据拉取与筛选:github.py 抓取仓库数据,大模型筛选优质开源项目;

  4. 标准化候选人评估:evaluator.py 加载评分规则模板,生成带证据的分项得分;

  5. 结果输出调度: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 环境依赖与技术栈

  1. 运行环境:固定 Python 3.11.13,项目内置 .python-version 锁定版本;

  2. PDF解析:PyMuPDF;

  3. LLM后端二选一:Ollama(Gemma3:1b/4b/12b本地模型)、Google Gemini(gemini-2.0-flash/gemini-2.5-pro);

  4. 配置管理:.env 环境变量配置,区分模型厂商、API密钥、GitHub令牌;

  5. 数据格式:Jinja2 提示词模板、JSON Resume 标准简历结构、CSV 报表;

  6. 代码规范:Black 统一代码格式化,MIT 开源协议。

四、应用场景

  1. 技术团队校招/社招批量简历初筛
    研发、后端、前端、算法、运维等技术岗海量简历自动化初筛,替代人工通读,快速过滤低匹配候选人,提升招聘效率。

  2. 开源开发者专项人才挖掘
    针对重视开源能力的岗位,自动量化候选人GitHub项目贡献,精准筛选具备实战、开源协作经验的工程师。

  3. 企业内部人才库标准化打分归档
    批量评估历史简历,导出CSV统一存储评分数据,建立可检索、可量化的技术人才库。

  4. 外包/猎头技术候选人快速背调
    无需人工翻阅GitHub主页,工具自动完成开源履历评估,降低猎头人工核验成本。

  5. 私有化合规招聘场景
    使用 Ollama 本地模型离线运行,简历、候选人数据全程本地存储,满足金融、政企等数据不出内网合规要求。

  6. 二次开发集成
    基于开源代码封装API,对接企业自研ATS招聘系统、内部OA、人才管理平台。

五、完整使用方法

5.1 环境前置准备

  1. 安装 Python 3.11.13;

  2. 二选一部署LLM:

    • 本地方案:安装 Ollama,执行 ollama pull gemma3:4b 拉取开源模型;

    • 云端方案:申请 Google Gemini API Key;

  3. (可选)获取 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-pro

  • GEMINI_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 AgentSmartResume(阿里开源) 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筛选工具的优质开源选型。

打赏
THE END
作者头像
AI铺子
关注ai行业发展,专注ai工具推荐