一个 GTM 团队看起来像是一个发送操作。其大部分实际工作在于判断:哪家公司本周值得发一条消息,说什么才能证明你注意到了他们,哪些未到场的潜在客户需要跟进,以及到底是什么推动了销售漏斗的进展。
发送从来都是成本最低的部分。而判断,过去需要一整个团队来完成,现在正是一个人加上 Claude Code 就能端到端搞定的事情。
所以,别再以人数来思考,开始以任务来思考。
一个 GTM 团队就是一系列任务清单,而且大多数任务的结构都差不多:读取一堆数据,做出决策,写点东西,进行跟进,并记住发生了什么。
把每个任务连接到一个 Agent 上,给它们一个共享的记忆,然后为它们设定好日程。人们得到一个用户界面,软件得到一套 API,Agent 得到一条命令行,这样整个团队每天早上八点只需一行 cron 命令就能协同工作。每天早上它都会汇报情况,你的工作也因此从执行变成了编辑。
下面就是逐个岗位的构建过程,附带我粘贴给每个 Claude Code 的提示词。

团队名单:五个岗位
决定谁值得联系
对外拓展的难点从来不是发送本身。而是在此之前的判断:在市场上的所有公司中,哪一家本周值得去联系,以及你要说什么才能证明你注意到了他们。
这个判断就是第一个岗位。
它关注四种类型的动态,这是借助过去十年的市场数据不断缩小范围后得出的结果:
- 某个职位开放了,或者被重新发布。
- 某公司接触了竞争对手,或者发布了和你解决的问题相关的内容。
- 某公司发布了新品、进行了扩张,或者改变了技术栈。
- 有资金通过融资或收购流动。
它会针对每一条动态,对照那些真正符合条件的目标,并结合你对该客户已有的所有了解进行评分,然后根据触发事件本身起草信息。
它的一条铁律是:必须引用实际的变动。 “看到你重新发布了 RevOps 负责人职位,这是本季度的第二个运营岗位。” 绝不是“你好 {{firstName}}。” 如果这条信息在上个月发出去也完全没问题,那么就意味着这个触发事件被跳过了,这个客户需要等待。
1Write team/prospector.py: run(memory, source, delivery, icp, sequences, weights, offline, dry_run).2Sense new signals into the four buckets (job, social, company, funding) and write them to the shared3memory. Cluster by account. For each account, judge it against the ICP and the full history with4prompts/judge.md (Claude, temperature 0), falling back to a weighted-bucket heuristic that skips weak,5off-ICP signals. For the ones that clear the bar, draft from the strongest trigger with prompts/draft.md,6hand the draft to delivery (dry-run by default), and record the touch. Return ranked standup lines.
在每次通话前做好简报
在第一次通话之前,过去需要有人花二十分钟准备一份一页纸的概要:这家公司是做什么的,是什么触发了联系,你已经给他们发了什么,上一条线索在哪里断了。
把这个任务交给第二个 Agent。
它会利用和销售探测 Agent 写入的同一个记忆,为每一次预定好的通话撰写简报。当通话开始时,页面已经准备好了,上面有促成此次通话的触发事件、历史记录,以及一个最值得用来开场的话题。
再也不需要在晚上 11 点为第二天早上 9 点的通话做准备,每个人也都不会再毫无准备地进入通话了。
1Write team/researcher.py: run(memory, calendar, icp, offline).2For each call on today's calendar, pull the account's full history from the shared memory and write a3one-page brief with prompts/brief.md: what moved, what we already sent and how it landed, and the single4best thing to open the call on. Ground every line in the history, never invent. Fall back to a plain5template built from the latest signal when there is no API key. Return one standup line per call.
让序列流程自动跟进
信号是起跑线。序列流程是转化的关键,而这正是人们最不擅长的部分,因为后续跟进依赖于某个人记得要去跟进。我们会忘记,会犹豫不决,做了一次就放弃了。
所以,发送和跟进跑在 Overloop AI 中,以序列流程的形式自动运行,一旦 Agent 交出了控制权,它们就会自行触发。由 Agent 决定联系谁并写下首次联系的信息。Overloop 会根据日程安排,通过电子邮件和 LinkedIn 完成剩余的跟进,这样整个节奏就不再依赖于任何人的记忆力了。
1Write team/sequencer.py: run(memory, delivery, sequences, offline, dry_run, min_age_days, max_age_days).2Ask the shared memory for accounts whose last touch is a few days old and that have no reply or meeting3on the books. Draft a light follow-up that adds one genuinely new angle, send it into the follow_up4sequence, and record the touch. Leave fresh touches alone by honoring the min-age window. Return one5standup line per account.
赢回那些未到场的潜在客户
一个未到场的潜在客户,就是一个因为日程冲突而失之交臂的合格线索。他们从销售漏斗中流失,原因只有一个:手动恢复从未发生。
因此,同一个引擎会为每一次失约运行一个恢复序列。一周内四次联络,两个渠道,语气中不带任何指责:
- 失约后一小时:一个只需点击两次即可重新预约的链接。
- 第二天:在 LinkedIn 上发送相同的邀请。
- 第三天:分享一条与他们行业相关的有用信息,不作任何请求。
- 第七天:一次简单的最后通牒。
这让后续跟进不再受情绪左右,并且能挽回大约三分之一原本会无声消失的未到场客户。没有人需要记得去发送其中任何一条。
1Write team/recoverer.py: run(memory, calendar, delivery, sequences, offline, dry_run).2For each recent no-show from the calendar, enrol it into the no_show_recovery sequence defined in3config/sequences.yaml (four touches over a week, two channels, no blame in any step), record the touch,4and return a standup line. The cadence lives in config, not in code.
让每周报告自我调整
过去,每周五都有人需要整理复盘报告:发出了什么,预定了什么,卡在了哪里,销售漏斗的状况如何。最后一个 Agent 会从同一个记忆库中自动生成这份报告,每周一次,无需提醒。
然后,它会做出一份人工报告永远不会做的事情。
它会为自己的策略打分:持续带来会议预约的信号会得到更多权重,那些持续失败的话术会被淘汰。下个月的优先联系名单会根据市场的实际反应来排序,而不是你在年初猜测的重要事项。这份报告不再仅仅是上周的记录,而成了优化下一周工作的工具。
1Write team/reporter.py: run(memory, weights, days, offline).2Read the week's stats from the shared memory. Lead with the meeting count. Re-weight the four signal3buckets by win rate, counting a meeting more than a reply, with a floor so no bucket ever drops to zero.4Return the standup lines and the new weights for the next run. prompts/report.md writes the prose5version when a key is set.
每天早上运行的两条提示词
上面的每条构建提示词只运行一次。而这两条提示词每天都会针对每个客户运行,所以它们是需要保留和不断优化的关键。判断力和语言风格就藏在这里,用简单的文件呈现,而不是埋在代码深处。
销售探测 Agent 根据以下规则进行判断:
1ROLE You are the prospector's judgment layer. For one account, decide whether a buying signal is worth2acting on right now, and how.3INPUT { icp, new_signals: [{bucket, summary}], history, days_since_last_touch }4SCORING 80-100 strong ICP fit and a high-intent signal (funding, or two clustered); 50-79 good fit,5one solid signal; 20-49 weak fit or a lone low-intent signal; 0-19 off-ICP or noise6RULES Under 7 days since the last touch, prefer nurture or skip, never first_touch. If the signal is7weak or off-ICP, score it low and skip; saying no is part of the job. why_now must quote the actual8trigger, in words a rep could say to the buyer.9OUTPUT (JSON only) { "score": 0-100, "why_now": "...", "play": "first_touch|follow_up|nurture|skip", "rationale": "..." }
并且根据以下规则起草信息:
1ROLE You write the opening message. The signal is the reason you are reaching out, and the message has2to prove you noticed it.3INPUT { trigger, bucket, why_now, play, guardrails: {goal, must, never} }4RULES Open the first sentence on the trigger, never "Hi {{firstName}}". Connect the trigger to one5problem you solve, in a single sentence. Close with one low-friction ask. Plain sentences, mixed length,6no fake urgency, no em dashes, no buzzwords. If the message could have gone out unchanged last month, you7skipped the trigger; start over.8OUTPUT (JSON only) { "subject": "6-9 words", "body": "3-5 sentences" }
是什么让五个 Agent 成为一个团队

五个 Agent,一个共享记忆
五个各自为政、保有独立记录的脚本,称不上一个团队。将它们凝聚成一个整体的是单一共享记忆:每个客户对应一条记录,每个岗位都能读写它。
销售探测 Agent 在周一记录一次联络。序列流程 Agent 在周四读取它,发现没有回复,于是发送下一步。报告 Agent 在周五统计它并重新调整权重。同一条记录,唯一的事实来源。先搭建好这个存储库,保持其方法名称稳定,每个岗位都会依赖它,而不是凭空猜测。
一个人如何运营它

每日晨会汇报
你不需要操作这个系统,你是来编辑它的,这是一个更小且截然不同的工作。
在你醒来之前,团队就已经通过 cron 开始工作了。当你坐下时,每日站会汇报已经在 Slack 上等着了:今天要联系谁以及为什么,你日历上每个通话的简报,正在被跟进的未到场客户,上周的数据根据实际预约情况进行了重新调整。两分钟的时间:批准、编辑或删除。
无需构建名单,无需猜测主题行,无需周一开会讨论该联系谁。整个团队每月运行成本大约 400 美元的 token,这就是整个部门的全部运营开销。剩下的就是编辑的工作:对团队呈现在你面前的内容具备品味,并对大部分内容说“不”。
人类依然占据优势的地方

人类留在这里
这并不能掌管整个市场推广流程,而它跳过的部分恰恰是最重要的。Agent 决定联系谁并写下第一句话。 它们不负责成交,也不负责建立那种能让买家在一年后预算最终到位时选择你的关系。
当回复中带着真正的问题、犹豫,或者一句轻声的“我们不确定这是否适合我们”时,那是人类的对话,也应该继续保持为人类的对话。这个系统非常擅长帮你进入房间,但一旦你进去了,它就没什么可说的了。
所以,那些你本会投入到重复性劳动上的人,可以转向他们一直更有价值的地方:通话、信任、成交。这个团队为你赢回了那些过去耗费在决定谁值得联系上的时间,并将它们投入到那些决定交易成败的对话中。
获取这个团队
我把所有内容打包成了一个可克隆和运行的代码库:五个岗位、它们运行所依托的共享记忆、承载判断力和语言风格的提示词,以及将它们串联起来的每日站会汇报。
1gtm-team/2 team/ prospector · researcher · sequencer · recoverer · reporter3 core/ memory · models · adapters · llm4 prompts/ judge · draft · brief · report5 config/ icp · sequences · signals · team6 run.py the morning standup
这是一个能正常运行的构建版本,不是我们在 Sortlist 内部使用的技术栈。销售探测 Agent 就是上次发布的 gtm-brain。这次的是它周围的团队。
回复 TEAM,我会发给你。 请关注我,这样私信才能送达。
如果你更希望让它为你运行,而不是自己去配置,那可以用 MAX:同样的理念,但隐藏了所有细节。它是一个你可以与之对话的 Agent,能监控信号,通过电子邮件和 LinkedIn 运行序列流程,并把每日站会汇报交给你,背后有十年积累的、你无法从公共 API 获取的买卖方匹配数据作为支撑。访问: yourmax.ai





