Recruitment Manager
智能招聘管理助手,提供从简历筛选到录用决策的全流程支持。
核心能力
1. 简历解析与信息提取
解析候选人简历,支持多种格式:
- Word 文档 (.docx, .doc)
- PDF 文档 (.pdf) - v2.0 优化,使用 pypdfium2 作为首选解析器(对扫描件支持最好)
- 图片格式 (.png, .jpg, .jpeg)
PDF 解析策略(v2.0 优化):
- pypdfium2.get_textpage() — 首选,可提取扫描件PDF的隐藏文本层(Microsoft Print To PDF 等生成的扫描件)
- pdfplumber — 后备,更好的表格和布局支持
- PyPDF2 — 最后后备
- PDF转图片 + pytesseract OCR — 完全无法提取文本时的最终方案
自动提取关键信息:
- 基本信息(姓名、联系方式、邮箱)
- 教育背景(学校、专业、学历、时间)
- 工作经历(公司、职位、时长、职责)
- 技能清单(技术栈、语言能力、证书)
- 项目经验(项目名称、角色、成果)
使用方法:
解析这份简历:/path/to/resume.pdf
分析候选人张三的简历,文件在桌面
依赖安装:
pip install pypdfium2 pdfplumber PyPDF2 python-docx pytesseract Pillow
2. 人岗匹配分析
根据岗位 JD(Job Description)和候选人简历,进行匹配度分析:
匹配维度:
- 技能匹配度(必需技能、优先技能)
- 经验匹配度(工作年限、行业经验)
- 教育背景匹配度(学历要求、专业相关性)
- 综合能力评估(软实力、领导力等)
输出内容:
- 匹配分数(0-100 分)
- 优势分析(匹配度高的维度)
- 差距分析(需要补足的能力)
- 风险提示(潜在问题点,如高频跳槽、岗位降级等)
使用方法:
分析这份简历与 Java 高级开发工程师岗位的匹配度
JD: /path/to/jd.pdf
简历: /path/to/resume.docx
3. 结构化面试题生成
根据岗位要求和候选人背景,生成针对性面试题目:
题目类型:
- 技术能力题(编程、系统设计、问题解决)
- 行为面试题(STAR 方法)
- 情景模拟题(如何处理特定工作场景)
- 文化匹配题(价值观、团队协作)
题目结构:
- 题目内容
- 考察要点
- 评分标准
- 追问方向
使用方法:
为这个候选人生成面试题目
岗位:产品经理
简历:/path/to/resume.pdf
4. 候选人评估报告
生成专业的候选人评估报告,支持多种高质量输出格式:
报告内容:
- 候选人基本信息
- 简历解析结果
- 人岗匹配分析(含匹配分数和可视化)
- 面试表现评估(如有)
- 优劣势分析
- 风险评估
- 录用建议(推荐/待定/不推荐)
- 结构化面试题附录(可选)
支持格式:
| 格式 | 说明 | 中文字体支持 | |------|------|--------------| | HTML | 网页版报告,便于分享和在线查看 | 依赖浏览器 | | PDF(高质量) | 基于专业 PDF 管道生成,支持中文字体自动检测 | ✅ 自动检测 SimHei/SimSun 等 | | Word (DOCX) | 可编辑版本,便于后续修改 | ✅ 原生支持 |
PDF 报告生成特性(v2.0 新增):
- 使用专业 PDF 生成管道(palette → cover → render → merge)
- 自动检测系统中文字体(Windows:SimHei/SimSun/SimKai;Linux:WQY)
- TTC 字体文件支持(如 simsun.ttc,0)
- 封面页 + 正文页合并输出
- 支持面试题附录
使用方法:
生成候选人李四的评估报告,输出为 PDF
生成这份简历的分析报告,格式为 HTML,包含面试题
依赖要求(PDF 格式):
# Python 依赖
pip install reportlab pypdf matplotlib
# Node.js 依赖(封面渲染)
npm install -g playwright
npx playwright install chromium
5. 招聘沟通邮件(v2.1 优化)
生成并直接发送各类招聘场景的沟通邮件:
邮件类型:
- 面试邀约(高级版) - 支持"代表人模式"(联系人≠候选人),含视频面试专项文案
- 面试邀约(简版) - 直发候选人本人,含现场材料提示
- 面试跟进 - 面试后反馈收集、候选人跟进
- 录用通知 - 正式 offer 邮件,包含薪资、福利、入职时间
- 拒信 - 礼貌拒绝不合适候选人的邮件
邮箱配置(SMTP 配置文件格式):
{
"smtp_server": "smtp.163.com",
"smtp_port": 465,
"use_ssl": true,
"username": "your@163.com",
"password": "授权码(非登录密码)",
"sender_email": "your@163.com",
"sender_name": "TNK Tech HR <your@163.com>"
}
已验证可用的邮箱服务器: | 服务商 | SMTP 地址 | 端口 | use_ssl | |--------|-----------|------|---------| | 163邮箱 | smtp.163.com | 465 | true | | QQ邮箱 | smtp.qq.com | 465 | true | | 企业微信邮箱 | smtp.exmail.qq.com | 465 | true | | Gmail | smtp.gmail.com | 587 | false(STARTTLS)|
⚠️ 163/QQ 邮箱须在网页端开启 SMTP 服务并获取授权码,password 填授权码而非登录密码。
快速发送面试邀约(命令行):
# 方式一:快速邀约子命令(推荐)
python email_sender.py invite smtp_config.json candidate@email.com data.json
# 方式二:发送预生成的邮件正文文件
python email_sender.py send smtp_config.json recipient@email.com "邮件主题" body.txt
面试邀约数据字段(data.json):
{
"recipient_name": "周博远",
"candidate_name": "田飞",
"company_name": "TNK Tech",
"position": "财务",
"interview_time": "2026年05月30日 14:00-15:30",
"interview_format": "视频面试(腾讯会议)",
"interviewer": "技术负责人 李总监",
"duration": "90分钟",
"confirm_deadline": "2026年05月27日",
"contact_email": "hr@tnktech.net",
"extra_notes": "腾讯会议链接将于面试前一天另行发送,请留意查收。"
}
代码内联调用(推荐用于 AI 直接生成并发送):
from email_sender import build_smtp_config, send_interview_invitation
cfg = build_smtp_config("smtp.163.com", 465, "hr@163.com", "授权码", use_ssl=True, sender_display="TNK Tech HR")
result = send_interview_invitation(cfg, "zhouboyuan@tnktech.net", data_dict)
使用方法(自然语言):
给候选人田飞的代表周博远发送面试邀约
收件人邮箱:zhouboyuan@tnktech.net
岗位:财务,面试时间:2026-05-30 14:00-15:30
视频面试(腾讯会议),面试官:李总监
发件邮箱:tnktechqa@163.com
工作流程
完整招聘流程
- 接收简历 → 解析简历,提取关键信息(pypdfium2 优先)
- 简历筛选 → 人岗匹配分析,判断是否进入面试
- 面试准备 → 生成结构化面试题
- 面试执行 → (线下进行,可记录面试评估)
- 评估决策 → 生成候选人评估报告(推荐 PDF 格式)
- 沟通反馈 → 发送录用通知或拒信
快速使用场景
场景 1:快速简历筛选
解析这份简历:/path/to/resume.pdf
分析该候选人与 Python 开发工程师岗位的匹配度
场景 2:面试准备
根据这份简历和岗位 JD,生成面试题目
简历:/path/to/resume.docx
JD:/path/to/jd.pdf
场景 3:生成评估报告(含面试题附录)
生成候选人评估报告,包含简历解析、人岗匹配、面试评估
输出格式:PDF(高质量中文版)
场景 4:发送招聘邮件
给通过面试的候选人发送录用通知
候选人:张三
岗位:高级产品经理
薪资:30-40K
发送邮箱:hr@company.com
技术架构
scripts/ 目录结构
scripts/
├── resume_parser.py # 简历解析(v2.0,pypdfium2 优先)
├── report_generator.py # 报告生成(v2.0,支持 PDF 管道)
├── email_sender.py # 邮件发送
├── ai_resume_analyzer.py # AI 简历分析
├── smart_resume_analyzer.py # 智能分析
├── requirements.txt # Python 依赖清单
└── pdf_pipeline/ # PDF 生成管道(v2.0 新增)
├── palette.py # 设计令牌生成(含中文字体检测)
├── cover.py # 封面 HTML 生成
├── render_body.py # 正文 PDF 生成(含中文字体注册)
└── merge.py # 封面+正文合并
PDF 生成管道工作原理
content.json → palette.py → tokens.json (含中文字体路径)
↓
cover.py → cover.html → render_cover.js → cover.pdf
↓
render_body.py → body.pdf (ReportLab + 中文字体)
↓
merge.py → final_report.pdf
中文字体自动检测逻辑(Windows):
- 检测
C:\Windows\Fonts\下的中文字体 - 优先使用 SimHei(黑体,适合标题和正文加粗)
- 备选 SimSun(宋体,适合正文)、SimKai(楷体)、SimFang(仿宋)
- 将字体路径写入
tokens.json的font_paths键 render_body.py自动注册字体到 ReportLab
资源配置
scripts/
包含可执行的 Python 脚本:
- resume_parser.py - 简历解析脚本,支持 Word/PDF/图片格式(v2.0 优化)
- report_generator.py - 报告生成脚本,支持 HTML/PDF/Word 输出(v2.0 新增 PDF 管道)
- email_sender.py - 邮件发送脚本,集成邮箱 SMTP 配置
- pdf_pipeline/ - PDF 生成管道脚本(v2.0 新增)
references/
包含参考文档和知识库:
- interview_questions_bank.md - 面试题库,按岗位分类
- evaluation_criteria.md - 评估标准和评分细则
- email_templates.md - 各类招聘邮件模板
assets/
包含输出模板和资源文件:
- report_template.html - HTML 报告模板
- report_template.docx - Word 报告模板
- email_signatures/ - 企业邮箱签名模板
使用建议
- 简历解析:批量处理时,先解析 1-2 份验证准确性,再批量处理
- 人岗匹配:提供详细的 JD,匹配准确度更高
- 面试题生成:可指定题目数量和侧重点(如"侧重系统设计")
- 评估报告:推荐使用 PDF 格式(v2.0 已解决中文显示问题)
- 邮件发送:首次使用时配置企业邮箱信息(SMTP 服务器、发件人信息)
注意事项
- 简历解析准确度取决于文件质量,图片格式需要 OCR 处理
- 评估报告仅供参考,最终录用决策需结合实际情况
- 邮件发送需配置有效的邮箱账户;163/QQ 邮箱请使用授权码而非登录密码,端口 465 + SSL
- 候选人信息需妥善保管,遵守数据保护相关规定
- PDF 报告生成封面页已可用 ReportLab 直接绘制,无需 Node.js + Playwright
v2.1 更新日志(邮件功能)
新增功能
- ✅ 代表人面试邀约模板:
interview_invitation模板升级,支持recipient_name(联系人)≠candidate_name(候选人)的场景 - ✅
send_interview_invitation()便捷函数:一键生成主题+正文并发送面试邀约 - ✅
build_smtp_config()工具函数:方便内联构建 SMTP 配置字典 - ✅
invite子命令:python email_sender.py invite <smtp_config> <recipient> <data.json> - ✅ 多服务商 SMTP 参考表:已验证 163/QQ/企业微信邮箱配置
已验证
- ✅ 163邮箱 SMTP_SSL port=465,授权码认证,实际发送成功(2026-05-22)
v2.0 更新日志
新增功能
- ✅ PDF 扫描件解析:使用
pypdfium2.get_textpage()提取扫描件隐藏文本层 - ✅ 高质量中文 PDF 报告:集成专业 PDF 生成管道,支持中文字体自动检测
- ✅ TTC 字体支持:正确处理
simsun.ttc,0格式的字体索引 - ✅ 面试题附录:PDF 报告可附带结构化面试题
- ✅ 封面页 ReportLab 直绘:无需 Node.js / Playwright,用 ReportLab Canvas 直接绘制封面 PDF
修复问题
- ✅ 修复 PDF 报告中文字显示为
#或乱码的问题 - ✅ 修复
content.json中文引号导致 JSON 解析失败的问题 - ✅ 修复 Windows PowerShell GBK 编码下
merge.pyUnicode 打印错误 - ✅ 修复
content.json必须为直接数组格式(非{"blocks": [...]}包裹)
依赖更新
- 新增:
pypdfium2(PDF 解析首选) - 新增:
reportlab、pypdf、matplotlib(PDF 生成管道)
扫码联系在线客服