智能简历生成与优化(Smart Resume)
概述
本技能提供端到端的简历制作与优化能力,覆盖从 JD 分析到简历投递准备的完整流程:
JD 解析 → 简历生成 → 多维打分 → 优化建议 → 多格式导出 → 模拟面试准备。
支持中英文双语简历,所有输出均为 ATS(申请人追踪系统)友好格式。
触发场景
当用户出现以下意图时激活本技能:
- "帮我写一份简历" / "根据这个 JD 生成简历" / "简历匹配"
- "给我的简历打分" / "简历有什么问题" / "优化我的简历"
- "把简历导出成 Word/PDF" / "生成 LaTeX 简历"
- "模拟面试" / "面试会问什么" / "面试问答"
- "中英文简历" / "English resume" / "双语简历"
环境准备
生成 Word/PDF 需安装 Python 依赖(在隔离 venv 中执行):
# 使用受管 Python 创建/复用 venv
"<受管 python 路径>" -m venv "<venv 路径>"
"<venv>/Scripts/pip" install python-docx reportlab
python-docx:Word 简历生成(必需,导出 .docx 时)reportlab:PDF 简历生成(必需,导出 .pdf 时)- LaTeX:可选,仅当用户需要将 .tex 编译为 PDF 时需系统安装 TeX 发行版(如 TeX Live / MiKTeX),并用
xelatex编译。生成 .tex 源文件本身不需要任何依赖。
若依赖缺失,脚本会提示安装命令。LaTeX 模板生成纯文本 .tex,无需依赖。
简历数据结构
所有脚本基于统一的简历 JSON 结构工作。生成或编辑简历前,必读 references/resume_data_schema.md 了解完整字段定义。核心结构:
{
"lang": "zh",
"name": "姓名",
"contact": {"email": "", "phone": "", "location": ""},
"summary": "个人摘要",
"experience": [{"company": "", "title": "", "start": "", "end": "", "bullets": [""]}],
"education": [{"school": "", "degree": "", "major": "", "start": "", "end": ""}],
"skills": {"technical": [], "frameworks": [], "databases": []},
"projects": [], "certifications": [], "awards": []
}
参考完整示例:assets/sample_resume_zh.json(中文)、assets/sample_resume_en.json(英文)。
核心能力与工作流
能力 1:根据 JD 生成匹配简历
目标:解析目标岗位 JD,提取关键词与要求,据此定制简历内容。
步骤:
1. 获取用户 JD 文本(粘贴或文件)。
2. 运行 JD 解析脚本,提取技能要求、经验年限、学历、职责:
bash
"<python>" scripts/parse_jd.py --input <jd.txt> --output parsed_jd.json
或直接传入文本:--jd "JD文本"。脚本输出结构化 JSON,含 skills_required、skills_preferred、experience_years、education、responsibilities。
3. 基于解析结果,结合用户提供的个人经历,撰写简历 JSON:
- 摘要中融入 JD 核心方向与年限要求
- 技能区优先列出 JD 必需技能(仅限真实掌握的)
- 经历描述自然嵌入 JD 关键词
- 调整经历顺序,最相关的放最前
4. 撰写时遵循 references/resume_best_practices.md:成就导向、强动词开头、量化数据、STAR 结构。
关键原则:
- 不编造经历或技能。若用户缺乏 JD 要求的某项技能,在摘要或求职信说明学习意愿,而非虚构。
- 关键词融入要自然,避免堆砌。
能力 2:简历打分与优化建议
目标:对简历进行多维度量化评分,输出可操作的修改建议。
步骤:
1. 将简历保存为 JSON(符合数据结构)。
2. 运行打分脚本:
bash
"<python>" scripts/score_resume.py --resume resume.json --jd jd.txt --output score.json
也可传入已解析的 JD:--parsed-jd parsed_jd.json。
3. 解读评分报告(参考 references/scoring_criteria.md):
- total(0-100)+ grade(A+~D)
- 6 个维度分数:JD 匹配度(25)、内容完整度(20)、量化与成就(15)、ATS 兼容性(15)、经历描述质量(15)、排版一致性(10)
- top_suggestions:最关键的 3-5 条建议
- missing_keywords:JD 要求但简历未体现的关键词
4. 按建议优化简历,重点改善失分最多的维度,优化后重新打分验证。
解读要点:不追求满分,80+ 即可投递,90+ 已属优秀。结合 ATS 检查清单(references/ats_compatibility.md)做人工复核最终渲染效果。
能力 3:多格式导出(Word/PDF/LaTeX)
目标:将简历 JSON 导出为用户需要的格式,均为 ATS 友好。
Word(.docx):
"<python>" scripts/generate_docx.py --resume resume.json --output resume.docx --template simple
模板:simple(极简,最 ATS 友好,默认)、modern(带强调色与分隔线)。依赖 python-docx。
PDF(.pdf):
"<python>" scripts/generate_pdf.py --resume resume.json --output resume.pdf
直接生成文本可选的 PDF,依赖 reportlab,自动检测系统中文字体。
LaTeX(.tex):
"<python>" scripts/generate_latex.py --resume resume.json --output resume.tex --template modern
模板:modern(默认)、classic。生成纯文本 .tex 源文件,无需依赖。编译为 PDF 需系统安装 TeX 并运行 xelatex resume.tex(支持中英文,需 ctex 宏包)。
格式选择建议:
- 在线投递系统/未知 ATS:优先 .docx
- 邮件附件/设计岗:.pdf
- 学术/技术精致排版:.tex(编译后 .pdf)
能力 4:模拟面试问答生成
目标:基于简历和 JD 生成针对性的模拟面试题与答题思路。
步骤:
1. 参考 references/interview_generation.md 的生成策略。
2. 获取简历 JSON 和目标 JD(可先用 parse_jd.py 解析)。
3. 生成五类问题:
- 简历深挖类(必出,权重最高):针对每条含数据的 bullet 追问数据来源、角色、技术选型
- 技术原理类:按 JD 技能分层(概念→原理→对比→实战→设计)
- 系统设计类:中高级岗位,结合 JD 领域
- 行为面试类:用 STAR 反向验证简历真实性
- HR/动机类
4. 每题提供:考察意图、答题要点、参考框架(非标准答案)、追问(follow_ups)。
5. 标注 red_flags:简历中可能被质疑的点(数据异常、时间线空白、技能罗列未体现等),提示用户准备解释。
输出建议:按面试轮次组织,单次 15-25 题,标注难度。提醒用户模拟面试重点是练表达而非背答案。
能力 5:中英文双语简历
目标:生成中英文两份独立但事实一致的简历。
步骤:
1. 参考 references/bilingual_guidelines.md。
2. 先写中文版(基于用户中文信息),lang 设为 "zh"。
3. 再写英文版:基于中文版硬事实,用英文表达习惯重写(非直译),lang 设为 "en"。
4. 交叉校验:公司名、职位、时间、核心数据两版一致。
5. 分别用打分脚本评分,分别导出所需格式。
6. 避免:中式英文、时态混乱、混入隐私信息(英文简历不放照片/年龄)。
本地化要点:公司/学校用官方英译;技术词保留英文原文;职位用目标市场通用说法;日期英文用 Mon YYYY。
资源索引
脚本(scripts/)
| 脚本 | 功能 | 依赖 |
|---|---|---|
parse_jd.py |
解析 JD,提取技能/经验/学历/职责 | 无(标准库) |
score_resume.py |
简历六维度打分与建议 | 无(标准库,复用 parse_jd) |
generate_docx.py |
生成 Word 简历 | python-docx |
generate_pdf.py |
生成 PDF 简历 | reportlab |
generate_latex.py |
生成 LaTeX 简历源文件 | 无(标准库) |
参考文档(references/)
| 文档 | 用途 |
|---|---|
resume_data_schema.md |
简历 JSON 完整字段定义(生成/编辑前必读) |
resume_best_practices.md |
简历撰写最佳实践(强动词、STAR、量化) |
ats_compatibility.md |
ATS 兼容规则与检查清单 |
scoring_criteria.md |
评分维度详解与解读方法 |
interview_generation.md |
面试问答生成策略 |
bilingual_guidelines.md |
中英文双语简历规范与本地化表达 |
示例资源(assets/)
| 文件 | 用途 |
|---|---|
sample_resume_zh.json |
中文简历示例(亦是测试数据) |
sample_resume_en.json |
英文简历示例 |
sample_jd.txt |
示例 JD(用于测试 parse_jd) |
端到端工作流示例
用户:"我有一段 JD,帮我生成简历并导出 PDF,再给点面试建议。"
- 让用户提供个人经历信息(或现有简历)。
- 运行
parse_jd.py解析 JD,获取技能要求。 - 结合用户经历 + JD 关键词,撰写简历 JSON,遵循最佳实践。
- 运行
score_resume.py --resume resume.json --jd jd.txt打分。 - 按建议优化简历,重新打分至 80+。
- 运行
generate_pdf.py --resume resume.json --output resume.pdf导出。 - 基于
interview_generation.md生成模拟面试问答,标注 red_flags。 - 将简历 JSON、PDF、面试问答交付用户。
注意事项
- 简历 JSON 是事实的唯一来源,所有格式导出都基于它。先确保 JSON 质量,再导出。
- 量化数据必须真实,面试会被深挖数据来源与测量方法。
- 中英文简历是两份独立简历,不是翻译关系。
- 每次投递前根据具体 JD 微调(提取关键词→融入→重排),不要一份简历投所有岗位。
- 导出后用 ATS 检查清单复核最终文件(单栏、文本可选、无表格布局)。