Skip to content

Repository files navigation

Resume Suite

CI License: AGPL v3 Python 3 PRs Welcome

resume-skills 是一套帮你写好中文简历的 AI skill 套件,按实际业务拆成三个独立环节:

  1. 简历诊断(resume-diagnosis):审阅现有简历,产出招聘视角的诊断报告页(筛选结论、六维评分、首屏 6 秒扫描、时间线、JD 对照、主要问题、风险分级、客观信号)。
  2. 简历优化(resume-optimization):按诊断结果改写,产出最终简历(HTML + PDF + DOCX)。
  3. 复盘报告(resume-report):生成优化前后对比报告页,直观展示评分变化与主要修改点。

每个环节结束都会询问是否进入下一环节;你也可以单环节使用。它既面向 GEO/AI 搜索与招聘筛选,又能适配不同专业、不同岗位方向的简历写作。

你可以把它交给 Claude Code、Codex 或兼容 skill 的 AI 助手使用,让 AI 从 HR、ATS、招聘 Agent 和生成式搜索的角度,帮你诊断、改写、生成一份更适合投递和被发现的简历。

它适合不懂简历排版、不确定怎么写项目经历、担心简历过不了 HR 或 AI 初筛的人使用。

核心特点

  • GEO 友好:让简历更容易被 AI 搜索、招聘 Agent、智能问答和简历筛选系统正确理解。
  • 多专业适配:不只适合程序员,也适合产品、运营、市场、设计、财会、金融、法学、教育、医学、土木、机械、新媒体、行政等方向。
  • 岗位导向:同一段经历会按目标岗位重写,不同专业背景也能转成招聘方看得懂的岗位语言。
  • HR 可读:减少空话和模板化表达,让 HR 更快看清你的定位、能力和证据。
  • HTML/PDF 友好:保留可复制、可读取的文本内容,兼顾手机阅读、电脑阅读和 PDF 投递。

适用人群

  • 第一次写简历,不知道应该放什么、不该放什么。
  • 已有简历,但投递效果一般,想让 AI 帮你从 HR 视角检查问题。
  • 来自不同专业,想把课程、实习、项目、竞赛、科研或作品集转成简历语言。
  • 准备转岗、转行、找实习、找全职,想把经历改写成更匹配目标岗位的版本。
  • 手里有岗位 JD,想让简历更贴近招聘要求和常见筛选关键词。
  • 希望简历对 AI 搜索、招聘 Agent、ATS 和 GEO 更友好。
  • 想生成一份手机、电脑和 PDF 都能正常阅读的 HTML 简历。
  • 做个人求职材料整理,希望先有一个可信、清晰、可继续打磨的版本。

本项目以 AGPL-3.0 开源,可自由使用(含商用),详见 开源协议

快速入门

1. 安装 skill

本套件包含三个独立 skill,分别对应三个环节,需要分别安装(每个 skill 是 skills/ 下一个自包含目录)。

Claude Code 插件一键安装:本仓库根目录提供 .claude-plugin/plugin.json,可在 Claude Code 中以插件形式一次性安装三个 skill,免去下面的三条 symlink。

从 SkillHub 安装(国内源,不用访问 GitHub)

三个 skill 已上架 SkillHub(命名空间 @user_6733bad6),全程不必访问 GitHub。先装一次它的 CLI:

curl -fsSL https://skillhub.cn/install/install.sh | bash -s -- --cli-only
export PATH="$HOME/.local/bin:$PATH"          # 建议同时写进 ~/.zshrc

然后装齐三个,并把每个拉平到宿主能扫到的位置。SKILLS 换成你宿主的 skills 目录(下面以 Claude Code 用户级为例;Codex 换 ${CODEX_HOME:-$HOME/.codex}/skills):

SKILLS=~/.claude/skills
mkdir -p "$SKILLS"
skillhub install @user_6733bad6/resume-diagnosis          --dir "$SKILLS"
skillhub install @user_6733bad6/resume-optimization-suite --dir "$SKILLS"
skillhub install @user_6733bad6/resume-report             --dir "$SKILLS"
ln -sfn "$SKILLS/@user_6733bad6/resume-diagnosis"          "$SKILLS/resume-diagnosis"
ln -sfn "$SKILLS/@user_6733bad6/resume-optimization-suite" "$SKILLS/resume-optimization"
ln -sfn "$SKILLS/@user_6733bad6/resume-report"             "$SKILLS/resume-report"

为什么要带 @user_6733bad6/,还要补三条软链。 resume-diagnosis 这个 slug 在 SkillHub 上另有别人的同名 skill,不带命名空间的 skillhub install resume-diagnosis 会装到别人的包;而带命名空间安装时 CLI 会多套一层 @user_6733bad6/ 目录,宿主只扫 skills/*/SKILL.md 这一层,不拉平就一个都发现不了,且没有任何报错。三条 ln -sfn 就是把它们拉平到宿主能扫到的位置(如果 $SKILLS/<skill 名> 已经是一个真实目录,先删掉再执行)。

优化环节的 slug 是 resume-optimization-suite,skill 名仍是 resume-optimization 平台上 resume-optimization 已被占用,所以只有这一个 slug 带 -suite 后缀;软链名用 skill 名,宿主里的命令名不受影响。

三个要装进同一个 --dir 它们靠约定的产物目录 ./resume-output/ 交接,每个环节结束时会按名字把你交给下一个 skill;少装一个,流水线就在那一环断掉。

更新:重新执行上面三条 skillhub install,各加 --force(不加会报 Target exists),软链不用重建。

和下面 clone + symlink 的方式选一条就行,别对同一个宿主混用——装的是同一套 skill,混用会装出两份并造成触发竞争。

上架的是与本仓库 skills/ 逐字一致的同一份内容(平台会额外塞一个记录版本号的 _meta.json)。当前上架版本 v2.1.0。装完同样要新开一个会话

从本仓库安装(clone 后 symlink)

如果你已经把这三个目录安装到 Claude Code 或 Codex 的 skills 目录,可以跳过这一步。下面命令里的 REPO 指本仓库的本地路径,例如 ~/projects/resume-skills

Claude Code(三条 symlink):

REPO=~/projects/resume-skills
mkdir -p ~/.claude/skills
for s in resume-diagnosis resume-optimization resume-report; do
  ln -sf "$REPO/skills/$s" "$HOME/.claude/skills/$s"
done

Codex:

REPO=~/projects/resume-skills
CODEX_SKILLS="${CODEX_HOME:-$HOME/.codex}/skills"
mkdir -p "$CODEX_SKILLS"
for s in resume-diagnosis resume-optimization resume-report; do
  ln -sf "$REPO/skills/$s" "$CODEX_SKILLS/$s"
done

如果你的 Codex 环境使用 ~/.agents/skills,把上面 $CODEX_SKILLS 换成 ~/.agents/skills 即可。

从旧版迁移:如果你之前安装过单体 resume-skill(整仓 symlink 到 ~/.claude/skills/resume-skill),请先删除它,否则它与新的三个 skill 同时存在会造成触发竞争:

rm -f ~/.claude/skills/resume-skill     # 旧版整仓 symlink

2. 准备材料

你不需要先整理得很完美。能提供多少就提供多少,AI 会根据缺失信息继续追问。

建议准备:

  • 现有简历,或一段原始经历描述。
  • 目标岗位,例如“产品运营”“数据分析师”“Java 后端开发”。
  • 目标岗位 JD,越具体越好。
  • 工作、实习、项目、教育、证书、技能、作品链接等材料。
  • 你希望投递的城市、行业、公司类型或薪资方向。

3. 直接这样问 AI

下面示例用 $skill-name 显式指定环节。如果不指定,AI 会根据你的请求自动路由到对应环节(有现有简历的「优化简历」默认从环节一诊断开始)。

完整三环节(诊断 → 优化 → 复盘):

帮我优化这份简历(附简历)。三个环节一次做完:先诊断、再改写、最后出前后对比报告。

只要环节一·诊断:

用 $resume-diagnosis 从 HR 角度审阅我的简历,指出最影响投递结果的问题并给出诊断报告。

直接进环节二·优化(跳过诊断):

用 $resume-optimization 直接帮我改写这份简历,不用先诊断,目标岗位是产品运营,并导出 PDF 和 Word。

从零生成简历(环节二,无诊断):

用 $resume-optimization 根据我的经历新建一份适合数据分析岗位的中文简历。

只要环节三·复盘报告:

用 $resume-report 给我做这份简历优化前后的对比报告。

按 JD 优化:

用 $resume-optimization 对照下面这份岗位 JD,帮我优化简历,让内容更适合 HR 和 AI 初筛。

功能

三个环节各司其职,可以单独用,也可以串成一条流水线:

  • 环节一·简历诊断(resume-diagnosis):找出定位不清、经历空泛、关键词不足、表达不可信等问题,生成一份独立的诊断报告页(HTML),先给出「建议投递 / 边缘状态 / 暂不建议投递」的筛选结论,再展开六维评分、首屏 6 秒扫描、时间线概览、目标岗位(JD)逐条对照、带原文批注的主要问题与修复建议、分级的 HR 风险提示和脚本实测的客观信号。诊断分是后续复盘报告的既定基线。
  • 环节二·简历优化(resume-optimization):承接诊断的问题清单逐条改写,或直接改写/从零生成。把“参与、熟悉”这类模糊表达和没有量化佐证的“负责”,改成更像真实工作成果的表达;围绕目标岗位或 JD 调整标题、摘要、经历重点和技能关键词;用内置模板生成 HTML 简历并导出 PDF 和 Word;做内容质检,避免占位内容、隐藏关键词和明显弱表达。
  • 环节三·复盘报告(resume-report):生成一份独立的 HTML 报告页,直观展示 6 个维度优化前后的评分变化、主要修改点和脚本实测的客观信号;改写前分数与诊断页一致(有诊断 JSON 时由脚本强制校验)。

通用能力:多专业适配(产品、运营、市场、设计、财会、金融、法学、教育、医学、土木、机械、新媒体、行政等)、GEO/ATS/AI 筛选友好(保留可读取文本、关键词自然出现、不堆砌不隐藏)、HR 可读、HTML/PDF/Word 三格式。

每个环节结束会询问「是否进入下一环节」;如果你一开始就说「三个环节一次做完」,视为已确认,环节交界处仍会汇报产物并声明进入下一环节。

工作原理

这套 skill 不是简单地把文字润色得更好看,而是按招聘筛选的过程分三步处理简历:

  1. 诊断:判断目标岗位和当前材料里最有价值的证据,从 HR 视角检查定位是否清楚、经历是否可信、成果是否具体、风险点是否明显,生成改写前的诊断报告页(客观信号由脚本实测,分数由 AI 按六维量表判断)。
  2. 优化:按目标岗位重写内容,突出更相关的经历、补充关键词但不夸大造假;补齐 GEO/AI 需要的标题、摘要、结构化信息和可读取文本;用内置模板生成可阅读、可复制、可被筛选系统理解的 HTML 简历,并导出 PDF 和 Word;做基础质检。
  3. 复盘:测量优化前后的客观信号,按六维量表判断变化,生成评分对比报告页;所有展示数字由脚本重新计算,AI 不手写分数。

三个环节通过约定的产物目录(默认 ./resume-output/,存放 before.*diagnosis.jsonresume.*report.*)衔接,diagnosis.json 把诊断分作为基线传给复盘环节。

简单说,它的目标是让简历同时服务三类读者:

  • HR:快速看懂你适合什么岗位。
  • 面试官:看到真实经历和可追问的证据。
  • ATS/招聘 Agent/AI 搜索:能正确读取你的信息、关键词、专业背景和经历结构。

使用建议

  • 一份简历优先服务一个目标岗位。不同岗位最好生成不同版本。
  • 不要让 AI 编造公司、学校、职级、证书、项目或数字。
  • 如果没有准确数据,可以先写规模、频率、对象、时长、协作人数等事实。
  • 如果 AI 问你补充信息,优先补“结果、数据、职责边界、项目背景”。
  • 最终简历里的事实需要你自己确认,尤其是时间、公司、学历、证书和联系方式。

开源协议

本项目采用 GNU Affero 通用公共许可证第 3 版(AGPL-3.0-or-later),是 OSI 认可的开源协议:

  • 个人学习、个人求职、自用修改、商业使用:均免费,无需额外授权。
  • 你可以自由使用、修改和分发本项目。
  • copyleft 要求:如果你修改本项目并分发,或通过网络(SaaS、网站、平台等)向用户提供修改版服务,必须在相同的 AGPL-3.0 条款下向使用者公开你的修改源码(AGPL 第 13 条)。
  • 不得移除版权声明,也不得将衍生版重新授权为更宽松的协议。

完整条款见 LICENSE.md

维护者说明

普通使用者不需要阅读本节。只有在你要维护模板、脚本或测试时才需要这些命令。

仓库结构

根目录是唯一开发正本;skills/ 下是按 manifest 同步的分发副本(随仓库提交,每个目录是一个自包含 skill)。

  • skills/resume-diagnosis/skills/resume-optimization/skills/resume-report/:三个 skill,各含自己的 SKILL.md(就地撰写)+ 同步的 scripts/assets/referencesSKILL.md 的 frontmatter 同时承载 SkillHub 发布元数据(slug/displayName/version/summary/license/homepage),规则见下文「发布到 SkillHub」。
  • references/:HR 评分量表(hr-scorecard.md)、诊断指南(diagnosis-guide.md)、改写指南(rewrite-guide.md)、复盘指南(report-guide.md)、岗位画像(role-playbooks.md)、GEO/HTML 参考(geo-html-resume.md)。
  • assets/:三个 HTML 模板(简历、诊断页、复盘报告页)。
  • scripts/:HTML 质检(check_resume_html.py)、PDF/Word 导出、评分与报告渲染(score_resume.py)、skill 同步(sync_skills.py)。
  • tests/:脚本测试与 skill 包守护测试。
  • .claude-plugin/plugin.json:Claude Code 插件清单,一键安装三个 skill。

同步分发副本

改任何根目录下的脚本、模板或 references 后,必须运行同步把改动镜像到 skills/ 下三个包。永远只改正本,不要直接改 skills/ 下的副本(CI 会拦截漂移)。

python3 scripts/sync_skills.py           # 把根目录正本镜像到 skills/ 各包
python3 scripts/sync_skills.py --check    # 校验副本与正本一致、无孤儿文件(CI 运行此项)

发布到 SkillHub

SkillHub 只从 SKILL.md frontmatter 读元数据,一次只发一个 skill 目录。tests/test_skill_packages.py 守着四条规矩:slug 钉在已发布的值上(resume-diagnosis / resume-optimization-suite / resume-report,已发布的 slug 不可改;新 skill 沿用 slug = 目录名,除非平台报「已被占用」);displayName 以「简历诊断优化」开头且这几个字连续不被分隔符打断(平台检索只认 slug 与 displayName 的整串子串,统一前缀才能一次搜到三个);version.claude-plugin/plugin.json 一致(发版时四处一起升:plugin.json + 三个 SKILL.md);frontmatter 字段不出白名单。description 同时承担宿主触发与平台卡片展示两个职责,保持中文、首句说清这个 skill 是什么。

python3 -m unittest tests.test_skill_packages                       # frontmatter 守卫
for s in resume-diagnosis resume-optimization resume-report; do
  skillhub publish "skills/$s" --dry-run                               # 本地预检:只校验元数据与打包,不发请求
done
for s in resume-diagnosis resume-optimization resume-report; do
  skillhub publish "skills/$s" --changelog "本次改动一句话"            # 正式发布,需已 skillhub login
done

限频约每分钟 3 次(报 429 隔 80 秒重试),审核异步逐个放行。发布依赖浏览器里完成的实名认证与 API Token,不进 CI。

常用脚本命令

检查内置模板:

python3 scripts/check_resume_html.py assets/resume-template.html --allow-placeholders

检查正式用户简历:

python3 scripts/check_resume_html.py path/to/resume.html

导出 PDF / Word:

python3 scripts/export_resume_pdf.py path/to/resume.html path/to/resume.pdf
python3 scripts/export_resume_docx.py path/to/resume.html path/to/resume.docx

生成诊断页(先看客观信号,再用诊断 JSON 渲染):

python3 scripts/score_resume.py measure before.txt
python3 scripts/score_resume.py diagnose diagnosis.json --resume before.txt -o diagnosis.html

生成复盘报告(有诊断 JSON 时传 --diagnosis 强制校验 before 分一致):

python3 scripts/score_resume.py measure after.html --before before.txt
python3 scripts/score_resume.py render report.json --after after.html --before before.txt -o report.html --diagnosis diagnosis.json

运行测试:

python3 -m unittest

About

帮你写好中文简历的 AI skill。它最大的特点是:既面向 GEO/AI 搜索与招聘筛选,又能适配不同专业、不同岗位方向的简历写作

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages