# Qiaomu Campus Resume

> 为大学生、应届生和实习求职者从 0 创建、定制或美化可投递简历：支持借鉴 Grill Me 的一问一答访谈，从零收集经历并生成 PDF；读取岗位 JD 与旧简历，建立要求—证据映射并针对性改写；在不改变事实的前提下优化已有简历内容结构或只美化排版；按用户明确要求一次生成六种不同风格的 ATS 友好 PDF 简历。适用于“采访我做简历”“没有简历从零问答”“根据 JD 定制简历”“优化/重排/美化已有简历”“一次生成多种风格简历”等请求；支持中文/英文及计算机、软件、AI、数据和其他校招岗位。使用 A-C-R-E 结构审校经历，并按 sparse / balanced / dense 自适应内容密度。禁止虚构经历或数字；默认生成一份最合适的单栏简历，只有用户明确要求比较时才批量生成。不要用于学术申请 CV、资深高管简历、作品集网站、代投职位或单纯模拟面试。

- Skill: `aiskillstore/qiaomu-campus-resume` (Agent Skill, multi-file: 49 files)
- Install (CLI): `npx skillmds@latest add aiskillstore/qiaomu-campus-resume`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aiskillstore/qiaomu-campus-resume/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: aiskillstore (https://skillmd.com/u/aiskillstore)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/aiskillstore/qiaomu-campus-resume

---


# 乔木大学生简历

把零散、真实的学生经历整理成可投递、可编辑、可复核的 HTML 与 PDF 简历。内容可信优先于修辞，岗位相关性优先于信息堆叠。

## 使用边界

- 适用：在校生、应届生、毕业三年内的早期职业求职者；默认兼顾中文校招与技术岗位。
- 不适用：学术申请 CV、资深高管履历、作品集网站、求职信、代投或招聘平台账号操作。
- 不承诺“通过率”“邀约率”或 ATS 分数；只能报告实际做过的结构、关键词、文本提取和文件检查。
- 不得虚构公司、项目、职责、技术栈、奖项、用户量或性能数字。所有可验证陈述必须进入事实证据链。

## 四种能力路由

先判断用户已有材料与明确意图，不把所有请求都拉回同一套采访：

| 入口 | 第一动作 | 完成条件 |
|---|---|---|
| 从 0 问答写简历 | 读取 [对话式访谈与采集](references/intake-and-interview.md)，从目标岗位或最强经历开始，每轮只问一个问题 | 事实账本通过访谈门禁并获得本人确认，再生成默认单主题 PDF |
| 提供旧简历优化 | 先提取并复述已有事实，不重复询问；用户要改内容时，只追问会改变表达的缺口 | 内容优化走完整证据门禁；只改排版走“排版快速路径” |
| 提供 JD 针对性定制 | 同时抽取 JD 必备条件、加分项与职责，建立 `JD 要求 → 已有证据 / 缺口 → 简历位置` 映射 | 只写有证据的关键词；缺口明确标记，不把 JD 要求伪装成候选人技能 |
| 一次生成多种风格 | 固定同一份已确认事实，直接使用 `--all-themes` 生成六套核心主题 | 六份 HTML/PDF、清单与批量验证全部通过，并逐页查看 |

**排版快速路径**：仅当用户明确要求“内容不改，只美化/重排/换模板”时使用。运行 `extract_resume.py`，展示提取到的姓名、教育、经历、技能和时间线摘要，请用户一次确认；随后以 `source_resume` 标记原文事实，运行 `validate_resume.py` 并渲染。不要强迫用户补两项新证据，不做未经请求的内容改写；若原文存在影响投递的矛盾、占位符或缺失联系方式，只问一个阻断问题，无法确认的内容省略或标为草稿。

## Compact Workflow

1. **建立工作目录**：在用户工作区新建独立输出目录；保留原始文件，不覆盖、不改名、不上传外部服务。
2. **按四种能力路由选择入口并启动对话**：
   - 有旧简历：运行 `scripts/extract_resume.py` 提取文本，并保留来源路径；扫描件无文本时，明确征得同意后才做 OCR。
   - 无旧简历、信息不足或用户要求采访：必须读取 [对话式访谈与采集](references/intake-and-interview.md)，使用一问一答模式。每轮只问一个核心问题，并附上可被用户纠正的当前判断；不要发巨型问卷。
   - 有岗位 JD：同时提取必备条件、加分项、工作内容、关键词和不匹配项；没有 JD 时按目标岗位族生成通用版。
3. **深挖并维护事实账本**：除纯排版快速路径外，优先沿最强经历逐层追问情境、个人职责、关键行动、结果、证据和面试可解释性；每 2–3 轮用不超过 5 条复述已确认事实与剩余缺口。把过程写入本地 `interview-ledger.json`，把可公开成果标注 `evidence_type`。遵循 [真实性与证据](references/content-integrity.md)。
4. **确定策略**：必须读取 [简历写作与版式最佳实践](references/best-practices.md) 与 [内容与岗位策略](references/resume-strategy.md)，建立 `JD 要求 → 证据 → 简历位置` 映射；选择目标岗位、语言和一页/两页上限。按 [六主题系统](references/style-system.md) 选择核心主题，并遵循 [字体与印刷排版系统](references/typography-system.md)。用户提到 ResumeCollection、模板编号或要看更多简洁方案时，读取 [ResumeCollection 简洁参考目录](references/resume-collection-catalog.md)，选择单个重构预设或六预设对比输出。
5. **通过生成门禁**：从 0 创建、内容优化或 JD 定制时，运行 `python3 scripts/assess_interview.py interview-ledger.json`；目标岗位、基础信息、教育、两项可用证据、技能证据链、关键疑点和本人确认全部通过后，才进入最终生成。纯排版快速路径改为“来源提取成功、事实摘要获确认、`source_resume` 证据类型完整、`validate_resume.py` 通过”四项门禁。用户中途要求停止时，交付事实摘要与精确缺口；除非对应门禁通过，否则只可生成明确标注的草稿 JSON/HTML，不把 PDF 伪装成最终版。
6. **确认并起草数据文件**：先向用户展示“目标岗位 / 核心经历 / 可用数字 / 技能 / 舍弃项 / 仍有疑点”的简短事实摘要，获得明确确认。再按 [数据契约](references/data-contract.md) 写出 `resume-data.json`；需要估算时必须保守、显式标记并由学生确认。
7. **内容审校**：按 A-C-R-E 检查每条 bullet 的动作、情境/范围、结果与证据；检查时间线、个人/团队边界、技能与项目对应关系、数字证据、拼写、链接、章节顺序和岗位关键词自然度。运行 `validate_resume.py` 后逐条处理弱职责词、过长 bullet、孤立技能和结果信号不足的警告；不要为了“每条都有数字”而制造数字。
8. **渲染**：默认只生成一份最合适的简历：

   ```bash
   python3 scripts/render_resume.py resume-data.json --theme tech --output-dir output
   ```

   默认根据岗位选择一个核心主题，并根据真实内容量自动选择 `sparse / balanced / dense` 密度，生成一份 HTML 与文本型 PDF；用户明确要求对比时，才使用 `--all-themes` 或参考预设批量命令。边框声明只允许页头和章节标题使用 `border-bottom` 分割线；禁止 `border-radius`、闭合边框、顶边、侧边线、侧边栏和卡片轮廓。无轮廓、无圆角的浅色页头 wash 或完整横向章节色带允许使用。中文 PDF 必须实际嵌入主题声明的本机字体；Kami 主题要求 TsangerJinKai02 W04，W05 仅在已安装时用于标题。

   用户选择 ResumeCollection 参考预设时使用：

   ```bash
   python3 scripts/render_resume.py resume-data.json --reference-style rc-071 --output-dir output
   # 或一次生成六个参考预设
   python3 scripts/render_resume.py resume-data.json --all-reference-styles --output-dir output
   ```
9. **验收**：单主题先运行 `validate_resume.py --theme <id>`；批量比较才运行：

   ```bash
   python3 scripts/validate_style_set.py resume-data.json output/resume_六风格清单.json --output output/validation-all.json
   ```

   单主题输出仍可使用 `validate_resume.py --theme <id>`。再按 [视觉与 PDF 验收](references/visual-and-pdf.md) 将每页转为图片并逐页查看；确认无溢出、孤行、断裂、重叠、异常空白，且 `pdftotext` 能读出姓名、联系方式和标准章节。
10. **交付**：默认提供 1 份最终 PDF、对应 HTML、`resume-data.json` 和验证报告；从 0、内容优化或 JD 定制另附 `interview-ledger.json`，纯排版快速路径另附来源提取文本。只有用户明确要求比较时才交付多主题文件。用不超过 5 条说明定位、核心内容取舍与仍需本人确认的事实。

## Router Rules

- 默认一页；先删除弱信息，当真实且岗位相关的实习/项目仍无法在不低于 9.1pt 正文的情况下清晰呈现时，才扩展到两页。
- 未指定风格时由内容与岗位决定一个默认主题并生成一份；明确要求对比时才生成六套，明确指定主题时只生成该主题。
- 用户说“一次生成多种/不同风格/都生成看看”时，默认一次生成六套核心主题，不先要求挑选单一模板；所有版本必须共用同一份事实数据。
- 用户只要求美化或重排旧简历时，走排版快速路径，保留原事实与措辞边界；不得把“美化”自动扩大为虚构量化结果或重写职业经历。
- 用户提供 JD 时，先给出要求—证据—缺口摘要，再按证据重排与改写；没有证据的 JD 关键词不得进入技能栏或经历 bullet。
- ResumeCollection 参考预设是显式选项，不混入默认核心六主题；指定编号时只生成该预设，要求比较时才生成全部六个参考预设。
- 参考预设只吸收排版骨架；禁止复制或打包上游 DOCX、预览图、照片、图标和字体。
- 六主题都是单栏与标准章节，不用“两栏更好看”作为牺牲 ATS 文本顺序的理由。
- 目标岗位不明确时，先从经历证据给出 1 个默认方向和最多 2 个备选；只有选择会显著改变内容时才追问。
- 对话访谈一次只问一个核心问题；问题必须附当前判断或推荐答案，允许学生直接纠正。不要在一条消息里批量索取整份简历字段。
- 沿一项经历深挖到“个人贡献—行动—结果—证据—可解释性”闭环后，再切换下一项；用户已主动覆盖的信息不得重复询问。
- “随便”“你看着办”“应该差不多”不等于事实确认；先给出具体复述并要求确认。用户可以随时说“跳过”“不知道”“停止采访”。
- 技术岗位优先展示项目、技术决策、个人贡献和可解释的结果；非技术岗位把“技能”替换为岗位相关能力与工具。
- 关键词只能在事实支持时加入；JD 提到的技能不能因为“匹配”而写进候选人简历。
- 弱经历优先挖掘范围、复杂度、约束、协作和完成度，不强行包装成商业影响。
- 输出中的联系方式和个人链接属于隐私数据；不写入报告、示例、日志或外部服务。

## Gate Ladder

- 访谈门禁：从 0、内容优化或 JD 定制时，`assess_interview.py` 必须确认目标、基础信息、教育、至少两项岗位相关证据、技能证据链、零阻断疑点和明确本人确认；未通过时只能交付事实摘要或草稿。
- 排版快速路径门禁：旧简历提取成功、事实摘要经用户确认、每条经历带 `source_resume` 证据类型、`validate_resume.py` 通过；不要求用户为了换版式重新完成两项深度访谈。
- 内容门禁：`validate_resume.py` 必须确认关键字段、证据类型、时间线、链接、章节顺序和占位符；弱职责词、孤立技能、过长 bullet 与结果信号不足必须修复或给出事实依据。纯排版快速路径若因用户明确禁止改文案而保留来源警告，必须在交付中说明“只优化排版，未完成内容优化”，不得静默改写或声称内容已优化。
- 渲染门禁：HTML 与 PDF 必须由同一份 JSON 生成；至少有一条 `border-bottom` 分割线，`border-radius` 与闭合/顶部/侧边边框声明必须为 0。
- 主题门禁：核心主题 ID、参考预设 ID、核心色、目标字体与 HTML 的 `data-theme` / `data-reference-style` 必须一致；批量输出必须正好包含六套清单条目。
- 排版门禁：HTML 必须使用 1.5 排版系统与自适应密度标记，声明目标中文字体和拉丁字体层；px、italic、链接色块与技术名词错误大小写必须为 0。
- PDF 门禁：A4、1–2 页、未加密、文字可提取、包含关键字段；中文用 `pdffonts` 证明主题目标字体已实际嵌入，其中 Kami 必须为 TsangerJinKai02。
- 视觉门禁：每页实际查看，无裁切、重叠、断裂、孤行或异常空白后才能交付。

## Output Contract

- 对话：自然聊天式一问一答；每轮 1 个核心问题，附当前判断；定期复述已确认事实与下一缺口。
- 事实账本：从 0、内容优化或 JD 定制时，本地 `interview-ledger.json` 保存已确认事实、疑点、证据关联和确认状态；纯排版快速路径可以不建访谈账本，但必须保留本地提取文本与一次事实确认。两者都不上传外部服务。
- PDF：默认一套；A4、1–2 页、文本可选择与提取、无密码、无远程字体/图片依赖。批量比较仅在用户明确要求时生成。
- HTML：与最终 PDF 同源、可本地修改、打印样式固定。
- JSON：保存内容与证据类型，不把私密来源备注渲染进公开简历。
- 六风格清单：记录主题 ID、中文名、适用场景与交付路径。
- 参考风格清单：选择批量参考预设时，额外记录预设 ID、基础主题、来源编号、来源链接与交付路径。
- 验证报告：逐主题记录结构、事实、色彩、字体、页数、文本提取与文件检查；审美结论必须来自实际逐页查看。

Copyright (c) 向阳乔木
X: https://x.com/vista8 · GitHub: https://github.com/joeseesun/

