简历分析与评估
从PDF简历中提取信息,根据目标岗位要求从多个维度对候选人打分,生成结构化的Excel评估报告。
工作流程
简历分析包含以下步骤:
- 确认输入信息(简历路径、目标岗位)
- 加载岗位要求(读取
resources/下对应岗位文档) - 读取简历(运行
scripts/read_pdf.py) - 逐份分析评分(AI 根据岗位要求对每份简历进行多维度评分)
- 生成Excel报告(运行
scripts/write_excel.py)
第一步:确认输入信息
向用户确认以下信息:
- 简历路径:单个PDF文件路径 或 包含多个PDF的文件夹路径(必需)
- 目标岗位:用于评估的岗位名称(必需)
- 输出路径:Excel报告保存位置(可选,默认在简历同目录下生成
简历分析报告.xlsx)
第二步:加载岗位要求
岗位要求文档存放在 resources/ 目录下,以岗位名称命名(如 产品经理.md)。
已有岗位:产品经理、前端开发、Java工程师、测试工程师、项目经理
- 用户指定的岗位在
resources/中存在 → 直接读取对应文件 - 用户指定的岗位不存在 → 告知用户没有该岗位的要求文档,询问是否需要:
- (a) 从已有岗位中选择
- (b) 由AI根据岗位名称生成通用要求后继续分析
读取岗位文档后,重点关注其中的核心技能要求和评分标准部分。
第三步:读取简历
使用 scripts/read_pdf.py 脚本提取简历文本:
# 单个简历
python scripts/read_pdf.py /路径/简历.pdf
# 批量简历
python scripts/read_pdf.py /路径/简历文件夹/
脚本输出JSON格式结果到stdout,包含每个文件的路径、文件名和提取的文本内容。
依赖:需要安装 pdfplumber(pip install pdfplumber)。运行前检查是否已安装,未安装则先安装。
第四步:逐份分析评分
对每份简历,根据岗位要求从以下六个维度进行评分:
| 维度 | 分值 | 评分要点 |
|---|---|---|
| 学历背景 | 15分 | 学历层次(博士15/硕士12/本科9/专科5)、院校水平(985/211加分)、专业相关性 |
| 工作经验 | 20分 | 相关领域工作年限、岗位匹配度、职级成长轨迹 |
| 技能匹配 | 25分 | 简历中体现的技能与岗位核心技能要求的匹配程度 |
| 项目经验 | 20分 | 项目复杂度、承担角色、成果产出、与岗位的关联度 |
| 稳定性 | 10分 | 平均每家公司任职时长、跳槽频率(频繁跳槽扣分) |
| 发展潜力 | 10分 | 学习能力、成长速度、技术/管理视野、额外技能和认证 |
总分 = 各维度得分之和(满分100分)
评分原则
- 简历中明确提到的内容才计分,不做过度推测
- 信息不足的维度给予中等偏下分数,而非零分
- 评分需结合岗位要求文档中的具体技能权重
推荐结论
根据总分给出推荐结论:
- 推荐:总分 ≥ 75分
- 待定:总分 60-74分
- 不推荐:总分 < 60分
综合评价
为每位候选人撰写100-200字的综合评价,包含:
- 核心优势(1-2个亮点)
- 主要不足(1-2个短板)
- 整体评估结论
信息提取
从简历文本中尽量提取以下基本信息:
姓名、性别、年龄、学历、毕业院校、专业、工作年限、联系电话、邮箱
无法提取的字段填写"-"。
第五步:生成Excel报告
将所有分析结果组织成JSON格式,然后调用 scripts/write_excel.py:
echo '<JSON数据>' | python scripts/write_excel.py /输出路径/简历分析报告.xlsx
或先将JSON写入临时文件再调用:
python scripts/write_excel.py /输出路径/简历分析报告.xlsx --input /临时文件.json
依赖:需要安装 openpyxl(pip install openpyxl)。运行前检查是否已安装,未安装则先安装。
JSON数据格式
{
"position": "岗位名称",
"candidates": [
{
"name": "姓名",
"file_name": "源文件名",
"basic_info": {
"gender": "性别",
"age": "年龄",
"education": "学历",
"school": "毕业院校",
"major": "专业",
"work_years": "工作年限",
"phone": "联系电话",
"email": "邮箱"
},
"scores": {
"education_score": 0,
"experience_score": 0,
"skill_match_score": 0,
"project_score": 0,
"stability_score": 0,
"potential_score": 0,
"total_score": 0
},
"evaluation": "综合评价",
"recommendation": "推荐/待定/不推荐"
}
]
}
完成
报告生成后,向用户展示分析摘要:
- 分析的简历总数
- 各推荐等级的人数分布
- 得分最高的前3位候选人及其得分和核心优势
- Excel报告保存位置