Resume Tailor
Overview
Generic JD-to-resume tailoring skill that always requires the user to upload their own resume and photo. Designed to be safely shareable — contains zero personal data of any specific candidate.
When to Use
Trigger this skill when:
- User uploads a JD (image or text) AND a source resume (DOCX) AND a photo
- User asks "帮我改简历" / "我的简历要怎么改" / "匹配这个岗位" / "面试准备"
- User wants 简历改造 / 简历优化 / 面试应答脚本
Do NOT trigger this skill for:
- 单纯写简历(没有 JD 对比)
- 单纯面试题库(不针对特定岗位)
- 写求职信 / Cover Letter
- 薪资谈判策略
⚠️ Critical: Required Inputs
Every run of this skill MUST have these two files from the user:
- 原简历 (source resume) — DOCX format
- 证件照 (photo) — JPG or PNG
If either is missing → ASK the user to provide it. Do NOT proceed without both.
❌ WRONG: Assume the user has the same resume as yesterday
❌ WRONG: Use a pre-stored resume from previous runs
❌ WRONG: Skip the photo if not provided
✅ RIGHT: Always ask "请上传您的简历(DOCX)和证件照(JPG/PNG)"
This skill never carries personal data across runs — each invocation is fresh and starts from the user's inputs.
Workflow Decision Tree
┌─ 用户上传 JD + 原简历 + 照片 ─┐
│ │
▼ ▼
[三件都齐?] [缺任意一件?]
│ │
▼ ▼
[开始执行] [询问缺失项]
│
▼
[用户补齐后再开始]
│
└────┐
│
▼
┌─────────────────────┐
│ Step 1: JD 三层分析 │
│ → 输出分析报告 │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Step 2: 解析原简历 │
│ → 提取关键经历+数字 │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Step 3: 匹配度分析 │
│ → 列出 Top 3 匹配点 │
│ → 列出缺失项 │
└──────────┬──────────┘
│
┌────────────┴────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Step 4: 精简版简历 │ │ Step 5: 详细版简历 │
│ → DOCX(必出) │ │ → DOCX(可选) │
└──────────┬───────┘ └──────────┬───────┘
│ │
└────────────┬────────────┘
│
▼
┌─────────────────────┐
│ Step 6: 面试脚本生成 │
│ → 10 题应答脚本 │
│ → DOCX │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ Step 7(可选): PDF │
│ 仅用户要求才生成 │
└─────────────────────┘
Step 1: JD 三层分析
Produce a structured report covering:
- 表面要求(硬门槛) — 学历 / 工作年限 / 行业经验 / 必备技能
- 隐形要求(挖坑意图) — 关键词频次分析 + 反推真实期待
- 真问题(老板真正要解决的) — 结合公司规模/行业/融资阶段倒推痛点
Output format: 表格 + emoji 状态指示器 + 清单。详见 references/jd-analysis-framework.md。
Step 2: 解析原简历
读取用户上传的 docx 原简历。
执行 python scripts/parse_resume.py <user-resume-path>:
- 提取所有段落文本
- 提取关键数字(年份、百分比、金额、门店数、团队规模)
- 识别工作经历时间段
重要:每次运行都用用户上传的简历,不要复用之前的简历数据。
Step 3: 匹配度分析
输出对照表:
- Top 3 匹配点(经历/数字与 JD 关键词直接命中)
- 缺失项(简历未覆盖但 JD 提到的能力)
- 匹配度百分比(供后续简历取舍参考)
详见 references/matching-score-rubric.md。
Step 4: 精简版简历(必出)
目标:HR 10 秒看到核心匹配点,1 屏内可读完。
执行 python scripts/build_resume_docx.py --resume <user-resume> --photo <user-photo> --output <output.docx>:
- 顶部「岗位认知摘要」150 字 — 关键词命中 JD
- 经历顺序:最匹配 → 次匹配 → 早期(不是时间倒序)
- 每个工作经历:核心战绩表 + 战略 + 关键项目
- 数据加粗前置(3 秒可扫)
- 自我评价改为"理论 + 行业洞察"双段
- 默认输出格式:docx(主推,源文件可编辑)
排版规范见 references/resume-structure-template.md。
照片处理:
- 使用 --photo 参数传入的用户证件照
- 不存在则报错,要求用户重新提供
- 1.8 英寸宽度,适合简历右上角
PDF 处理:
- 默认不生成 PDF
- 仅当用户明确说"转 PDF"/"发 PDF 版"才执行 docx_to_pdf.py
必须包含的元素:
- 姓名 + 联系方式 + 行业荣誉(顶部)
- 岗位认知摘要(150 字,3-5 条 hook)
- 工作经历(精简版只保留核心 3 段 + 早期合并段)
- 教育(表格化)
- 自我评价(理论 + 行业洞察双段)
Step 5: 详细版简历(可选)
目标:保留原简历全部细节,但用同样的"战绩+战略+项目"结构优化表达。
执行 python scripts/build_resume_docx.py --resume <user-resume> --photo <user-photo> --output <detailed.docx> --detailed:
- 顶部「岗位认知摘要」(与精简版相同)
- 经历顺序:与精简版一致
- 每段经历:保留原简历全部内容,加结构化标题
- 项目细节不删,只重新组织
- 早期经历完整保留(不合并)
Step 6: 面试应答脚本(必出)
目标:10 题杀手级问题 + 应答策略 + 钩子 + 禁忌,可打印背诵。
执行 python scripts/build_interview_docx.py --input <questions.json> --output <script.docx> --candidate <name> --job <job-title>:
- 10 题结构(按杀伤力排序):
- 第一梯队(4 题):决定生死,必答型
- 第二梯队(3 题):决定排名,拉开差距
- 第三梯队(3 题):印象分,加分项
- 每题包含 5 部分:
- 问题原文
- 挖坑意图(考察点)
- 应答策略
- 关键钩子(必须包含)
- 红线禁忌(不能踩)
- 示例话术(60-90 秒可背诵)
题库与框架见 references/interview-question-bank.md。
Step 7(可选): PDF 转换
默认不执行。仅当用户明确说"转 PDF"时,执行:
python scripts/docx_to_pdf.py <input.docx> <output.pdf>
Output File Paths
默认输出(必出,docx 格式 — 主推):
| 文件 | 用途 |
|---|---|
<user-name>_简历_精简版_含照片.docx |
投递用(含照片) |
<user-name>_简历_精简版.docx |
投递用(无照片,备用) |
面试应答脚本包_<user-name>_<job-keyword>.docx |
面试前打印背诵 |
可选输出(用户明确要求时):
| 文件 | 触发条件 |
|---|---|
<user-name>_简历_详细版.docx |
用户说"也要详细版" |
<user-name>_简历_精简版_含照片.pdf |
用户说"转 PDF" |
默认行为:只生成 docx。docx 是源文件,后续可任意编辑、转换、批注,灵活性最高。PDF 仅在用户明确要求时才生成。
Resources
scripts/
parse_resume.py— 读取用户上传的 docx 简历,提取文本+关键数字build_resume_docx.py— 生成精简版 / 详细版简历 docx(需要 --resume 和 --photo)build_interview_docx.py— 生成面试应答脚本 docxdocx_to_pdf.py— docx 转 PDF(Word COM 自动化,可选)
references/
jd-analysis-framework.md— JD 三层视角分析方法论resume-structure-template.md— 简历黄金结构 + 排版规范interview-question-bank.md— 10 类核心面试问题模板matching-score-rubric.md— 简历-JD 匹配度评分规则
Quality Standards
- 数据真实性优先 — 简历中的所有数字必须来自用户上传的原简历,不编造
- JD 关键词命中 — 简历顶部摘要必须包含 JD 高频关键词
- 结构清晰 — 3 秒可扫,30 秒懂匹配,1 分钟信服
- 可背诵 — 面试话术 60-90 秒,自然语言,不打官腔
- 每次都重新生成 — 不复用任何之前的简历数据或照片
Privacy & Sharing
This skill is designed to be shared with anyone:
- ✅ 无任何候选人个人信息
- ✅ 不在文件系统中存储用户上传的简历或照片
- ✅ 不跨运行保存任何数据
- ✅ 每次运行都是独立的、干净的
If sharing with friends/colleagues:
- 把整个 resume-tailor/ 目录打包成 zip
- 接收者解压后,本目录即可在他们的 WorkBuddy 中使用
- 接收者每次使用时,必须自己上传简历和照片
Common Pitfalls
❌ 不要假设用户已有简历 — 必须每次都上传
❌ 不要复用之前的简历数据 — 每次都是独立运行
❌ 不要用通用模板改简历 — 每个 JD 都要定制
❌ 不要只换标题不改内容 — 内容必须围绕 JD 关键词重构
❌ 不要给模糊话术("我会先调研")— 必须给具体动作
❌ 不要编造数字 — 所有数据必须可追溯到用户上传的原简历
Iteration
Skill 完成后,如果实际使用发现问题:
1. 在 references/ 里补充更具体的方法论
2. 在 scripts/ 里增加自动化(比如自动提取数字)
3. 更新 SKILL.md 的 Workflow Decision Tree