猎头公司用 Claude Code 批量写职位描述和招呼语的实操步骤
面向猎头和招聘顾问。用 Claude Code 批量生成职位描述与候选人招呼语,同时守住质量与个人信息。附提示词模板和校验脚本。
周五傍晚,坐我旁边的招聘顾问正抱着头发愁。
她这一周新接了 12 个职位。每个职位都要整理一份职位描述,再各自筛出 10 名候选人,给每个人写一段招呼语。实在忙不过来,她就把上一次发出去的招呼语正文复制过来,只换了公司名和岗位名就发了出去。第二天,候选人回了一条消息:「你写的我前一家公司,和我实际待过的不是同一家。」
是换的时候漏改了。在猎头公司干过的人,多少都干过这种事。招呼语要靠数量取胜,可一条的潦草,能瞬间把信任打碎。这个「量和质的两难」,我用 Claude Code 把它压到了一个比较现实的程度。今天就把步骤整理成能直接复制粘贴的形式。
本文要点
- 猎头公司写职位描述和招呼语,让 Claude Code 负责「批量出初稿」,最终判断只交给人,速度就上来了。
- 关键不是甩手不管,而是把职位信息和候选人摘要结构化后再交给它,并把语气和禁用表达定成规则。
- 个人信息里的姓名、联系方式要遮掉,只给岗位、经验、技能。前提是设置好「不把原始数据拿去训练」。
- 10 条招呼语的初稿,在我手上从大约 90 分钟缩到 20 多分钟。漏改公司名的事故,靠校验脚本拦住。
- 文中给了能直接复制的提示词模板,以及一段用 Node.js 机器检查公司名是否混入的脚本。
猎头公司的现场,时间都耗在哪里
我设想的读者,是同时对接企业和候选人、或者专门负责候选人的招聘顾问。一个人手上握着 20 到 40 个职位,一周要发几十条招呼语,还要和招聘企业开会。真正能坐下来写文案的时间,其实没多少。
从写文案的角度,把猎头公司的业务流程排一下,是这样的:
- 向招聘企业做需求访谈,拿到招聘要求
- 把招聘要求整理成能挂到平台或自家数据库的职位描述
- 在数据库里检索候选人,按匹配度筛选
- 给每个候选人写招呼语(或推荐信)
- 等回复,推进面谈安排
其中第 2 步和第 4 步,是纯手工写文案。同一个岗位,每家企业的职位描述也会有细微差别;招呼语如果不给每个候选人加一句「为什么是你」,连打开都不会有人打开。这块全靠手写,每人每天要烧掉 2 到 3 小时。
常见的返工和烦心事
我把现场反复听到的返工情况列成了表。
| 烦心事 | 起因 | 结果 |
|---|---|---|
| 招呼语里公司名、岗位名漏改 | 复制粘贴的习惯 | 失去信任,零回复 |
| 职位描述的措辞触犯平台规则 | 限定年龄、性别的表达 | 内容被退回 |
| 给每个人的那句话变成模板 | 没时间,反复套用 | 打开率下降 |
| 表达陈旧、啰嗦 | 沿用旧文案 | 没人读完就走了 |
这些都发生在「从零写一篇的辛苦」和「随手复制的诱惑」之间。Claude Code 正好补上中间那段,也就是「底稿自动生成,最后那一句话和事实核对才由人来做」。
交给 AI 的范围,和必须由人判断的范围
这条线如果不一开始就划清楚,迟早出事。我的运行规则是这样的。
| 环节 | 交给 Claude Code | 必须由人判断 |
|---|---|---|
| 职位描述润色 | 结构、措辞的初稿 | 薪资、工作地、硬性要求等事实 |
| 平台规则检查 | 指出危险表达 | 最终能不能发布的判断 |
| 招呼语初稿 | 文案骨架和那一句话的草案 | 对候选人的承诺、有没有夸大 |
| 候选人摘要 | 经历要点的整理 | 个人信息的处理方式 |
原则只有一条:事实和承诺由人来掌控。AI 擅长「又快又像模像样」地写,但它并不知道这个职位是不是真给到年薪 40 万,也不知道这个候选人是不是真有那项技能。能交给 AI 的是表达,不是事实。把这两者混为一谈,夸大的招呼语就会招来投诉。
如果你是第一次接触 AI 或 Claude Code,建议先看一遍给非工程师的 Claude Code 入门,能帮你建立起「什么能交、什么不能交」的直觉。
用例 1:从招聘需求笔记,生成职位描述初稿
招聘企业那边给的访谈笔记,多半是零散的要点片段。把它整理成一份能读的职位描述,是第一个自动化的切入点。
交给它之前,先把要给的信息结构化。如果把乱七八糟的笔记直接丢过去,AI 会擅自把缺的信息补上,写出根本不存在的福利。按下面这几项分开来给,是诀窍。
- 岗位、职位名称
- 硬性要求和加分项(只写事实)
- 薪资区间、工作地、用工形式
- 招聘背景(扩编、补缺等)
- 不能写的表达(限定年龄、性别等)
这时候,如果把职位描述的模板和禁用表达,当成项目的规则让它记住,就不用每次都重新交代。做法可以参考CLAUDE.md 的写法。
用例 2:从候选人摘要,批量生成招呼语
这才是重头戏。给每一个候选人加一句让人想打开的话。手工做是最累的一步,但只要结构化,就成了 AI 擅长的领域。
我把招呼语里一定要有的要素,列成了检查清单。初稿出来后,由人照着它逐条过目。
- 开头有没有具体说清「为什么发给你」
- 职位的公司名、岗位名对不对(有没有漏改)
- 有没有夸大,或者承诺了与事实不符的东西
- 有没有对候选人的经历做出失礼的武断判断
- 结尾的行动(约面谈等)有没有收敛到一个
10 个人一条条手写,要一个半小时。把摘要结构化后一次性出初稿,再用上面的清单由人来改,在我手上是 20 多分钟。
用例 3:平台规则和表达的自查
职位描述和招呼语里,有些表达是劳动相关法规和平台规则要避开的。「欢迎年轻人」「男性活跃」这种限定年龄、性别的说法就是典型。这个让 Claude Code 先做一次初筛。
不过,最终判断在人。AI 的提示只是「防漏看的警报」,并不保证法律上能不能用。请始终把它放在「辅助人眼」的位置上。
可直接复制的招呼语提示词模板
下面这段提示词可以直接贴来用。候选人信息请去掉姓名和联系方式后再填进去。
你是猎头公司招聘顾问的文案助手。
请按以下条件生成招呼语初稿。
# 职位信息
- 公司名:(直接填正式全称)
- 岗位:
- 硬性要求:
- 吸引点:(只写事实,禁止夸大)
# 候选人摘要(不包含姓名、联系方式)
- 现职的岗位和行业:
- 主要经验和技能:
- 推测的求职倾向:
# 输出规则
- 200 到 300 字。开头要具体写出「为什么发给这个人」。
- 不写不存在的业绩或薪资,不夸大承诺。
- 不使用限定年龄、性别的表达。
- 结尾的行动收敛到「约一次轻松的面谈」这一个。
- 公司名和岗位直接用给定的文字,不要改动。
这段提示词的关键在最后两行:让它把行动收敛到一个,并且不许改动公司名和岗位。光是这两条,回复率和出事率就会差不少。想把提示词的精度再往上提,可以一起看提示词设计进阶。
用机器拦住漏改的校验脚本
开头那起公司名混入的事故,光靠人眼盯,一定会复发。所以,要用机器检查写好的招呼语里有没有混进「不该出现的公司名」。这是一段用 Node.js 跑的小脚本。把初稿放进 scout.txt,把这次允许使用的公司名放进 allow.json,再运行。
import { readFile } from "node:fs/promises";
// 许可清单: { "company": "正确的公司名", "ng": ["过去项目的公司名等"] }
const allow = JSON.parse(await readFile(new URL("./allow.json", import.meta.url), "utf8"));
const text = await readFile(new URL("./scout.txt", import.meta.url), "utf8");
const problems = [];
// 1. 正文里有没有正确的公司名
if (!text.includes(allow.company)) {
problems.push(`正文里没有正确的公司名「${allow.company}」`);
}
// 2. 有没有混进不该出现的公司名(检测漏改)
for (const ng of allow.ng ?? []) {
if (text.includes(ng)) {
problems.push(`残留了禁止混入的公司名「${ng}」,可能是漏改`);
}
}
// 3. 有没有限定年龄、性别的表达
const banned = ["年轻人", "仅限男性", "仅限女性", "限 20 多岁"];
for (const word of banned) {
if (text.includes(word)) problems.push(`含有需注意的表达「${word}」`);
}
if (problems.length === 0) {
console.log("检查通过:发送前的机器核对已经过关");
} else {
console.log("停止发送。请先修正以下问题:");
for (const p of problems) console.log(" - " + p);
process.exit(1);
}
运行就这一句。
node check-scout.mjs
allow.json 的示例长这样。
{
"company": "示例科技有限公司",
"ng": ["上次用的公司名", "另一个项目的公司名"]
}
只要有问题,脚本就以退出码 1 中止。把它接进发送流程,「漏改就发出去」这种事在物理上就不会再发生。开头我同事那起事故,有了它本可以避免。Claude Code 本身怎么装,看第一次用 Claude Code,10 分钟就能跑起来。
个人信息和安全注意事项
猎头公司本来就是在处理「人的经历」这种最敏感的个人信息。这块马虎了,谈不上效率,只会变成事故。下面是我自己守的规则。
- 姓名、电话、邮箱、现职里能锁定身份的部门名,都不交给 AI。只给岗位、工作年限、技能。
- 能锁定候选人身份的信息,不要粘贴到公司管控之外的服务里。在所用 AI 的设置中,签约或配置成「输入数据不用于训练」。
- 输出的初稿在发送前,一定由人核对事实和专有名词。
- 招聘企业的未公开信息(比如公司名保密的职位)的处理,不能超出与企业约定的范围。
关于表达和个人信息处理的官方一手资料,可以查人社部就业服务相关页面。再结合各平台的规则,落到自家的内部规范里。
引入前后,到底变了什么(ROI 大致估算)
数字是我手上的粗略估算,请当作参考值来看。
| 项目 | 引入前 | 引入后 |
|---|---|---|
| 10 条招呼语初稿 | 约 90 分钟 | 约 20 分钟 |
| 1 份职位描述润色 | 约 30 分钟 | 约 10 分钟 |
| 公司名漏改 | 偶尔发生 | 校验脚本拦住,0 件 |
10 条招呼语大约能省下 70 分钟。一周发 30 条的话,差不多有 3 个多小时可以挪回到与候选人的对话和访谈上。猎头公司的价值不在写文案,而在看准人和企业,所以把省下的时间还回那里,才是真正的效果。想进一步把团队的协作效率也提上来,可以参考Claude Code 效率提升技巧。
常见问题
问:AI 写的职位描述和招呼语,可以直接发吗? 不行。只能当初稿用,公司名、薪资、要求等事实和专有名词,一定要由人核对。AI 并不知道事实。
问:不把候选人的名字和联系方式给它,能写出好招呼语吗? 能。招呼语需要的是「为什么发给这段经历的人」,靠岗位、经验、技能就够了。姓名和联系方式跟文案质量没关系。
问:文案会不会变得千篇一律? 把结构化的候选人摘要一个个分别交给它,开头那句话就会变。会有模板味,是因为把摘要潦草地凑一起就丢过去了。
问:我们没有 IT 部门,校验脚本跑得起来吗? 装上 Node.js,几行就能跑。觉得难的话,也可以让公司里负责业务改进的人,通过培训与咨询来推进落地。
实际试下来的结果
我用模仿真实职位的虚构数据,做了 3 份职位描述和 10 条招呼语来验证。确认的有 3 点。
第一,10 条招呼语的初稿时间。对比手写体感的 90 分钟,把结构化摘要交过去后,降到了 20 多分钟。开头那句话,只要给每个人分别改一下,模板味就没了。
第二,校验脚本的效果。我故意混进 4 条残留了上一个项目公司名的初稿,结果 4 条全部触发退出码 1 被拦下。限定年龄的表达也能检出。要是只靠人眼,肯定会漏掉好几条。
第三,不给个人信息,质量会不会掉。去掉姓名和联系方式、只给岗位和经验,招呼语的说服力并没有变弱。反而留下了「正是被你经历里的这点吸引」这个内核,读起来更清爽了。
结论是,猎头公司的招呼语工作,比起「全自动」,「初稿交 AI、事实和那句话交人、最终检查交机器」这三段式最现实。想以公司名义把它接进业务流程,从培训与咨询开始;想先自己动手试试,从教材与免费 PDF开始,比较推荐。
免费 PDF: Claude Code 速查表
输入邮箱即可获取一页 PDF,整理常用命令、审查习惯和安全工作流。
我们会妥善保护你的信息,不发送垃圾邮件。
让 Claude Code 真正进入可验证的工作流
先用免费 PDF 固定基础,再用 Gumroad 教材复用工作流;如果涉及团队导入、权限或收入路径,可以直接咨询。
关于作者
Masa
专注 Claude Code 实务流程、团队导入和内容转化的工程师。