关于 icp-prompt-builder
icp-prompt-builder 是 Claude Code 技能,通过小批量公司评分和反馈迭代,帮助销售团队校准理想客户画像(ICP)资格提示词,并保存以供批量筛选。
主要功能
- 01收集 ICP 背景与排除条件
- 02每轮评估 10 家公司
- 03通过用户反馈迭代提示词
- 04连续两轮无修正后保存提示词
- 05支持后续批量评分
适用场景
- 01在大规模筛选前校准资格标准
- 02根据业务反馈调整公司评分提示词
- 03将定稿提示词用于完整潜在客户名单
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ growthenginenowoslawski/ coldoutboundskills --skill icp-prompt-builder安装后在 Claude Code 中输入/icp-prompt-builder确认已加载。
详细介绍
ICP 提示词构建器
在花钱拉取 5,000 家公司之前,先用其中 10–50 家调优资格审核提示词。本技能将引导你完成迭代流程。
为什么需要它
名单构建工具(DiscoLike、Blitz、Prospeo、Google Maps)会返回公司,但它们不知道这些公司是否符合你的 ICP。如果名单构建工具返回 5,000 家公司,其中 80% 都不合适,你就会浪费钱去补充它们的邮箱信息,结果却毫无收获。
解决办法:在扩大规模之前,先构建 AI 资格审核提示词。拉取 10 家公司,让提示词为它们评分,再将结果与你的判断进行比较,然后优化并重复。提示词连续 2 轮都与你的判断一致且无需任何修正后,就将其定稿并大规模应用。
始终使用 Task 子代理(无需 API 密钥)
本技能完全通过 Task 工具在 Claude Code 内运行。不调用 Anthropic SDK,也不调用 OpenAI API——由 Claude Code 自行评分。这是有意为之:
- 无需额外的 API 费用。 使用你的 Claude Code 计划。
- 无需管理密钥。 开箱即用。
- 可在合理范围内扩展。 对于 20–100 次评估,可通过并行 Task 子代理批量处理,每个子代理处理 10–20 家公司。
在超大规模场景下(每批 5,000 家以上公司),你可能会想导出已调优的提示词,并通过 OpenAI / Anthropic API 并行运行以提升速度。但调优过程在 Claude Code 内进行。
流程(8 个步骤)
步骤 1 — 收集 ICP 背景信息
Claude 会询问用户(或从 /icp-onboarding 中读取 client-profile.yaml):
- 客户的网站(用于抓取背景信息)
- 谁是优质客户?他们符合条件的原因是什么?
- 谁不是优质客户?哪些因素会使他们不符合条件?
- 有哪些具体信号?(仅限 B2B、营收范围、技术栈、招聘状态、近期融资等)
- 有哪些硬性排除条件?(竞争对手域名、现有客户域名、特定行业/地区)
步骤 2 — 选择 10 家测试公司
从名单构建工具的输出中拉取 10 家公司:
- 兼顾可能合适和可能不合适的公司
- 覆盖不同的行业、规模和地点
- 每家公司至少需要包含:
domain, company_name, industry, headcount, description - 更丰富的字段(由 Clay 衍生:Business Type、Scale Scope、Revenue)有助于提高评分质量
步骤 3 — 构建初始资格审核提示词
模板:
You are an ICP evaluator for {CLIENT_NAME}.
## Target ICP
{ICP description from user or client-profile.yaml}
## Qualification criteria (MUST be true)
- {criterion 1}
- {criterion 2}
- ...
## Disqualification criteria (ANY match = disqualify)
- {disqualifier 1}
- {disqualifier 2}
- ...
## Input
You will receive a company with these fields:
- domain, name, industry, headcount, description
- (optional) Business Type, Revenue, Scale Scope
## Output
For each company, return JSON:
{
"qualified": true | false,
"confidence": 0.0-1.0,
"reason": "one-sentence explanation"
}
步骤 4 — 对 10 家公司运行提示词
通过 Task 工具运行。启动一个 Task 子代理,让它读取提示词和 10 家公司,并返回 10 个 JSON 评分。
步骤 5 — 向用户展示结果
按表格格式展示:
Company | Qualified | Conf | Reason
--------------------------+-----------+------+----------------------------------------
acme-corp.com | YES | 0.92 | B2B SaaS, 200 employees, target industry
random-nonprofit.org | NO | 0.95 | Nonprofit, not a business customer
edge-case-company.com | YES | 0.55 | Could fit but revenue model unclear
步骤 6 — 收集用户反馈
具体询问:
- 哪些评估有误?(例如:“acme-corp 应该是 NO,因为它们是竞争对手”)
- 哪些评估结果正确,但理由不对?
- 提示词遗漏了哪些模式?
- 需要添加哪些新的排除条件?
如果用户没有任何修正,就将本轮记录为“已批准”。
步骤 7 — 优化提示词(或继续下一步)
如果用户提出了修正:
- 添加/移除资格审核条件
- 收紧/放宽排除条件
- 添加边缘案例的具体示例(“像 X 这样的公司不合适,因为 Y”)
- 如果所有结果的置信度都为 0.5,则调整置信度阈值
然后回到步骤 4,使用新一批 10 家公司。
步骤 8 — 停止条件并保存
当连续 2 轮都没有收到用户修正时,流程结束。此时:
- 将最终调优后的提示词保存到
~/cold-email-ai-skills/profiles/<business-slug>/icp-prompt.txt - 在
client-profile.yaml中追加元数据:
icp_qualification_prompt:
path: profiles/<slug>/icp-prompt.txt
tuned_at: YYYY-MM-DD
rounds_to_convergence: 3
final_batch_size: 10
- 为下一个技能打印一行提示:
Prompt locked. To score your 5000 companies:
npx tsx ~/cold-email-ai-skills/skills/list-expander/scripts/score-batch.ts \
--prompt-file=profiles/<slug>/icp-prompt.txt \
--companies=path/to/companies.csv \
--out=scored.csv
审批循环规则(重要)
- 绝不自动批准。 即使提示词看起来没问题,也必须要求用户明确说“approved”,或连续 2 轮未提出任何修改意见。
- 出现任何修改意见时重置计数器。 一条修改意见就会将连续轮数重置为 0。
- 不要跳过批次。 一次性运行 30 家公司看似更快,却会掩盖错误。每批 10 家是合适的规模——少到可以逐一检查。
- 每轮都展示提示词。 每次优化后,都要向用户展示当前的完整提示词,让他们了解发生了哪些变化。
- 每轮评分都要使用 Task 工具子 Agent。 绝不要调用外部 API。
大规模使用优化后的提示词
保存后,提示词会通过 list-expander/scripts/score-batch.ts 应用于完整列表。选项:
选项 A(免费,较慢)——通过 Claude Code Task 子 Agent 运行,每个 Agent 每批处理 20 家公司。适用于总数少于 500 家的情况。
选项 B(付费,较快)——将提示词和公司数据导出到 OpenAI / Anthropic API,并行处理。适用于 500 至 50,000 家。
该脚本支持这两种方式。默认使用选项 A,确保所有操作都在 Claude Code 内完成。
推荐流程
/icp-onboarding→ 生成client-profile.yaml/disco-like或/blitz-list-builder或/prospeo-full-export→ 提取 50–100 家公司的样本/icp-prompt-builder→ 基于该样本优化资格判定提示词(通常需要 3–5 轮)- 将名单构建器扩展至 5,000 家以上的公司
- 将优化后的提示词应用于完整名单 → 仅保留
qualified: true且confidence >= 0.6的公司 - 对符合资格的子集使用
/blitz-list-builder或/list-builder(第 5 阶段,电子邮件) - 上传到 Smartlead
提示词可使用的数据点
大多数名单构建器的输出包括:
- 域名、公司名称、行业、员工人数、简介、LinkedIn URL
其他字段(如果已运行数据丰富化技能):
- 业务类型(B2B / B2C / B2B2C)
- 年收入范围
- 规模范围(Enterprise / Mid-Market / SMB)
- 子行业(比主要行业更具体)
- 技术栈(Clearbit、BuiltWith 数据)
- 近期信号(融资、招聘、新闻)
请在提示词的前置说明中告知 AI 你可以访问哪些字段。
常见错误
- 第一轮就把提示词限制得太严。 先从宽泛的条件开始,再根据反馈逐步收窄。
- 未加入反例。 “Netflix 这类公司不符合条件,因为它们是 B2C”比笼统地说“必须是 B2B”更有用。
- 只使用
qualified: true/false,不要求提供置信度。 始终要求提供置信度——0.5–0.7 的边界情况最值得学习。 - 一次给 50 家公司评分来“节省时间”。 这会让循环失去意义。
- 未保存提示词。 优化的意义在于重复使用。如果不保存,下次就得重新优化。
脚本
scripts/score-batch.ts— 将优化后的提示词应用于公司 CSV 文件
下一步
将优化后的提示词应用于完整名单(你之前使用的名单构建技能——Prospeo、Blitz、DiscoLike、Google Maps 或 Competitor Engagers——会指导你完成此操作)。然后使用 /list-quality-scorecard 为筛选后的结果评分。
**或者等待:**如果提示词在 5 轮内仍未收敛(你一直在提出修改意见),说明源数据可能过于单薄。请先补充更多字段(公司简介、员工人数、技术栈),再重试。
相关技能
/icp-onboarding— 首先运行,生成 client-profile.yaml/disco-like、/blitz-list-builder、/google-maps-list-builder、/prospeo-full-export— 提取此技能用于资格判定的公司/personalization-subagent-pattern— 相同的审批循环模式,用于文案个性化