Back to skills
extension
Category: OtherNo API key required

招聘管理助手

招聘管理助手,支持简历解析(Word/PDF/扫描件/图片)、人岗匹配分析、结构化面试题生成、候选人评估报告(HTML/高质量中文PDF/Word)和招聘沟通邮件发送。触发词:招聘、简历、面试、候选人、人岗匹配、招聘管理、简历分析、面试题目、评估报告、录用通知、招聘邮件

personAuthor: user_fcba917fhubcommunity

Recruitment Manager

智能招聘管理助手,提供从简历筛选到录用决策的全流程支持。

核心能力

1. 简历解析与信息提取

解析候选人简历,支持多种格式:

  • Word 文档 (.docx, .doc)
  • PDF 文档 (.pdf) - v2.0 优化,使用 pypdfium2 作为首选解析器(对扫描件支持最好)
  • 图片格式 (.png, .jpg, .jpeg)

PDF 解析策略(v2.0 优化):

  1. pypdfium2.get_textpage() — 首选,可提取扫描件PDF的隐藏文本层(Microsoft Print To PDF 等生成的扫描件)
  2. pdfplumber — 后备,更好的表格和布局支持
  3. PyPDF2 — 最后后备
  4. 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

工作流程

完整招聘流程

  1. 接收简历 → 解析简历,提取关键信息(pypdfium2 优先)
  2. 简历筛选 → 人岗匹配分析,判断是否进入面试
  3. 面试准备 → 生成结构化面试题
  4. 面试执行 → (线下进行,可记录面试评估)
  5. 评估决策 → 生成候选人评估报告(推荐 PDF 格式)
  6. 沟通反馈 → 发送录用通知或拒信

快速使用场景

场景 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):

  1. 检测 C:\Windows\Fonts\ 下的中文字体
  2. 优先使用 SimHei(黑体,适合标题和正文加粗)
  3. 备选 SimSun(宋体,适合正文)、SimKai(楷体)、SimFang(仿宋)
  4. 将字体路径写入 tokens.jsonfont_paths
  5. 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. 简历解析:批量处理时,先解析 1-2 份验证准确性,再批量处理
  2. 人岗匹配:提供详细的 JD,匹配准确度更高
  3. 面试题生成:可指定题目数量和侧重点(如"侧重系统设计")
  4. 评估报告:推荐使用 PDF 格式(v2.0 已解决中文显示问题)
  5. 邮件发送:首次使用时配置企业邮箱信息(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.py Unicode 打印错误
  • ✅ 修复 content.json 必须为直接数组格式(非 {"blocks": [...]} 包裹)

依赖更新

  • 新增:pypdfium2(PDF 解析首选)
  • 新增:reportlabpypdfmatplotlib(PDF 生成管道)