Files
mantle-ai-trader/skills/jd-resume-tailor/SKILL.md
2026-06-06 05:21:10 +00:00

5.5 KiB
Executable File
Raw Blame History

name, description
name description
jd-resume-tailor 给定一份 JD 和一份现有简历,做"JD 拆解 + 简历定向改写"。拆 JD 抽出硬技能、软技能、加分项;对照简历做 gap 分析;产出针对该岗位重写后的简历,突出相关经验、补齐关键词缺口、并保留候选人真实经历不编造。当用户说"针对这个岗位 / 这家公司改简历""帮我对一下这个 JD""我想投这个职位你看怎么改""把这份简历针对 X 公司优化""做一份定向版简历",或同时给出 JD 文本 + 简历文件时,必须触发本 skill。**请勿用本 skill 做"从零写简历"**——那是 resume-builder 的事。

JD ⇄ Resume TailorJD 拆解 + 简历定向改写)

这个 skill 的边界很窄:只解决"已有 JD + 已有简历,要改一份命中率最高的版本"

不做的事:

  • 写新简历(去 resume-builder
  • 找方向 / 推荐岗位(去 job-intent-tracker
  • 出面试题(去 interview-prep

何时触发

强信号:

  • 用户给了 JD 链接 / JD 文本 + 一份简历 → 必触发
  • "针对这个岗位帮我改简历"
  • "对照一下这个 JD"
  • "我想投 X 公司的 Y 岗,帮我看简历"
  • "做一份定向版"

弱信号(先确认):

  • 只给了 JD 没有简历 → 问"你的简历方便发我看一下吗没有的话我可以先帮你从零做一份resume-builder"
  • 只给了简历说"改简历" → 问"是针对哪个 JD 改?没有 JD 就用 resume-builder 通用优化"

工作流

Step 1: 解析 JD

输入可能是:

  • 纯文本(用户粘贴)
  • 链接(不要自动 fetch提醒用户复制 JD 文本进来;若用户授权 fetch使用 web_fetch
  • 截图(用 OCR / 视觉识别,让用户确认抽取结果)
  • doc/pdf 文件

调用脚本:

python scripts/parse_jd.py --jd-file <jd.txt> --out jd_parsed.json

脚本会从 JD 抽出:

  • 硬技能 must-have"必须" / "要求" / "至少 X 年" 等强信号词后面的技能)
  • 硬技能 nice-to-have"加分" / "优先" / "熟悉者优先" 等弱信号)
  • 软技能信号(沟通 / 推动 / 跨部门 / 抗压 等)
  • 职责动词 + 对象"负责 X" / "搭建 Y" / "推动 Z"
  • 特殊要求(出差 / 学历 / 证书 / 语言 / 城市)

把结果展示给用户,让用户确认 / 修正抽取是否准确(关键 must-have 不能漏)。

Step 2: 解析简历

输入:用户上传的简历文件(.pdf / .docx / .md / .txt

调用对应 skill 解析:

  • pdf → pdf skill
  • docx → docx skill

抽出:基本信息、教育、每段工作 / 项目经历的(公司、岗位、时间、职责 bullet、技能列表。

Step 3: Gap 分析

调用:

python scripts/jd_gap.py --jd jd_parsed.json --resume resume.txt --out gap.md

脚本输出三类清单:

  1. 完美命中JD must-have 在简历里有明确证据)
  2. 隐性命中JD 要求 X简历里有 X 的近义经验,但用词不一样 → 改写时可以"提一下"
  3. 真缺口JD 要求但简历完全没有)

对"真缺口"分两类:

  • 可补救:简历里其实做过类似的事,只是没写出来 → 追问用户"你做过 X 吗?"
  • 不可补救:用户确实没做过 → 不能编,建议用户在 cover letter 或 summary 里诚实说明并强调 transferable skill

Step 4: 定向改写

按以下原则重写简历:

a. 重排经历顺序:与 JD 最相关的工作 / 项目放最前(不改时间真实性,但可以把项目经历拆成两块"相关项目 / 其他项目"

b. 重写每条 bullet

  • 把 JD 里的"职责动词"自然嵌入 bullet如 JD 说"主导 ___ 系统设计",简历里就把"参与"改成"主导"——前提是用户确实主导了)
  • 数字保留并放大("用户 100 万"是好事,别藏起来)
  • 补 JD 关键词(如 JD 说"A/B 测试",但简历里写的是"灰度对比",改成"A/B 测试(灰度对比)"

c. 重写 Summary:用 2~3 行总结你为什么是这个岗位的合适人选,直接对应 JD 的 must-have

d. 调整技能列表:把 JD 提到的技能移到最前面(前提是真的会)

e. 不改的事实

  • 公司名、岗位名、起止时间、学历 —— 一字不改
  • 项目规模、用户量、收入数据 —— 不能编,只能让用户确认后填准

Step 5: 自检 + 报告

输出三个文件:

  1. resume_tailored_<公司>_<岗位>.md(改写后的简历)
  2. gap_analysis.mdgap 分析报告)
  3. 聊天里给一个 ATS 命中率对比:"改前 X% → 改后 Y%"

附:诚实提醒用户哪些 bullet 是基于现有信息推测改写的,让用户复核后再投。


反模式(不要做)

  • 编造经历("加上一段你没做过的项目"——绝对禁止,哪怕用户要求)
  • 把 JD 的整段话直接粘进简历(很容易被 HR 一眼识破,且 ATS 反作弊会标记)
  • 关键词堆砌在末尾塞一长串技能词凑命中率HR 一眼能看出)
  • 把"参与"改成"主导"但没有问用户实际角色 → 必须先核实
  • 不给用户看 gap自己默默改 → 用户会失去对简历的"理解"

与其他 skill 的协作

  • 改完后用户说"帮我准备这家公司的面试" → 转 interview-prep,把 JD + 改写简历传过去
  • 用户说"我想知道还能投哪些类似的岗" → 转 job-intent-tracker
  • 用户说"我现在简历不太行,能不能整体重做" → 转 resume-builder