乐于分享
好东西不私藏

智能招聘面试评估Agent系统【附带源码】

智能招聘面试评估Agent系统【附带源码】

传统招聘面试评估流程面临效率低、主观性强、标准不统一等痛点。HR需手动筛选大量简历、主观判断候选人匹配度,易造成优秀人才流失或人岗不匹配。

智能招聘面试评估Agent系统基于多Agent协作架构,实现从简历解析、岗位匹配、多维评估到面试决策的全流程自动化。系统通过5个专业Agent协同工作,从技术能力、软技能、文化匹配等维度量化评估候选人,自动生成结构化评估报告和面试问题清单。该系统可显著降低HR重复劳动,提升评估客观性和一致性,缩短招聘周期,助力企业精准识人、高效引才,为人才战略决策提供数据支撑。

作者:百度 谭文涛

从简历到面试全流程自动化,减少HR重复劳动,提升评估客观性

系统架构

简历文档(PDF/DOCX)
    │
    ▼
┌──────────────┐
│  简历解析     │  ← PDF(MinerU)/DOCX(python-docx) + LLM结构化
│  Agent       │
└──────┬───────┘
       │ 结构化简历JSON
       ▼
┌──────────────┐
│  岗位匹配     │
│  Agent       │  ← JD(PDF/DOCX/MD) + 简历 → 匹配度评分(0-100)
└──────┬───────┘
       │ 匹配结果
       ├─────────────┬─────────────┐
       ▼             ▼             ▼
┌────────────┐ ┌────────────┐ ┌────────────┐
│ 技术能力    │ │ 软技能     │ │ 文化匹配   │  ← 并行执行
│ 评估Agent  │ │ 评估Agent  │ │ 评估Agent  │
└─────┬──────┘ └─────┬──────┘ └─────┬──────┘
      └──────────────┼──────────────┘
                     ▼
            ┌──────────────┐
            │  面试决策     │
            │  Agent       │  → 综合评分 + 面试问题清单
            └──────────────┘

协作模式:串行流水线 + 并行评估

LLM调用:约8-12次(解析1次 + 匹配1次 + 评估3次 + 决策1次 + 搜索N次)

5个Agent说明

Agent
职责
输入
输出
LLM调用
简历解析Agent
PDF/DOCX→结构化JSON
简历文件(.pdf/.docx)
结构化简历JSON
1次
岗位匹配Agent
简历与JD匹配度评分
简历JSON + JD(.pdf/.docx/.md)
匹配度(0-100)+分析
1次
技术能力评估Agent
技术深度/项目复杂度/成长轨迹
简历JSON + JD
技术评分+技能分析
1次
软技能评估Agent
沟通/协作/领导力+搜索
简历JSON
软技能评分+搜索结果
1+N次
面试决策Agent
综合评分+面试问题清单
4项评估结果
决策+问题清单
1次

项目结构

interview-evaluator-mas/
├── main.py                          # 入口文件:命令行参数解析,启动评估流水线
├── orchestrator.py                  # 主编排器:串行+并行流程控制,HTML报告生成
├── config.py                        # 全局配置:LLM后端/MinerU/搜索/评分阈值

├── core/                            # 核心基础设施层
│   ├── __init__.py
│   ├── llm_client.py                # LLM客户端:千帆+Ollama双后端路由,重试/降级/统计
│   ├── search_client.py             # 百度AI搜索客户端:单条/批量搜索,结果文本提取
│   ├── mineru_parser.py             # MinerU PDF解析:上传→轮询→下载ZIP→提取Markdown
│   ├── docx_parser.py               # Word文档解析:python-docx提取段落+表格文本
│   └── document_parser.py           # 统一文档解析入口:按扩展名自动路由(.pdf/.docx/.md/.txt)

├── agents/                          # Agent业务逻辑层
│   ├── __init__.py
│   ├── resume_parser_agent.py       # 简历解析Agent:PDF/DOCX→文本→LLM→结构化JSON
│   ├── job_matcher_agent.py         # 岗位匹配Agent:6维度加权评分,0-100分匹配度
│   ├── tech_evaluator_agent.py      # 技术能力评估Agent:深度/复杂度/广度/成长/影响力
│   ├── softskill_evaluator_agent.py # 软技能评估Agent:5维度+百度搜索验证公开信息
│   └── interview_decider_agent.py   # 面试决策Agent:综合4维评分+STAR面试问题清单

├── prompt/                          # 提示词文件(各Agent独立markdown,运行时动态加载)
│   ├── resume_parser.md             # 简历解析提示词:7维度提取规则+JSON输出格式
│   ├── job_matcher.md               # 岗位匹配提示词:6维度评分规则+量化标准
│   ├── tech_evaluator.md            # 技术评估提示词:深度推断方法+技能分析框架
│   ├── softskill_evaluator.md       # 软技能评估提示词:行为推断+搜索结果甄别规则
│   └── interview_decider.md         # 面试决策提示词:加权公式+4级推荐+问题设计原则

├── data/                            # 输入数据目录
│   └── jd_llm_engineer.md           # 示例岗位描述(高级大模型算法工程师)

└── output/                          # 评估报告输出目录(HTML格式,自动按时间戳命名)

文件职责速查

文件
核心职责
关键依赖
main.py
命令行入口,参数解析+格式校验,流水线启动
orchestrator, document_parser
orchestrator.py
4阶段编排(串行→串行→并行→串行),JD多格式加载,HTML报告渲染
agents/*, core/*
config.py
环境变量加载,API密钥,评分阈值
os
core/llm_client.py
千帆/Ollama双后端路由,重试2次,JSON解析工具
requests, config
core/search_client.py
百度AI搜索(baidu_search_v2),批量搜索+限流
requests, config
core/mineru_parser.py
MinerU精准解析API,异步上传+轮询+ZIP提取
requests, config
core/docx_parser.py
Word文档解析,python-docx提取段落+表格文本
python-docx
core/document_parser.py
统一文档解析入口,按扩展名路由(.pdf/.docx/.md/.txt)
mineru_parser, docx_parser
agents/resume_parser_agent.py
PDF/DOCX→文本→结构化JSON(7维度)
document_parser, llm_client
agents/job_matcher_agent.py
简历+JD→6维度匹配评分
llm_client
agents/tech_evaluator_agent.py
技术深度/项目复杂度/成长轨迹评估
llm_client
agents/softskill_evaluator_agent.py
软技能评估+智能搜索词拆分+百度搜索
llm_client, search_client
agents/interview_decider_agent.py
综合加权评分+4级推荐+面试问题清单生成
llm_client

快速开始

环境准备

# 安装依赖
pip install requests python-docx

# (可选)Ollama本地运行
ollama serve
ollama pull qwen2.5:7b

运行方式

# 方式1: PDF简历 + Markdown JD
python main.py 简历.pdf data/jd_llm_engineer.md

# 方式2: Word简历 + Word JD
python main.py 简历.docx 岗位描述.docx

# 方式3: Word简历 + PDF JD
python main.py 简历.docx jd.pdf

# 方式4: 使用Ollama后端
LLM_PROVIDER=ollama python main.py 简历.pdf data/jd_llm_engineer.md

# 方式5: 无参数运行(使用data目录中的示例文件)
python main.py

支持的文件格式

  • 简历:.pdf(MinerU解析) / .docx(python-docx解析)
  • JD:.pdf / .docx / .md / .txt

配置说明

通过环境变量或修改 config.py 进行配置:

配置项
环境变量
默认值
说明
LLM后端
LLM_PROVIDER qianfan qianfan

ollama
千帆API Key
QIANFAN_API_KEY
(内置)
bce-v3格式密钥
千帆模型
QIANFAN_MODEL ernie-x1-turbo-32k
千帆模型名称
Ollama地址
OLLAMA_BASE_URL http://localhost:11434
Ollama服务地址
Ollama模型
OLLAMA_MODEL qwen2.5:7b
本地模型名称
MinerU Token
MINERU_TOKEN
(内置)
MinerU API Token
搜索API Key
BAIDU_SEARCH_API_KEY
(内置)
百度AI搜索密钥

评估维度详情

岗位匹配 (权重30%)

维度
权重
说明
学历匹配
15%
学历层次与JD要求是否一致
专业匹配
10%
专业方向与岗位需求的相关性
经验年限
20%
工作年限是否达到JD要求
技能覆盖
25%
候选人技能与JD要求的重叠度
行业背景
15%
是否有同行业/同领域的工作经验
职级匹配
15%
当前职级与目标岗位的层级适配性

技术能力 (权重30%)

维度
权重
说明
技术栈深度
30%
核心技术的掌握深度
项目复杂度
25%
参与项目的规模、难度、技术挑战
技术广度
15%
技术视野是否开阔
成长轨迹
15%
技术能力随时间的成长趋势
技术影响力
15%
开源贡献、技术文章、专利等

软技能 (权重20%)

维度
权重
说明
沟通表达
25%
信息传递的清晰度、逻辑性和说服力
团队协作
25%
在团队中的合作方式和角色定位
领导力
20%
影响他人、推动事情前进的能力
抗压韧性
15%
面对困难和挑战时的应对方式
学习能力
15%
快速掌握新知识、适应新环境的能力

文化匹配 (权重20%)

维度
权重
说明
价值观契合
25%
候选人价值取向与企业文化的一致性
工作风格适配
25%
工作节奏、方式的匹配程度
团队氛围匹配
20%
与目标团队协作风格的适配性
长期稳定性
15%
候选人在目标企业长期发展的可能性
发展潜力
15%
在目标企业文化中的成长空间

面试建议等级

综合评分
建议等级
说明
85-100
★★★ 强烈推荐
高匹配度,建议尽快安排面试
70-84
★★ 推荐
较好匹配,建议正常安排面试
55-69
★ 谨慎推荐
部分维度存在短板,需重点验证
0-54
✗ 不推荐
匹配度不足,建议暂不安排面试

软技能搜索策略

软技能评估Agent会智能拆分搜索关键词,通过百度AI搜索获取候选人公开信息:

  1. 姓名 + 公司名
    :验证职业经历
  2. 姓名 + 技术领域
    :查找技术影响力(博客、开源)
  3. 姓名 + 行业活动
    :查找公开分享、演讲
  4. 姓名 + 学校
    :学术背景验证

搜索结果会与简历信息交叉验证,仅采纳能确认与候选人相关的内容。

输出报告

系统生成HTML可视化报告,包含:

  • 综合评分概览(四维雷达图)
  • 评估摘要(一句话总结 + 优势/关注点)
  • 各维度详细评分表
  • 技能分析(核心技能 + 缺失技能)
  • 面试问题清单(技术类 + 软技能类 + 文化适配类)
  • 面试建议和注意事项

报告保存在 output/ 目录下。

项目源码

通过网盘分享的文件:interview-evaluator-mas.zip

链接: https://pan.baidu.com/s/1Yhph1V9emc8QfIwPNog_Ng?pwd=6cwy 提取码: 6cwy 

–来自百度网盘超级会员v4的分享