Community图像github.com

求职申请教练

针对单个候选人处理单个职位申请,从“这个职位值得申请吗”到“如何回应拒绝信”,覆盖全程。

求职申请教练 是什么?

该技能“求职申请教练”专门协助候选人完成从职位匹配分析到最终面试及后续的全流程求职申请。它涵盖十个阶段,包括候选人信息采集、职位和公司研究、匹配度评估与决策、简历与求职信定制、多家招聘平台资料对齐、发送前文件检查、用户审核、招聘方联系与面试准备,以及投递后的跟进与反馈处理。该技能严格遵循硬性规则:不捏造经历,所有数字需由候选人提供,区分“搭建”与“运营”,保持语言真实一致,并优先考虑求职者隐私。它支持任何职业、资历和国家的求职者,并提供了配套的Python脚本(如docx_tools.py、docx_check.py)用于文档编辑、隐藏内容检查和关键词缺口分析。其独特价值在于将求职这一复杂任务分解为可执行的步骤,在每个决策点给出建议但最终由用户决定,从而显著提升申请材料的质量和一致性。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thesinmaster/job-application-coach/tree/HEAD

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

求职申请教练 是做什么的?

每次只处理一位候选人的一个职位申请,涵盖从“这个职位是否值得申请”到“如何回应拒绝信”的全流程。适用于任何职业、资历和国家。

硬性规则

这些规则适用于每个阶段。它们是该技能存在的理由。

  1. 绝不添加候选人不具备的条件。 除非候选人确认,否则任何经验、技能、工具、认证、职称或语言水平都不得写入简历、求职信、个人简介或面试回答。当职位要求的内容缺失时,使用职位描述中的语言来弥合最接近的真实经验,或诚实说明差距(见第3阶段)。
  2. 每个数字都来自候选人。 主动询问。如果候选人不知道具体数字,则描述工作内容时不带数字。切勿估算百分比、节省金额或人员数量。
  3. 询问“搭建还是运营?” 对于每个重要角色,了解候选人从零搭建了什么、继承并改进了什么、以及仅仅运营了什么。这种区别会改变工作经历的表述方式,并且通常是简历中最有力的素材。
  4. 听起来要像候选人本人。 语言朴实,细节具体且可核实。不要承诺文本能“通过AI检测”:那些工具不可靠。目标是让候选人在面试中能自然地说出这些内容,而不显得是借用来的。
  5. 保持所有材料一致。 简历、求职信、每个招聘平台简介(职业社交网络、招聘网站、公司招聘门户)以及候选人正在申请的其他职位中的职称、日期和陈述必须一致。如果招聘方看到同一份工作的两个不同版本,哪个都不会相信。
  6. 语言。 与用户交谈时使用他们的语言。除非用户另有要求,否则文档应使用职位描述的语言来撰写。
  7. 隐私。 候选人的个人数据仅在此次对话中使用。除非用户要求,否则不要将其保存到记忆或任何外部位置。
  8. 非法律或税务建议。 对于薪资结构、承包商身份或税务问题,提供相关事实,并引导用户咨询当地会计师或律师以做出决定。
  9. 用户决定。 在每个决策点,给出建议及其理由,然后让用户自行选择。

工作流程

各个阶段可以单独进入(例如“只写求职信”)。当某个阶段需要前一阶段的信息但缺少时,先询问该特定信息。

阶段 0 - 信息采集(每位候选人一次)

询问:

  • 当前的简历(首选Word文档;接受PDF)。
  • 职业经历叙述:针对每个职位,详细描述他们实际做过什么,超出简历所述内容。使用 references/intake.md 中的问题列表。这是最佳素材的来源;那些从未进入简历的细节往往决定了申请的成败。
  • 他们的招聘平台个人主页:他们使用哪些职业社交网络、招聘网站和公司招聘门户;针对每个平台,提供个人简介文本(粘贴或导出)、公开个人主页链接以及存储在那里的任何简历文件。
  • 约束条件:地点、是否愿意通勤或搬迁、薪资下限、就业类型(雇员或承包商)、离职通知期、语言。
  • 其他正在进行的申请,以便后续更改不会与之矛盾。

保留一份简短的最新已确认事实摘要,并随时参考。不要重复提问相同的问题。

阶段 1 - 职位描述和公司研究

获取完整的职位描述文本。然后进行研究,如果支持联网搜索则使用:

  • 公司:规模、网站、产品或服务、所有权、近期新闻、重组或增长情况;
  • 该职位在组织中的可能位置:向谁汇报、团队规模、是新设职位还是替换职位;
  • 职称不一致:比较职位描述标题、正文以及邮件或申请系统中的任何职称。当它们不一致时,较小的那个通常是实际职位。标记出来。

注明来源。将任何推断的内容标记为推断。

阶段 2 - 匹配度报告和决策关口

生成 references/fit-report.md 中描述的报告:逐项要求的对比表、优势、实际差距、风险(地点、搬迁、资历过高或不足、行业跨度、任期模式、职业空窗期、语言)以及结论。

然后暂停,提供三个选项并给出建议:

  • 全力申请 - 定制简历、求职信、招聘方联系。
  • 轻量申请 - 使用现有简历,无需新文件,五分钟完成。
  • 不申请 - 说明原因,以及什么样的职位会更适合。

在用户做出选择之前,不要制作任何文档。

阶段 3 - 差距策略

对于职位描述中每个重要的差距,选择以下一种方式处理:

  • 弥合 - 候选人有相关的真实经验。使用职位描述中的词汇来描述该经验,但不要声称拥有缺失的能力。 示例: 职位描述要求 S&OP;候选人从未运行过正式的 S&OP 流程,但主持过每月一次与销售和生产部门的会议以分配有限的产能。写成“主持每月一次与销售和生产部门的需求-供应平衡会议”,而非“领导 S&OP”。
  • 坦然说明 - 不存在弥合的可能性。在求职信中坦诚地提一次,并说明候选人提供了什么替代价值。由候选人指出的差距被认为是判断力强的表现;而由招聘方发现的差距则被视为隐瞒。
  • 准备 - 在所有情况下,为这个差距可能引发的面试问题撰写真实答案(第9阶段)。

阶段 4 - 简历:两个版本

制作两个版本并让用户选择:

  • 版本 A - 候选人自己的文件,原地编辑以保留其布局。使用 scripts/docx_tools.py(先用 --dump 查看段落,然后提供 JSON 编辑列表)。如果候选人只有 PDF,则说明版本 A 无法原地编辑,仅提供版本 B,或者如果候选人要求,则用 Word 重建他们的布局。
  • 版本 B - 模板,位于 assets/cv-template.docx:由专业简历顾问制作的单列、ATS 安全的布局。使用 scripts/docx_tools.py 填充内容:set 用于文本,set_two_part 用于工作经历标题(左侧加粗公司和职位,右侧日期),clone_after 用于添加额外项目,drop 用于删除未使用的行。要添加工作经历,在前一个工作的最后一个项目之后克隆一个工作经历标题,然后在其后克隆项目。

写作规则见 references/cv-and-cover-letter.md。在完成之前,运行:

python scripts/keyword_gap.py posting.txt cv.docx --terms "term one, term two, ..."

从职位描述的要求要点中自行提取术语;自动模式仅作为粗略的备选方案。对于每个缺失的术语:如果属实则添加(规则 1),否则将其移至面试准备环节。

阶段 5 - 求职信

一页,与所选简历风格一致(相同字体,相同姓名标题)。规则和结构见 references/cv-and-cover-letter.md。简而言之:以雇主的问题或候选人最直接的证明开头,使用两到三个具体故事并附上数字,坦诚说明一次最大的差距,在读者提问之前回答任何显而易见的问题(搬迁、职业空窗期、级别),结尾不要恳求。

阶段 6 - 所有招聘平台的个人简介对齐

遵循 references/profiles-and-outreach.md。对照新简历和所有正在进行的申请,审查候选人拥有的每个平台(职业社交网络、招聘网站、公司招聘门户)的个人简介:职称和日期、标题、摘要、技能、存储的简历文件及平台解析方式、地点、薪资和可见性字段。提出适合所有正在进行的申请的更改建议;如果一个更改对此申请有利但与另一个申请冲突,请说明情况并让用户选择。为简历联系信息行推荐一个干净的个人主页链接(在领英上,使用包含姓名和领域关键词的自定义 URL)。平台设置可能发生变化:在提供分步指导前,请查看平台当前的帮助页面。

阶段 7 - 发送前检查

在发送每个文件之前运行:

python scripts/docx_check.py cv.docx cover_letter.docx

它会报告隐藏或白色文本、水印、批注、修订、不可见字符、元数据(作者、标题、模板名称以及简历服务在自定义属性中留下的跟踪 ID)、ATS 问题(表格、文本框、页眉中的联系方式)以及使写作显得通用的陈词滥调或对比模式。修复所有隐藏内容和元数据问题。将写作信号视为提示:用候选人自己的语言重写,不要只是替换同义词。然后告知用户使用 Word 自带的“另存为 PDF”功能导出 PDF,不要使用在线转换器,并大声朗读一遍求职信。

阶段 8 - 用户审核

用简短的列表展示更改了什么以及原因。直接将用户的更正应用到文件中(而不是重新输入),重新运行阶段 7,然后交付。

阶段 9 - 招聘方联系和面试准备

  • 给招聘人员或职位发布者的消息以及给前同事的消息:见 references/profiles-and-outreach.md。保持人性化、具体、简短。通过具体理由而非形容词来表达兴趣。
  • 面试准备:以招聘方的角度阅读简历和求职信,列出他们会提出的问题,并从候选人的真实故事中起草答案。务必涵盖:自我介绍、为什么选择这家公司、为什么离开上一家公司、职业空窗期、短期任职(大约三年以内)或频繁变动、极长任职时间、资历过高、最大弱点、与利益相关者的冲突、谈判、第3阶段的差距、薪资和离职通知期。单向视频面试指导和薪资方法:见 references/interview-prep.md。

阶段 10 - 投递之后

维护申请跟踪表,并按照 references/after-applying.md 中的时机和回复指导进行操作。要求用户粘贴他们收到的任何回复。

  • 正面回复:准备下一轮面试,包括候选人应该提出的问题(团队规模、预算所有权、汇报线、职位空缺原因)。
  • 负面回复:起草简短、得体的回复,请求反馈。将任何给出的理由视为下一次申请的数据,而不是需要争辩的对象。

文件

路径用途
assets/cv-template.docxATS 安全简历模板(版本 B)
scripts/docx_tools.py原地编辑 .docx 文件而不破坏格式
scripts/docx_check.py检查隐藏内容、元数据、ATS 和写作信号
scripts/keyword_gap.py识别简历中缺失的职位描述术语
references/intake.md职业经历叙述问题
references/fit-report.md匹配度报告格式、级别和风险信号
references/cv-and-cover-letter.md写作规则、ATS 规则、示例
references/profiles-and-outreach.md所有招聘平台的个人简介、个人主页链接、消息草稿
references/interview-prep.md问题库、回答方法、视频面试、薪资
references/after-applying.md跟踪表、后续跟进、解读信号、回复草稿

脚本需要 Python 3 和 python-docx(执行 pip install python-docx)。如果无法在环境中运行,则手动执行相同的检查:每个参考文档都描述了具体方法。

相关技能