| name | wukong-resume |
| description | 悟空非空也的个人简历构建 skill。当用户需要制作简历、生成简历、写简历、更新简历、做一份 PDF/Word 简历、把简历导出成 docx、ATS 友好简历时使用。触发词包括但不限于:做简历、简历、生成简历、写简历、更新简历、简历模板、HTML 简历、PDF 简历、docx 简历、投简历、找工作、换工作。即使用户只说「帮我搞份简历」或「我要换工作了想整理下简历」,只要上下文涉及简历制作,都应触发。
也适用于:用户拿到一份招聘 JD 想针对性调整简历、想从零搭一份简历、想把现有简历内容重新整理成结构化格式的场景。
**不适合的场景**:领英 profile 优化、个人作品集网站、求职信/cover letter、简历内容润色改写(这些是不同的输出物,本 skill 只管结构化呈现)。
|
悟空非空也简历构建
价值观(先读这一段)
**AI 的角色是结构化呈现,不是编造内容。
经历、数据、成就、公司名、时间——这些事实必须用户提供。AI 帮的是「把散乱的信息整理成 YAML + 套进模板」,不是「凭空写一份简历」。
如果用户说「帮我写份前端工程师简历」但没给任何个人信息,先停下来问:姓名、经历、公司、时间、技能。绝不能编造经历或编造数据。这条无例外。
💡 简历内容优化建议(帮助用户提供更好的内容:
工作经历写法建议:
- ❌ 不好:「负责前端开发工作
- ✅ 好:「主导前端重构,首屏从 3.2s 降至 1.1s
- 💡 提示:用「动词 + 量化成果」的格式
成果量化建议:
- 用数字、百分比、时间、金额
- 例如:「用户留存率提升 15%」而非「提升了用户体验」
- 例如:「日均 PV 100万+」而非「访问量很大」
简历长度建议:
- 一页简历约 600-800 字 + 列表
- 工作经历 3-5 条最合适
- 每条经历的 highlights 3-5 条
工作流(触发后按顺序执行)
第一步:探明需求
不要假设。先问清楚以下三个问题:
- 需要中文还是英文简历?(影响文案、纸张、国内字段显隐)
- 需要单栏模板还是双栏模板?(单栏简约/双栏侧边栏)
- 喜欢的风格是什么?(使用对话卡片引导用户选择):
- tech - 技术/程序员风格(蓝色系,现代科技感)
- creative - 设计/创意风格(紫色系,大胆创意)
- business - 商务/管理风格(深蓝黑系,专业稳重)
- finance - 金融/咨询风格(绿色金色系,高端精致)
- academic - 学术/研究风格(深灰系,简洁清晰)
- literary - 文学/文字工作者风格(米黄棕色系,优雅书卷气)
- 自定义风格 - 用户可以自行修改 CSS 变量
另外确认:
- 是「从零做」还是「更新已有简历」?
- 有没有现成的
index.html / 旧简历文本 / LinkedIn 导出?
如果用户只说「帮我做份简历」什么都没给,把这些问题问一遍。一次问完,别挤牙膏。
第二步:收集/整理信息(后台用 YAML 当临时结构化数据,用户不用碰)
- 从零做:直接对话收集信息,按顺序问:
- 姓名(中文/英文都问)
- 职位定位(headline)
- 联系方式(email/phone/website/github/linkedin,至少要一个)
- 个人简介(summary,可选)
- 工作经历(至少一条,每条要:公司名、职位、起止时间、地点、成果列表)
- 教育背景(至少一条,每条要:学校名、学位、专业、起止时间)
- 技能(可选,按分类列)
- 项目/获奖/证书/语言(有就问,没有就跳过)
- 国内字段(性别/政治面貌/籍贯/婚姻/生日,可选)
- 照片(可选,询问用户是否有照片,并说明由于技术限制,需要用户手动将照片放到 assets/photo.jpg)
- 更新已有:
- 有
index.html → 读取 HTML 内容,把内容整理成后台临时 YAML,然后问「要改什么?」
- 有旧简历文本/LinkedIn 导出 → 整理成后台临时 YAML,然后问「哪些地方要调整?」
校验必填信息(缺了就停下来问用户,别瞎编):
- 姓名(至少一个)
- 职位定位
- 联系方式(至少一个)
- 工作经历(至少一条)
后台临时 YAML 的字段含义和完整 schema 见 references/yaml-schema.md。 这一步你(AI)自己读,不用给用户看。
安全红线:身份证号绝对不存。要证明身份就用布尔值标记,看到用户提供身份证号立刻拒绝并解释。
重要提示 - 照片处理:
- 如果用户在对话中提供了照片,AI 必须明确告知用户:由于技术限制,无法直接访问和保存对话中上传的图片文件
- 指导用户手动将照片放到项目的
assets/photo.jpg 路径下
- 生成 HTML 时仍然引用
assets/photo.jpg,但要向用户说明需要手动放置照片文件
- 如果用户没有照片,可以跳过,简历仍然可以正常使用
第三步:直接生成彩色网页版(HTML + CSS)
产出定位:给人看的彩色网页版简历,也是后续黑白 Word 版的信息源。
- 用第二步整理好的后台临时 YAML,根据用户选择的风格引入对应的样式文件:
tech → 引入 styles/style-tech.css(技术/程序员风格)
creative → 引入 styles/style-creative.css(设计/创意风格)
business → 引入 styles/style-business.css(商务/管理风格)
finance → 引入 styles/style-finance.css(金融/咨询风格)
academic → 引入 styles/style-academic.css(学术/研究风格)
literary → 引入 styles/style-literary.css(文学/文字工作者风格)
- 都必须同时引入
styles/base.css
- 根据用户选择的模板类型设置 body class:
- 单栏模板 →
<body class="template-single">,引入 styles/single-column.css
- 双栏模板 →
<body class="template-sidebar">,引入 styles/sidebar.css
- 根据
meta.language 选文案:
zh → 「工作经历」「教育背景」「技能」「项目」「获奖」「证书」「语言」
en → "Experience" "Education" "Skills" "Projects" "Awards" "Certifications" "Languages"
- 根据
meta.page_size 设 <html data-page="a4"> 或 data-page="letter",并在 @page 写对应 size。
- 日期格式化(临时 YAML 里是
2022-03,显示时转成):
- 中文:「2022.03 – 至今」
- 英文:「Mar 2022 – Present」
birthdate 计算年龄(当前年份减出生年份,未到生日减一岁)。
- 按下面的字段白名单规则决定哪些字段渲染、哪些隐藏。
- 确保所有样式文件都在用户项目的
styles/ 目录下。
文件命名规范:
- 网页版文件名格式:
{姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.html
- 中文/英文:
中文 或 英文
- 单栏/双栏:
单栏 或 双栏
- 风格:
tech、creative、business、finance、academic、literary
- 随机数:4位数字
- 示例:
江沐恒-中文-双栏-tech-1234.html
HTML 生成规范、section 结构、class 命名见 references/html-template-guide.md。 生成 HTML 阶段读这个文件。
完成后告诉用户:「彩色网页版已生成,使用的是【{风格名称}】风格,打开 {文件名}.html 即可预览 → Cmd/Ctrl+P → 另存为 PDF。接下来将基于此 HTML 生成黑白 Word 版。你也可以通过修改 styles 目录下的 CSS 文件来自定义风格。」
第四步:生成表格形式的黑白 Word 版(国内求职常用)
产出定位:给国内 HR 看的表格形式简历。从第三步生成的 HTML 文件中提取信息,生成表格布局的 Word 文档。
-
检测 pandoc 是否安装:
which pandoc
- 已装 → 继续
- 未装 → 告诉用户:「表格 Word 版需要 pandoc。安装:macOS
brew install pandoc,Windows 从 https://pandoc.org 下载安装包,Linux sudo apt install pandoc。不装也能用,彩色网页版和 PDF 照常输出。」然后跳过这步。
-
读已生成的 HTML 文件,从 HTML 结构中提取信息:
- 姓名、联系方式、个人简介
- 工作经历(公司、职位、时间、地点、成果)
- 教育背景(学校、学位、专业、时间)
- 技能(按分类)
- 项目、获奖、证书、语言(有就提取)
- 国内字段(性别、政治面貌、籍贯、婚姻、生日,中文简历才包含)
-
根据语言(中文/英文)和模板(单栏/双栏)生成对应的 Markdown 文件(包含表格语法)
文件命名规范:
- Markdown 中间文件:
{姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.md
- Word 版文件名:
{姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.docx
- 中文/英文:
中文 或 英文
- 单栏/双栏:
单栏 或 双栏
- 风格:
tech、creative、business、finance、academic、literary
- 随机数:4位数字,与网页版保持一致
- 示例:
江沐恒-中文-双栏-tech-1234.md、江沐恒-中文-双栏-tech-1234.docx
- 跑 pandoc 生成表格形式的 docx:
pandoc {姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.md -o {姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.docx \
--from=gfm \
--reference-doc=<skill路径>/assets/table-reference.docx
完整表格简历生成规则和 HTML→Markdown 提取映射表见 references/docx-table-rules.md。 生成 docx 阶段读这个文件。
第五步:交付与后续
按产出顺序列出生成的文件清单,明确告诉用户两份简历的定位:
彩色网页版(先交付):
{姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.html + styles/*.css → 浏览器打开预览彩色简历,Cmd/Ctrl+P 打印成 PDF
黑白 Word 版(后交付):
{姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.md → 中间产物,包含表格语法
{姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.docx → 表格形式的黑白简历,国内求职常用
彩色版用于展示 / 打印 PDF;表格版用于国内 HR 投递。
然后提示后续工作模式(这是零依赖路线的必然结果,必须说清楚):
改简历内容 → 直接跟我说「把 XX 公司的经历改成 YY」「把技能改成 ZZ」 → 我会更新 HTML 并重新生成 docx。
切换中英文 / 切换模板 → 直接跟我说「换成英文」「换成双栏模板」 → 我会更新 HTML 并重新生成 docx。
没有 build 命令,AI 就是渲染器。
后台临时 YAML 速查(内部参考,不用给用户看)
完整 schema 见 references/yaml-schema.md。
meta:
language: zh
template: single
page_size: A4
name_zh: 张三
name_en: Zhang San
basics:
headline: 高级前端工程师
photo: assets/photo.jpg
birthdate: 1995-06
gender: 男
political_status: 中共党员
hometown: 浙江杭州
marital_status: 未婚
location: 上海
email: ...
phone: ...
website: ...
github: ...
linkedin: ...
summary: |
...
experience:
- company: ...
role: ...
start: 2022-03
end: 至今
location: ...
highlights: [...]
education: [...]
skills: [...]
projects: [...]
awards: []
certifications: []
languages: []
字段白名单规则(铁律,渲染时硬编码)
同一份 resume.yaml,三种产出的字段显隐不同。这是 ATS 合规和海外简历禁忌的核心,不能靠用户自觉。
| basics 字段 | HTML 中文模板 | HTML 英文模板 | docx |
|---|
| photo | 显示 | 隐藏 | 剥离 |
| birthdate→年龄 | 显示 | 隐藏 | 剥离 |
| gender | 显示 | 隐藏 | 剥离 |
| political_status | 显示 | 隐藏 | 剥离 |
| hometown | 显示 | 隐藏 | 剥离 |
| marital_status | 显示 | 隐藏 | 剥离 |
| headline | 显示 | 显示 | 显示 |
| location | 显示 | 显示 | 显示 |
| email | 显示 | 显示 | 显示 |
| phone | 显示 | 显示 | 显示 |
| website | 显示 | 显示 | 显示 |
| github | 显示 | 显示 | 显示 |
| linkedin | 显示 | 显示 | 显示 |
| summary | 显示 | 显示 | 显示 |
实现方式:
- HTML 生成时,英文模板直接不输出
photo / domestic-fields 节点。
- docx 生成时,这些字段一行都不写进
resume.md。
生成产物清单
每次触发 skill 完成后,用户项目里应有:
用户项目/
├── assets/
│ └── photo.jpg ← 用户提供(如声明了 photo 字段)
├── {姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.html ← 彩色网页版,浏览器打开打印 PDF;也是黑白 Word 版的信息源
├── styles/
│ ├── base.css ← 从 skill assets 复制
│ └── <template>.css ← 单栏或双栏,从 skill assets 复制
├── {姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.md ← 从 HTML 提取信息生成的中间产物(黑白 Word 的 Markdown 源)
└── {姓名}-{中文/英文}-{单栏/双栏}-{风格}-{随机数}.docx ← pandoc 生成的纯黑白 Word 版(需 pandoc 已装)
文件命名说明:
- 姓名:用户的中文姓名或英文姓名(根据语言选择)
- 中文/英文:
中文 或 英文
- 单栏/双栏:
单栏 或 双栏
- 风格:
tech、creative、business、finance、academic、literary
- 随机数:4位数字,如 1234
- 示例:江沐恒-中文-双栏-tech-1234.html、江沐恒-中文-双栏-tech-1234.md、江沐恒-中文-双栏-tech-1234.docx
排查(用户反馈问题时读)
- 「打印出来侧边栏变白了」→ 读
references/print-stability.md,背景色丢失排查清单。
- 「分页把经历切断了」→ 读
references/print-stability.md,分页控制部分。
- 「docx 里 ATS 读不出经历」→ 读
references/docx-ats-rules.md,检查层级和 bullet 用了原生 Markdown 语法。
⚡ 快速修改菜单(完成简历后提供给用户)
当用户说「帮我改一下」但没说具体改什么时,提供这个菜单:
常用修改选项:
- 修改联系方式 - 更新电话、邮箱、GitHub 等
- 更新工作经历 - 添加新经历、修改旧经历
- 添加/修改技能 - 更新技能列表
- 换个风格 - 切换不同的视觉风格(tech → creative 等)
- 换个模板 - 单栏 ↔ 双栏切换
- 中英文切换 - zh ↔ en
- 添加项目/获奖/证书 - 补充其他信息
- 微调排版 - 调整边距、字体等
- 重新生成 - 基于现有内容重新生成 HTML + docx
- 导出为 PDF - 指导如何打印成 PDF
快捷命令示例:
- 「把电话改成 139-xxxx-xxxx」
- 「换用 literary 风格」
- 「加个最近的项目」
- 「把性别去掉」
📋 简历完成后检查清单
交付简历时,可以提醒用户检查:
📝 内容检查
🎨 样式检查
🔧 功能检查
📄 导出检查