增长案例库 Maxed 归档 冷邮件与获客AI自动化

如何用一条 Claude Code 命令运行你的整个外呼流程

How to Run Your Entire Outbound From One Claude Code Command

中文译文 · 14k 字

一句话摘要

用一条命令自动化外呼

如何用一条 Claude Code 命令跑完你的整个外联 2026 年 7 月 23 日 · 12 分钟阅读 · 查看原文 ↗ Claude 自动化 LinkedIn 金融 一个 Claude Code 终端就能端到端地跑完你的整个外联回路。它拉取一份公司名单、对照你的 ICP 给每个线索打分、为每个客户画像、写个性化的开头、构建序列,并把它推进你的序列器。一条命令做完所有这些。 **机制是 hooks(钩子)。** 当一个阶段完成,一个 hook 自己触发下一个,所以没有任何事要等你导出文件或切换标签页。下面就是整个构建:仓库、组成管线的五个代理、它们跑的那套 1-100 打分 rubric、以及把它们串起来的 hooks。克隆它、放进你的密钥、当天下午就拿到一份真实名单上跑。 我为 275+ 家 B2B 公司搭建过进入市场(go-to-market)的系统。这就是那套设置本身,一步一步,而不是为它做推销。 --- ## 这个回路产出什么 你把管线指向一份 CSV,它至少有公司名一列。从那里开始,它按顺序跑五个代理,每个代理把输出写进下一个代理读取的文件。 ``` output/0-enriched.csv # 网络调研出来的字段,只有当你的输入很稀疏时才有 output/1-signals.csv # 每家公司的购买信号,按 HIGH → LOW 排序 output/2-prioritized.csv # 一个 1-100 的分数、一个层级,以及它背后的推理 output/3-profiles.csv # 供写作者使用的每客户画像 output/4-hooks.csv # 开头句,最多 120 个字符,附一个置信分数 output/5-sequences.csv # 完整序列,准备好推进你的序列器 ``` 每个阶段都是磁盘上的一个检查点。 你可以在运行中途打开任何文件,看清楚系统做了什么决定,编辑它,然后让下一个阶段接着你的编辑走。这里没有任何黑箱。 — 「一个工具跑整个栈,而不是一个人」 --- ## Hooks:各阶段如何自己串联起来 一个 hook 是一个小配置文件,把一个动作绑定到一个 Claude Code 生命周期事件上:Stop、PostToolUse、SessionStart、SessionEnd。当那个事件触发,hook 就运行一条命令。下面是仓库里的一个真实例子,那个在每次运行结束时触发的 Slack 提醒。 ``` // hooks/notifications/slack-ping-on-stop/hook.json { "hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "bash \"$CLAUDE_GTM_DIR/orchestrator/run.sh\" slack notify" } ] } ] } } ``` 模式永远一样。 在一个事件上,run.sh 派发到一个服务和一个动作,再转交给一个 Python handler。外联 hooks 共用那个精确的形状:apollo search 找线索来源、instantly push 装载活动、以及一次 Clay-table 同步让富化表保持最新。装完之后你再也不用碰这些管道。你把它感知成「自己会启动的步骤」。 > 每一个过去是人的交接,现在只是 Claude Code 里的一个触发器。 — 「每一步完成都会触发下一步」 --- ## 五个阶段,详细拆解 这是系统的核心,也是值得读两遍的部分。/outbound-pipeline 命令一个接一个地跑这五个代理,在下一个阶段开始前检查每个输出文件都存在。 — 「文件,以及它们跑的管线」 --- ### 阶段 1:信号抓取器(Signal Scraper) 读取你的 CSV,从每家公司里抽出购买信号。如果表格太薄,它先替你调研:任何缺三个或更多字段的公司会被送进网络搜索,补齐行业、员工数、招聘信息、近期新闻、技术栈和融资,富化后的版本写进 0-enriched.csv,这样你能看清它到底用了什么数据。 它把每个信号归进五种之一: - **招聘(HIRING)。** 新岗位、领导层招聘、一个明显在扩张的团队。 - **融资(FUNDING)。** 一轮近期融资、IPO 筹备,或一笔大投资。 - **技术(TECHNOLOGY)。** 一次技术栈变更,或一个新工具在进入。 - **增长(GROWTH)。** 员工数跳涨、新办公室、一次收购。 - **痛点(PAIN)。** 裁员、负面报道、一次转向、高层流失。 输出是每个信号一行,按 HIGH 到 LOW 排序,每行附一个 recommended_angle。这个阶段有意跑在 Haiku 上,因为在一大份名单上给信号打标签是量级工作,而便宜的模型能很好地处理它。 --- ### 阶段 2:线索优先级器(Lead Prioritizer) 这是名单从「一堆名字」变成「一个排好序的队列」的地方。每家公司拿到一个 1 到 100 的分数,由一个固定 rubric 构成,正好 100 分,分在三个桶里。 - **ICP 匹配,40 分。** 行业相关性(15)、公司规模对你最佳区间的契合(15)、技术栈对齐(10)。 - **信号强度,35 分。** 信号有多近、多具体(15)、出现了多少种不同的信号类型(10)、以及从阶段 1 带过来的 HIGH/MEDIUM/LOW 评级(10)。 - **参与潜力,25 分。** LinkedIn 活跃度(10)、发帖和评论之类的内容参与(8)、以及可接近性,意思是他们对待供应商有多开放(7)。 这些分数汇总成四个层级,每个层级告诉销售代表到底该做什么: ``` TIER_1 80-100 今天就做 TIER_2 60-79 这周做 TIER_3 40-59 培育,等一个更强的信号 TIER_4 0-39 暂时降级 ``` 一条规则让排名保持诚实。 当一个类别背后没有数据时,那个类别被限制在它一半的分数上,所以一家没有任何可见 LinkedIn 足迹的公司,在参与上最多只能拿 25 分里的 12 分,而不是靠猜混过去。每家公司出来时都带着它的 priority_score、它的层级、三个子分数,以及一两句的 scoring_reasoning。最后一列才是要读的那列,因为它告诉你这个数字是怎么得出的,也给了你一个可以反驳的东西。这个代理跑在 Sonnet 上,在这里额外的推理能回本。 > 一个附了推理的 62 分,比一个绿点告诉你的多得多。你能追溯它是怎么到那的,也能推翻它。 --- ### 阶段 3:潜在客户画像器(Prospect Profiler) 把每一家排好序的公司变成一份销售代表大约一分钟能读完、然后照着写的简报。对每个客户它产出: - 一个 100 词以内的 profile_summary:他们是谁、他们眼下正发生什么、以及为什么现在是一个合理的触达时机。 - 三到五个 key_talking_points,每个都绑定到一个具体信号,绝不是一个泛泛的行业套话。 - 一个 formal、casual 或 technical 的 communication_style,从行业、公司规模和联系人职位读出来。 - 可能的 potential_pain_points,从信号推断,而非想当然。 - 一个 recommended_approach,写成 channel | message_type | timing,例如 linkedin | social-proof | this week。 - 一个 HIGH、MEDIUM 或 LOW 的 data_quality 标记,好让你在依赖这份画像之前知道该信它多少。 它把力气花在钱所在的地方,给 TIER_1 和 TIER_2 客户最深的分析,让低层级保持简短但仍完整。这个也跑在 Sonnet 上。 --- ### 阶段 4:钩子写作者(Hook Writer) 写冷邮件的第一句,而且只写第一句,因为那一句就是「让第二句被读出来」的全部工作。每个开头句限制在 **120 个字符**,并按类型打标签: - **信号(SIGNAL)。** 锚定到一个具体的、可验证的事件。 - **洞察(INSIGHT)。** 把一个行业转变连到他们的处境上。 - **模式(PATTERN)。** 引用像他们这样的公司通常会做的事。 - **挑战(CHALLENGE)。** 就他们很可能感受到的一个痛点问一个尖锐的问题。 每一句都带一个 confidence_score 和一个 review_flag,这正是让你只把审核分钟花在那些站不稳的句子上。它还会丢掉那些会暴露模板痕迹的开头。这四类被直接禁止: ``` "I saw..." "Congrats on..." "I noticed..." "Hope you're well..." ``` 当它能找到的最强角度仍然很弱时,它会把这一句标出来给你,而不是去打磨一个烂想法。这个阶段跑在 Sonnet 上,因为一个好的第一句是判断,不是填充。 --- ### 阶段 5:序列构建器(Sequence Builder) 把每个开头句包进一个**跨 21 天、7 次触达的序列**,每一步都有一个不同的角度,所以没有哪条消息会重复前一条。它合并三个输入——阶段 4 的开头句、阶段 3 的画像、以及你的产品配置——然后把成稿写进 5-sequences.csv,准备好让 instantly push hook 发送。它在这里回落到 Haiku,因为结构已经定了,模型只是在填一个已知的形状。 --- ## 为你的产品配置它 管线只跟它背后的配置一样锋利。 一个文件,input/icp-config.csv,就是「适合你卖的东西的输出」和「读起来像任何人的输出」之间的区别。 ``` field,value product_name,... product_description,"One sentence on what you sell and who it's for" target_industries,"SaaS, Fintech, Healthcare Tech" target_company_size_min,50 target_company_size_max,500 key_value_props,"Prop 1|Prop 2|Prop 3" common_objections,"We already have this|Too expensive|Not a priority" case_studies,"Customer A: result|Customer B: result" sender_name,... sender_title,... sender_company,... ``` 放进真实值,两件事会变。 打分器把默认的 50-500 规模区间换成你的,写作者在构建 PATTERN 和 INSIGHT 句子时开始从你的 key_value_props 和 case_studies 里取料。留着占位符,整件事就在泛化模式里跑。在你第一次真正运行之前,花十五分钟在这个文件上。 --- ## 一条命令安装它 你不用写任何代码。克隆、安装、加一把密钥。 ``` git clone https://github.com/janskuba/go-to-market-orchestrator.git cd go-to-market-orchestrator ./scripts/install.sh ``` install.sh 一次性做四件事:从模板创建你的 .env 并导出 CLAUDE_GTM_DIR,把 skills 复制进 ~/.claude/skills/,把 agents 和 slash commands 复制进 ~/.claude/,并在给 ~/.claude/settings.json 打了一个带时间戳的备份之后,把每一个 hook.json 合并进去。 你想的话也可以分步安装: ``` ./scripts/install.sh --hooks-only ./scripts/install.sh --hooks=slack-ping-on-stop,instantly-push-campaign # 挑着装 ``` 把你的密钥加进 .env。要看着它跑起来,唯一必需的是 SLACK_WEBHOOK_URL,你从 Slack 工作区的 Apps → Incoming Webhooks 里拿。 ``` # .env SLACK_WEBHOOK_URL=... DATA_API_KEY=... INSTANTLY_API_KEY=... DRY_RUN=1 # 打印每个 hook 会发送什么,而不真的发送 ``` 然后在任何东西碰到真实收件箱之前验证。validate.sh 对照 Claude Code schema 检查每个 hook、编译每个 handler、在 dry-run 里跑每一个、并报告哪些集成是在线的。 ``` ./scripts/validate.sh ``` 把 DRY_RUN=1 一直开着,直到你看着一整轮运行打印出它的动作、并且你相信它们。然后再把它拿掉。 --- ## 跑整个回路 打开 Claude Code,把命令指向你的公司 CSV,然后放手。 ``` /outbound-pipeline path/to/companies.csv ``` 你也可以用大白话描述结果,如果打字拖慢你,就用语音工具口述。 ``` Source 100 heads of sales, score them against my ICP, write the openers, and load the campaign into Instantly. ``` 有一站是故意内置的。 在阶段 1 富化了一份稀疏表格之后,管线会暂停,在它花任何打分成本之前先给你看调研出来的数据,这样一个错误的猜测会在它蔓延进后面四个阶段之前就被抓住。其他一切都不带提示地跑过去。 — 「从一句话,到一个装载好的活动」 几分钟后名单建好了,打分器留住了那些过了你门槛的线索,开头句写好了也打了标记,活动躺进了你的序列器。你一个工具都没碰,也没有任何东西是靠手在工具之间搬运的。 --- ## 这到底买回了什么 看到手工版本悄悄累积的那张账单,会很有帮助。一个销售代表每周建五份名单,每份名单要经过大约八次交接:拉取、清洗、富化、粘贴进 CRM、写、修、装载、启动。每份名单大约 40 分钟的手工活。 — 「八次交接,而你就是那个粘合剂」 每周五份名单,让一个销售代表超过三小时纯粹在数据搬运上。放到一个 20 人的团队上,那一周就腾出 65 小时,也就是每年两个全职薪水,花在标签页之间搬运记录上。 — 「当粘合剂对一个团队意味着什么」 > 真正的转变是让一个工具去管其他所有工具,好让粘合剂不再是一个人类。 Hooks 就是把那 65 个小时变成一个在你团队卖东西时于后台运行的过程的东西。 --- ## 把它变成一个每周节奏 一旦单次运行跑通,就给它上时钟。管线是一个终端命令,所以一个 cron job 或任何调度器都能在周一早上启动它,在你坐下之前就把名单打好分、装载好。一个 SessionStart hook 已经随包提供,会在会话一打开时就预加载你的 skills,所以没有什么需要手工重新加载。 日志 hooks 让系统在运行时保持可追责。 daily-digest-slack 把一份运行摘要发到你的频道,local-markdown-transcript 保存每个会话的书面记录,cost-tracker-notion 记录每次运行花了多少钱。 所有这些都来自一个跨八个类别、30 个 hooks 的库:外联、CRM(HubSpot、Attio、Airtable)、通知、日志、内容,以及进 Make、n8n 和 Zapier 的 webhooks。大多数在它们的 API key 一落进 .env 就打开。 --- ## 从哪开始 克隆仓库,跑 install.sh,用你真实的产品和 ICP 填好 icp-config.csv,然后在 20 家你已经了解的公司名单上跑 /outbound-pipeline。从上到下按顺序读那五个输出文件。那一次跑完,就让你看清系统做的每一个决定,以及该在哪里调它。 从那里开始,它会复利。 你团队过去花在当粘合剂上的那些小时,悄悄消失了,而工作在他们真正卖东西时在后台照常做完。那一个改变,就是让一个团队领先于那些整天在十个打开的标签页之间来回跳的人的东西。 如果你宁愿租这个而不是建它,那正是我们在 Frontal 做的事。我们为销售、营销和 revops 构建完整的收入引擎。我们已经为 300+ 家 B2B 公司做过,其中一家我们在 10 个月内做到 783 万美元的合格管线,而一个 SDR 都没招。你可以在这里跟我们约个电话(https://frontal.so/?utm_source=x&utm_medium=article&utm_campaign=claude-code-outbound)。 不管哪条路,这周就做一件事。克隆仓库,跑一次。那第一个回路,就是永久改变你对外联看法的那个。 标签:# X # Claude # Automation # Linkedin # Finance # B2B # Guide # N8n # Sonnet 相关文章 I Fired Myself From Three Jobs in My Own Business. Here's the Exact Playbook: How to learn 80% of Claude Cowork in <20 minutes: How to Build $1B/ 1 Person Company Using AI

原文参考:https://maxed.wiki/posts/how-to-run-your-entire-outbound-from-one-claude-code-command/ (Maxed.wiki,本页为站内中文整理)