mcpField
C
cold-email-outreach

cold-email-outreach

github.com/hyperfx-ai营销与增长107189 次安装2 天前更新
代码仓库

关于 cold-email-outreach

面向销售团队的冷邮件外联技能,覆盖潜客研究、个性化邮件起草、发送、跟进和回复分类。它通过 Hyper MCP 编排 Apollo、Firecrawl 和 Gmail 等工具,并默认先提供草稿供审核。

主要功能

  1. 01按 ICP 搜索并补全潜客信息
  2. 02收集个性化邮件所需信号
  3. 03按框架起草冷邮件
  4. 04安排邮件发送与跟进
  5. 05分类并跟踪回复

适用场景

  1. 01为目标客户群建立外联名单
  2. 02根据公司动态撰写个性化开场
  3. 03审核邮件草稿后开展外联活动
  4. 04追踪回复并处理退订

MCP 相关

通过 Hyper MCP 调用 Apollo、Firecrawl、Gmail 及可选的 LinkedIn 抓取工具,管理潜客研究、邮件起草与发送以及回复分类。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hyperfx-ai/marketing-skills --skill cold-email-outreach

安装后在 Claude Code 中输入/cold-email-outreach确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
deliverability.md
follow-up-sequences.md
frameworks.md

详细介绍

冷邮件外联

端到端冷邮件外联:调研、撰写、发送、跟进、分流回复。策略基于经验证有效的吸引点框架(数字开头/提问/痛点/利益优先);执行通过 Hyper MCP 使用 Apollo、Firecrawl、LinkedIn scraper 和 Gmail。

不在范围内 — 请转交给其他技能

请求转交给
面向已建立联系的潜在客户的生命周期/培育序列(欢迎、引导、重新互动、挽回)email-lifecycle(计划中)
LinkedIn 私信、连接请求或 Sales Navigator 工作流(计划中)
回复后的潜在客户评分、分流、交易阶段更新crm-revops(计划中)
抓取竞争对手的广告meta-ads-library

要求

  • 已安装并连接 Hyper MCP。 https://app.hyperfx.ai/mcp
  • 已连接 Gmail 集成,网址为 https://app.hyperfx.ai/apps — 提供发件账户。
  • 已连接 Apollo 集成 — 提供潜在客户搜索和邮箱信息补全。
  • Firecrawl(内置)— 用于获取公司页面信号。
  • 可选:LinkedIn scraper(内置,通过 Apify 运行)— 用于针对每位潜在客户进行更丰富的个性化定制。

如果 Agent 的工具列表中没有 gmail_messages_send 和 apollo_people_search,请停止并告知用户启用 Hyper MCP,并连接 Gmail 和 Apollo。

如何运行此技能中的工具

此技能中的每个工具都以其规范工具名称命名。使用当前界面提供的调用方式运行:

界面查找工具运行工具
MCP 客户端(Claude、Cursor、Codex、ChatGPT)search("<what you want to do>"),然后 describe("<name>")call("<name>", {...})
Hyper CLIhyperai search "<what you want to do>",然后 hyperai describe <name>hyperai call <name> --json '{...}'

如果找不到某个工具,则表示其集成尚未连接或尚未在工作区启用:请停止并告知用户需要连接哪个集成。

工具列表

阶段工具
潜在客户调研apollo_people_search、apollo_companies_search、apollo_people_match_bulk(2 位及以上潜在客户的信息补全优先使用)、apollo_people_match(仅用于单个潜在客户)
单个潜在客户的信号firecrawl_urls_scrape、firecrawl_urls_scrape_batch、firecrawl_branding_extract、firecrawl_screenshots_create、scrape_linkedin_profiles (有条件使用 — 需要 LinkedIn Apify 集成)
撰写gmail_drafts_create、gmail_drafts_update、gmail_drafts_get、gmail_drafts_list
发送gmail_messages_send、gmail_drafts_send、gmail_messages_reply
回复分流gmail_messages_list、gmail_messages_get、gmail_labels_create、gmail_labels_add、gmail_labels_remove、gmail_messages_move_to_label (使用 label_id 字符串,而非 label_ids 数组)

关键规则

  1. 绝不要针对多个潜在客户循环调用 apollo_people_match。 对于 2 条或更多记录,始终批量调用 apollo_people_match_bulk。Apollo 的工具说明对此有明确警告——循环调用单条匹配会浪费额度,而且速度慢得多。
  2. 默认发送模式 = 先创建草稿供审核。 对于包含 4 位或更多潜在客户的任何营销活动,先用 gmail_drafts_create 为前 1–3 位创建草稿,展示给用户并获得明确批准,然后再用 gmail_messages_send 批量发送其余邮件。未经展示样例,绝不要发送完整营销活动。
  3. 每次营销活动使用一个标签。 开始时用 gmail_labels_create 创建 cold/<campaign-name> 标签,应用到每封已发送邮件,然后通过搜索该标签来跟踪回复。这样才能让第 6 阶段的回复路由真正发挥作用。
  4. 遵守 Gmail 的发送限额。 消费者版 Gmail 账号每天约可发送 500 封邮件,Workspace 用户每天约可发送 2,000 封。分批发送——有关预热和每日发送节奏,请参阅 references/deliverability.md。
  5. 个性化内容必须与问题相关。 如果删掉个性化开场白,邮件依然说得通,那它就没有起到作用。开场白应自然地引出 你发邮件的原因。
  6. 每封邮件只提一个请求,只包含一个 CTA。 初次冷邮件中,基于兴趣的询问(Worth exploring?)比直接邀约会面更有效。
  7. 立即遵守退订请求。 收到任何“请将我移除/我不感兴趣”的回复时,都要应用 unsubscribed 标签,并且绝不再通过同一 Hyper 工作区向该地址发送邮件。

工作流

阶段 1 — 定义营销活动(始终先做这一步)

让用户明确以下内容:

  1. ICP — 职位、行业、公司规模、技术栈、地理位置。具体示例:“美国种子轮前至 A 轮 B2B SaaS 公司的增长负责人,员工 10–50 人,使用 HubSpot。”
  2. 请求内容 — 什么样的回复算“同意”?(15 分钟通话、异步回复、产品演示、介绍其他联系人。)
  3. 一句话价值主张 — “我们帮助 X 实现 Y,从而让他们能够 Z。”
  4. 证明点 — 一个具体成果:“我们帮助 Notion 在 90 天内将 CAC 降低了 31%。”(虚构示例比没有示例更糟——请获取真实案例。)
  5. 触发因素/信号(可选但很有用) — 融资、招聘、定价页面变更、近期博客文章、产品发布、领导层变动。
  6. 发件人 + 回复地址 — 用于发送邮件的 Gmail 账号。(使用 gmail_labels_list 确认集成已正常运行。)
  7. 发送量 + 频率 — 潜在客户总数、每日最大发送量、后续跟进间隔模式。

如果用户在其中任何一项上难以确定,请提出异议。没有证明点或明确请求的营销活动,无论文案多么巧妙,都不会有好的效果。

阶段 2 — 构建并丰富潜在客户名单
# Search by ICP
apollo_people_search(
  person_titles=["Head of Growth", "VP Growth", "Director of Growth"],
  organization_num_employees_ranges=["11,50"],
  person_locations=["United States"],
  per_page=50,
)

然后,针对确实要联系的潜在客户,批量补充邮箱信息:

# CORRECT — one bulk call for many prospects
apollo_people_match_bulk(
  details=[
    {"first_name": "...", "last_name": "...", "domain": "..."},
    ...up to 10 per call...
  ],
  reveal_personal_emails=True,
)

仅在查询单个潜在客户时,才回退使用 apollo_people_match(例如,用户粘贴了一个 LinkedIn URL)。

如需更深入的公司层面背景信息(行业、收入范围、技术栈),请按机构名称对要丰富信息的公司调用 apollo_companies_search。请注意,人员搜索结果已包含核心公司字段(员工人数、行业、所在地)——只有在需要人员搜索结果未提供的信息时,才调用 apollo_companies_search。

第 3 阶段 — 每位潜在客户的信号(个性化层)

针对每位潜在客户,收集一条与您所解决的问题相关的具体观察。使用有效且成本最低的信号:

成本工具用途
免费(已有数据)Apollo 响应字段职位变动、近期开始担任新职位、公司员工人数激增、融资
低firecrawl_urls_scrape 抓取招聘/定价/博客页面“贵公司正在招聘 4 名 SDR”“定价页面显示企业版即将推出”“最新博客文章谈的是 X”
低(多页面)firecrawl_urls_scrape_batch一次调用即可在多个网站获取相同观察
中firecrawl_branding_extract获取品牌语气,用于确定邮件语气;如果您要发送后续图片,也可获取品牌颜色
较高 (视情况而定)scrape_linkedin_profiles(profile_urls=[...]) (需要 LinkedIn Apify 集成 — 如果尚未连接,请跳过)近期帖子、共同联系人、近期职位变动、学校/雇主重合

个性化层级(针对本次营销活动,使用您能负担的最高层级):

  • 第 1 层(批量/低投入) — 名字 + 职位 + 公司 + 行业。只有当价值主张足够有力、单靠它就能撑起邮件时才可接受。回复率:低。
  • 第 2 层(基于信号) — 潜在客户处于相关职位/阶段,您所解决的问题对其尤为迫切(例如,刚上任、任职未满 60 天的增长负责人)。回复率:明显更高。
  • 第 3 层(基于观察) — 提及公司网站、定价页面、招聘页面或近期产品发布中的内容。这是最理想的层级。
  • 第 4 层(深入了解) — 提及对方近期发布的 LinkedIn 帖子、撰写的博客文章或发表的演讲。仅用于高价值目标。

低于第 2 层的个性化都应谨慎看待 — 仅替换 {{FirstName}} 不算个性化。

阶段 4 — 撰写邮件(默认先保存为草稿)

根据具体情况选择合适的框架。以下四种结构都很实用:

  • 观察 → 问题 → 证明 → 邀请 — “你们正在招聘 SDR。这通常意味着会议数与 SDR 数量的比率成了瓶颈。我们帮助 [company] 达成了 X。值得了解一下吗?”
  • 提问 → 价值 → 邀请 — “正在为 [problem] 发愁吗?我们能提供 [Y]。[Company Z] 获得了 [result]。想了解一下吗?”
  • 契机 → 洞察 → 邀请 — “祝贺你们获得 [funding/launch]。这通常会带来 [Y challenge]。我们帮助过类似的团队解决这个问题。想了解一下吗?”
  • 故事 → 衔接 → 邀请 — “[Similar company] 曾面临 [problem]。他们通过与我们合作,[solved it this way with us]。这对你们有参考价值吗?”

完整示例以及各类结构的最佳适用场景,请参阅 references/frameworks.md。

主题行。 简短、小写,看起来像内部邮件。2–4 个词。不用表情符号、不写名字、不耍紧迫感的花招。目标:看起来像同事发来的邮件。示例:quick question、reply rates、hiring ops、q3 forecast、for {{company}}。避免使用:Increase your revenue 10x!、John, are you free Thursday?、[URGENT] follow-up。

语气规则。

  • 像同行交流,而不是供应商推销。使用缩写。大声读一遍——如果听起来像营销文案,就重写。
  • “You/your”的数量应至少是“I/we”的 2 倍。
  • 每句话都应推动读者回复。最好的陌生邮件给人的感觉应该是还可以更短,而不是更长。
  • 根据资历调整:高管层 → 极简、平等交流。中层 → 更具体地说明价值。技术人员 → 表述精准、不说空话,并尊重他们的专业能力。

避免以下内容(审核者一眼就能看出的 AI 痕迹):

  • “希望这封邮件能顺利送达。” / “我看到了你的个人资料。”
  • “利用”“协同效应”“同类最佳”“领先供应商”“之后再联系”
  • 罗列功能。一条有力的证明胜过十项功能。
  • HTML、图片、多个链接。
  • 虚假的 Re: / Fwd: 主题行。
  • 只替换 {{FirstName}} 的完全相同模板。
  • 第一次联系就邀请对方通话 30 分钟。

默认采用先保存为草稿的发送方式(适用于任何联系对象达到 4 人及以上的营销活动):

# 1. Create label for the campaign once — capture the returned id
label = gmail_labels_create(name="cold/q3-growth-leads")
campaign_label_id = label["id"]

# 2. Draft the first 1-3 prospects for user review
for p in prospects[:3]:
    gmail_drafts_create(
      to=p["email"],
      subject="quick question",
      body=render_email(framework="observation", prospect=p),
    )

# 3. Show drafts to user, await explicit approval

# 4. After approval, send and label each message
for p in prospects[3:]:
    result = gmail_messages_send(
      to=p["email"],
      subject="quick question",
      body=render_email(framework="observation", prospect=p),
    )
    gmail_labels_add(message_id=result["id"], label_ids=[campaign_label_id])

如果用户希望审核每封邮件,请对所有邮件使用 gmail_drafts_create 创建草稿,并在获得批准后通过 gmail_drafts_send 发送。如果用户有把握,且模板已获批准(例如他们以前开展过这种形式的营销活动),则可以从第 1 位潜在客户开始,直接使用 gmail_messages_send。默认行为是先保存为草稿。

阶段 5 — 执行后续跟进节奏

总共联系 3–5 次,每次间隔逐渐拉长。每次跟进都要补充新内容——换个角度、提供新的证明,或分享有用的资源。“只是跟进一下”无法给读者任何回复的理由。

默认跟进节奏(根据用户的情况调整):

联系次数天数角度工具
10初始框架(观察/提问/契机/故事)gmail_messages_send
2+3在同一邮件线程中回复,补充一句具体的证明gmail_messages_reply
3+7换个角度(如果第 1 封采用观察角度,就尝试提问或先讲价值)gmail_messages_reply
4+14有用的免费资源——案例研究、计算器、拆解分析gmail_messages_reply
5+21结束跟进的邮件。“如果没有回复,我就先不再打扰了。我们保持联系,方便以后再聊吗?”gmail_messages_reply

务必在原始线程中回复(使用第 1 次发送返回的 message_id 调用 gmail_messages_reply)——这样既能保留上下文,也能提高邮件送达率。关于角度轮换、结束跟进邮件模板,以及如何在跟进序列中筛除潜在客户,请参阅 references/follow-up-sequences.md。

阶段 6 — 跟踪回复并进行分流
# Pull all replies on the campaign label from the last 7 days
gmail_messages_list(query="label:cold/q3-growth-leads is:unread newer_than:7d")

对于每条回复,使用 gmail_messages_get(message_id=...) 读取正文,进行分类并添加标签:

分类标签操作
感兴趣(“是 / 多说一些 / 发个日历邀请”)cold/q3-growth-leads/interested停止序列。移交(功能上线后再交给 crm-revops)。
异议(“我们用 X / 没预算 / Q4 再试试”)cold/q3-growth-leads/objection针对性回复一条,然后停止序列。
暂时不考虑(“晚些时候再联系”)cold/q3-growth-leads/not-now停止序列。重新标记,90 天后再次跟进。
取消订阅(“请移除我 / 不感兴趣”)cold/q3-growth-leads/unsubscribed停止序列。添加全局标签 unsubscribed。绝不再次联系。
不在办公室cold/q3-growth-leads/ooo暂停序列,在邮件所述的不在办公室结束日期后恢复。

使用两个单独的调用应用分类并清除未读状态:

gmail_labels_add(message_id=..., label_ids=[classification_label_id])
gmail_labels_remove(message_id=..., label_ids=["UNREAD"])

在分流循环开始前,使用 gmail_labels_create 创建一次这些子标签,并记录其 ID。

质量检查(发送前)

根据以下直觉检查逐封阅读草稿。若有超过一项不符合,则拒绝:

  • 听起来像真人写的吗?(大声读出来。)
  • 如果收到这封邮件,你会回复吗?
  • 每句话是否都在为读者服务,而非发送者?
  • 个性化内容是否与你要解决的问题相关,而非泛泛的赞美?
  • 是否有一个明确、低门槛的请求?
  • 主题行看起来像是同事写的吗?
  • 首次触达的邮件是否少于约 120 个词?

参考工作流

长篇材料可按需阅读:

参考资料阅读时机
references/frameworks.md选择框架、查看完整示例、按资历调整语气
references/follow-up-sequences.md构建多轮触达节奏、轮换切入角度、查看结束跟进邮件模板
references/deliverability.mdGmail 速率限制、发件人预热、SPF/DKIM/DMARC、名单卫生、解除屏蔽名单限制

评论

支持 Markdown