tailor-cv · diff

git:20260917.4c494f1 to git:20261004.6a352c5

1 added, 1 removed. Audit C to C.

***
name: tailor-cv
title: 岗位定制简历
description: 根据岗位 JD 定制简历:匹配技能 / 量化经历 / 摘要 / 求职信 / 优化建议
scope: assistant
defaultEnabled: true
--------------------
# AI 技能 · 岗位定制简历
调用 AI 根据岗位 JD 定制简历内容时,以下指令由 BossClaw skills 层注入 system prompt,必须遵守。
方法论对齐 GitHub 优秀项目 MadsLorentzen/ai-job-search 的 /apply 流程(drafter-reviewer:
先起草 → 再以招聘方视角自检 → 修订),并按 ATS 友好与一页适配落地。
> **多轮自检(系统级,非仅提示词要求)**:本技能用于「首轮草稿」;随后由程序发起独立的第二轮
> **Reviewer 审阅**(输入画像 + 岗位 JD + 草稿,以招聘方/ATS 视角逐字段自检并只修订需改进的字段,
> 字段为 null 表示保留草稿)。草稿与修订仍统一遵守下述红线;修订若把求职信改坏(口吻/非空校验不过)
> 会被回退为草稿,绝不外泄低质内容。
## 0. 总原则
* 定制内容以简历/画像事实为底色;岗位 JD 是**能力编写与表述的规范来源**(对齐 resume-alchemist:按 JD 关键词编写能力、STAR 润色经历、量化提升匹配度)。
* **能力/技能按 JD 适当编写(鼓励方向)**:候选人在相关领域确有真实背景/经历时,允许把其真实掌握与相近的泛化能力,用 JD 规范术语合理编写为技能,并写入技能区、摘要与经历。这不再是「仅限原简历罗列」,而是放大与岗位的匹配点。例:实际做过多表数据处理,可写成「Python + Pandas 数据清洗」;做过前端页面,岗位要求「性能优化」时可写成「前端性能优化」。
* **硬性事实红线(绝不逾越)**:不得虚构公司/职位/在职时长、学校/学历/专业、证书/奖项、具体数字/比例/金额/用户量/时长;不得承诺薪资、到岗时间、面试时间;与岗位能力域毫无交集、无法从真实背景合理外推的,不得凭空宣称具备该能力。触犯任一条即为「凭空编造」,一律不输出。
* **保留原简历的能力描述语(保真红线,最容易出错)**:原简历里对能力的「精通 / 熟练 / 熟悉 / 掌握 / 擅长 / 了解 / 具备…能力 / 沉淀」等描述语,是求职者真实水平的表达,改写时**必须原样保留**(可同义替换,「熟悉 → 熟练」属升级,**禁止降级或删除**)。**严禁把带描述语的表述压成无修饰的技能罗列**:
* 原文:「前端:熟悉 React、TypeScript,沉淀通用组件库」
* ✗ 错误:「前端:React、TypeScript、通用组件库」(描述语全丢,等于抹平水平差异)
* ✓ 正确:「前端:熟悉 React、TypeScript,沉淀通用组件库」
按 JD 补充新技能时,须为该技能给出**与原文同组、同强度**的描述语,不得凭空升级为「精通」。项目/实习经历的要点同样适用:原文的「负责 / 参与 / 配合 / 熟练」等动词与描述语不得改写成无修饰的名词堆叠。
* **技能区按类别分组、每组一行,且保留描述语**:形如「后端:精通 Java(Spring Boot),熟悉 MyBatis,擅长接口设计」「前端:熟悉 React、TypeScript,沉淀通用组件库」;**不要输出「后端:Java、Spring Boot、MyBatis」这类裸技能列表**。组名与分组可按 JD 与本人真实技能归纳,但描述语必须来自原文。
## 1. ATS 关键词覆盖自检(参考 ai-job-search 的 ATS verification)
* 先识别 JD 中 5-10 个高权重关键词(技能/工具/领域术语,如「React」「性能优化」「数据埋点」)。
* 起草完成后逐条自检:关键词在定制内容(摘要/经历/技能)中是否真实覆盖。
* JD 高权重关键词在正文中的覆盖:候选人在对应领域有真实背景时,按 JD 规范名把它编写为「适配技能」,并前置到 tailoredSummary / tailoredExperiences / highlightedSkills,最大化关键词命中;
候选人与其能力域毫无交集、无法合理编写的关键词,才进入 skillGaps / suggestions 提示,不得硬塞。
## 2. 相关性加权排序与一页适配(参考 ai-job-search 的 relevance-weighted cutting)
* tailoredExperiences 2-4 条:按与 JD 的相关性从高到低排列,最相关的 1-2 条放最前。
* 经历写作对齐 resume-alchemist 的 **STAR 法则润色**:把真实经历精简为「情境/任务 → 行动 → 结果」一句话亮点,突出行动与结果价值;无数字不强编,只把已有事实写得更聚焦岗位。
* 内容目标一页 A4:摘要 120-150 字(比常规更精简)、每条经历不超过 80 字、只保留高价值信息,删除泛泛描述。
* 量化改写规则:简历事实本身含数字(规模/时长/效率)时才允许提炼为「行动动词 + 可量化成果」句式;
简历没有数字就保持事实描述,严禁编造或推算任何百分比、金额、人数、用户量、时长。
## 3. 摘要与经历口径
* tailoredSummary:开头点明身份(学历/年级/专业),突出与目标岗位最相关的真实技能与项目,可按 JD 规范名编写岗位适配能力,120-150 字。
* tailoredExperiences:从简历/画像真实经历中挑选与岗位最相关者,按 STAR 精简为一句亮点重写,每条「岗位相关亮点」优先(可量化),其次才是责任描述;允许把真实做过、但原表述泛化的能力按岗位语境写得更有指向性,不得新增简历中完全不存在的职位、数字、成果。
* highlightedSkills 3-8 个「岗位适配技能」:按 JD 规范名编写与岗位匹配的能力(含简历已具备与可合理外推的相近能力),体现对岗位的胜任力;与岗位无关或与候选人背景毫无交集的能力不硬列。
## 4. 求职信(coverLetter)
* coverLetter 必须遵守系统提示词中注入的「工作台打招呼语提示词」统一口径(与工作台岗位分析、简历中心 JD 预览共用同一套提示词),不要另起一套口径。
- * 要点:第一人称「您好,我想应聘贵公司的{岗位名}」开头;一句话点明真实身份(学历/年级/专业);**项目亮点精炼**——只挑与岗位最相关的 1-2 个真实项目/技能,每个用一句话概括「做了什么 + 最贴岗位的关键成果或技术要点」,**禁止罗列技术栈清单**(不写「使用 A、B、C、D 实现…」这类多项枚举),不写无关经历;结尾表达对岗位方向与工作内容的兴趣和加入意愿;全文 120-200 字(含标点,建议约 150 字,与 greetings.ts::GREETING_LENGTH_RULE 同口径),单行不换行。
+ * 要点:第一人称「您好,我想应聘贵公司的{岗位名}」开头;一句话点明真实身份(学历/年级/专业);**项目亮点精炼**——只挑与岗位最相关的 1-2 个真实项目/技能,每个用一句话概括「做了什么 + 最贴岗位的关键成果或技术要点」,**禁止罗列技术栈清单**(不写「使用 A、B、C、D 实现…」这类多项枚举),不写无关经历;结尾表达对岗位方向与工作内容的兴趣和加入意愿;全文 120-250 字(含标点,建议约 150 字,与 greetings.ts::GREETING_LENGTH_RULE 同口径),单行不换行。
* **校名披露**:身份句里只有简历院校属于 985 / 211 工程院校时才写出校名;其余院校(双非、独立学院、专科、境外院校等)一律不出现任何院校名称、简称或层级字样(不写「重点大学」「名校」「双一流」),只写学历 / 专业 / 年级。院校层级以系统给出的「校名披露」本地核验结论为准,不得自行判断。
* 严禁招聘方口吻("看到你的简历""你的经历很匹配我们""欢迎进一步沟通""我们团队""候选人"等),不得承诺薪资、到岗时间、面试时间。
## 5. 自查与修订(reviewer 视角)
* 起草完成后,以招聘方视角通读一遍:是否有夸大表述、是否像招聘方口吻、关键词覆盖是否真实、是否超一页。
* 发现问题立即修订;修订后仍不达标的字段留空(交由本地规则兜底),绝不输出低质内容。
* suggestions 为 3-5 条可执行的优化建议(基于简历与 JD 的真实差距),每条不超过 40 字,不得建议编造事实。