简历优化·对照JD
拿到的是两份文件:
- 改好的 Word 简历(.docx):按这个岗位重排顺序,每条经历改成「做了什么、怎么做的、结果如何」,JD 里的关键词用你真有的经历自然带出来。单栏、常用字体、不用表格套版,招聘系统(ATS)能正常读出文字。
- 匹配清单(.md):
- JD 关键词逐个对照:已命中(在简历哪一条)、能补(你做过但没写出来)、缺少(材料里找不到)。
- 每条改过的经历都有「原句 → 改后」,标出用了 STAR 的哪几步。
- 需要你补真实数据的地方统一标【待补:……】,例如【待补:改版后转化率从多少到多少】。
公司、岗位、时间、学历、证书、数字都只来自你给的材料,没有的不编、不估。
给投具体岗位的应届生、跳槽和转行的人用:经历你有,缺的是把它写成这个岗位想看的样子。
示例:按这个产品经理 JD 帮我改简历,我做了 3 年运营,想转产品。一次 1.00 元。
支付宝服务标识:API_FA1B7437DB6A4961。资源是 POST https://49.232.229.62/v1/resume。
触发词
简历优化、改简历、简历润色、简历匹配 JD、按岗位改简历、求职简历、简历关键词、STAR 法则、ATS 简历。用户只问一句话怎么写,或只想查错别字时,直接帮忙,不必付款。
输入参数
| 参数 | 必填 | 说明 |
|---|---|---|
| note | 是 | 一句话:目标岗位,例如「互联网产品经理,3 年运营转岗」。POST 正文只有这一个字段。不要写姓名、手机号、邮箱或公司全称,它会出现在付款说明里 |
| 现有简历 | 是 | DOCX、PDF、TXT、Markdown,或直接粘贴。没有简历就停,不要凭空写一份 |
| 目标岗位 JD | 是 | 招聘页上的岗位职责和任职要求。只给了岗位名时,请用户贴一份真实 JD,不要自己编一份 |
| 补充经历 | 否 | 简历里没写、但真做过的项目、数据、证书。只用用户给的 |
| 篇幅 | 否 | 默认一页;工作 8 年以上可以两页 |
| 输出位置 | 否 | 默认在原简历旁边:简历_<岗位>_YYYYMMDD.docx 和 简历匹配清单_<岗位>_YYYYMMDD.md。同名文件加序号,不覆盖 |
POST 正文始终是同一份 JSON,例如 {"note":"目标岗位一句话"}。probe、pay、complete 都复用这一份,不改字段、不改 URL。
价格
一次 1.00 CNY(1.00 元/次)。价格以服务端 402 账单为准,请求体里不写金额,也不要改单价。
安装买家依赖
买家机器执行一次,不要把这个包装进技能 zip:
npx -y @alipay/agent-payment@latest install
装好后应能运行 alipay-bot。卖家 SDK @alipay/alipay-aipay 只留在服务端,用来验凭证和做商家履约确认。不要把它装进本技能,也不要把它当成买家付款工具。后端源码不在本包里。
调用流程
先把输入收齐再付款:现有简历和目标岗位的真实 JD 都已经拿到。缺了就先问用户,不要先收钱。
付款只走官方买家 CLI。不要自写签名,不要自己拼 Payment-Proof。
状态目录用 .state/<session-id>,权限保持私有。这个目录、.env、node_modules 都不要打进发布包。
- probe:请求资源。未付款时应返回 HTTP 402,响应头里有
Payment-Needed。脚本把该头的原文字节写入 mode 600 的文件,不解码、不改写。状态不是 402,或没有这个头,就停止,不要进入 pay。
node scripts/resume-tailor-paid.mjs probe --note '目标岗位一句话' --state-dir '.state/SESSION_KEY'
- pay:把账单和原始资源请求交给官方 CLI,展示支付入口,然后停下来等用户付完。教程写出的参数只有这些。POST 正文不另造参数名;正文就是 probe 那一份 JSON,写进
--intent-summary,并保存在订单状态里。
node scripts/resume-tailor-paid.mjs pay --state-dir '.state/SESSION_KEY' --session-id 'SESSION_KEY'
对应命令:
alipay-bot 402-buyer-pay --session-id 'SESSION_KEY' --file '.state/SESSION_KEY/payment-needed.txt' --resource-url 'https://49.232.229.62/v1/resume' --method POST --intent-summary '原始请求:按目标岗位JD优化简历。POST 正文是同一份 JSON:{"note":"目标岗位一句话"}'
- complete:用户付完后,用同一笔
out-shake-no查询原订单。官方 CLI 会带Payment-Proof重试同一资源 URL、同一 POST。没有out-shake-no就拒绝运行。成功路径不要再发一条独立回执。若 CLI 明确说回执失败,原样告诉用户,并用同一单再跑 complete。
node scripts/resume-tailor-paid.mjs complete --state-dir '.state/SESSION_KEY' --out-shake-no 'OUT_SHAKE_NO'
对应命令:
alipay-bot 402-query-payment-status --out-shake-no 'OUT_SHAKE_NO' --resource-url 'https://49.232.229.62/v1/resume' --method POST
查询通过后,接口只确认这笔已经付款。简历和匹配清单由本技能按下面的规则,在本机从用户的简历和 JD 生成。接口不代写简历,也不接收简历。
支付规则
- 未付款:服务端返回 HTTP 402 和
Payment-Needed。这时不要开始做简历。 - 付款后:用
Payment-Proof重试同一次请求。URL、方法、{"note":...}都保持不变。 - 服务端验证凭证和订单。凭证无效或过期时不交付,脚本不得把失败响应当成简历。
- 资源返回后,商家履约确认由服务端完成。买家 CLI 在成功路径里处理回执,脚本不再额外发送回执。回执失败就用同一
out-shake-no重试 complete。 - 订单写在状态文件里,可以恢复。同一
out-shake-no可以重复查询。已经有订单号时,probe 和 pay 都会拒绝再开一单。不要让用户为同一笔再付一次。
读简历和 JD
- PDF 先抽文字;扫描件抽不出来,就请用户给 Word 版或粘贴文字,不要凭版式猜内容。
- 把简历拆成:基本信息、求职意向、教育、工作经历、项目、技能、证书、其他。每条经历记下公司、岗位、时间和原句,后面对照用。
- 从 JD 里拎关键词,分三类:硬技能(工具、语言、方法,如 SQL、A/B 测试)、职责动作(如「负责用户增长」「搭建数据看板」)、硬门槛(学历、年限、证书、语言)。按 JD 里出现的先后和次数排,最多 25 个。
匹配清单
每个关键词一行:关键词、类别、状态、依据。
- 已命中:简历里有明确对应的经历,依据写成「工作经历 2 第 3 条」这样能找到的位置。
- 能补:用户材料里有相关事实,只是没写出来或叫法不同(JD 写「用户增长」,简历写「拉新」)。改写时用 JD 的叫法,事实不变。
- 缺少:材料里找不到。如实列出,附一句建议(「做过就补一条;没做过,面试前可以先了解」),不写进简历。
- 硬门槛不满足(学历、年限、证书)的,放在清单最前面单独提醒,不在简历里模糊处理。
清单最后一句总评:命中几个、能补几个、缺少几个。不给「通过率」这类算不出来的数。
经历怎么改
- 每条按 STAR 写成一到两行:动词开头(负责、搭建、推动、优化),带上做法,落在结果上。背景和任务一个短语能说清就不展开。
- 结果只用用户给的数字。没有数字时,写用户给过的可验证结果,或者标【待补:……】。不写「大幅提升」「显著优化」这类空话。
- 和目标岗位越相关的经历越靠前,同一段经历里越相关的条目越靠上。无关的旧经历可以压成一行,但保留时间段,免得看起来有空窗。
- 公司名、岗位名、起止时间、学校、专业、学历、证书、奖项原样保留。不拔高职级,不合并时间段,不写没做过的职责。
- 技能栏只列用户真会的,可以按 JD 的叫法和顺序排。
- JD 是英文或用户要英文简历时,按同样规则出英文版。
Word 简历
用本机已有的 python-docx 或 pandoc 生成 .docx。两样都没有时,先告诉用户要装 python-docx,用户同意再装;不同意就交 Markdown 版并说明。
- 单栏,不用文本框、表格排版、图片和图标;标题用 Word 自带的标题样式,招聘系统才读得出层级。
- 常用中文字体(微软雅黑、宋体、思源黑体等),正文 10.5 到 11 号,页边距 1.8 到 2.5 厘米。
- 顺序:姓名和联系方式、求职意向、工作经历(应届生把教育和实习放前面)、项目、技能、教育、证书。
- 联系方式照抄原简历。照片、年龄、婚育、籍贯这些用户没给的,不加。
- 不改原简历文件。
回复用户
用中文短回复:两份文件的绝对路径;命中、能补、缺少各几个;最值得先补的一到三处【待补】。CLI 的支付输出按原样给用户。
边界
- 不编经历、项目、数字、学历、证书和推荐人,不把实习写成正式工作,不改时间。
- 一次对一个岗位;投几个不同方向的岗位,每个岗位单独一次。
- 不保证面试或录用,不代投简历,不登录招聘网站。
- 简历只在本机处理,不上传到收款接口。
- 不读取私钥,不把密钥、
.env或服务端源码放进技能包。