mcpField
C
cold-email-sequence-generator-skill

cold-email-sequence-generator-skill

github.com/scientiacapital营销与增长2840 次安装3 周前更新
代码仓库

关于 cold-email-sequence-generator-skill

这是一项 Claude skill,可将经过筛选的联系人和价值主张转为可审核的多触点冷邮件 Gmail 草稿。它强调线索与声明核验、品牌文案检查,并只创建草稿、不发送邮件。

主要功能

  1. 01起草前筛选联系人
  2. 02生成不同触点数量的序列
  3. 03核验产品与竞品声明
  4. 04按品牌风格检查文案
  5. 05创建含 A/B 主题的 Gmail 草稿
  6. 06支持可配置的序列变体

适用场景

  1. 01为新潜客准备外呼邮件序列
  2. 02制作重新互动或活动邮件
  3. 03创建草稿供人工审核后发送

MCP 相关

使用 Epiphan Brand MCP 获取写作风格并检查文案,使用 Epiphan Knowledge 搜索核验声明,并通过 Gmail 工具创建草稿。不会发送邮件。

安装

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

$npx skills add https://github.com/scientiacapital/skills --skill cold-email-sequence-generator-skill

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

附带文件config.json

详细介绍

将经过资格审查的联系人列表和价值主张转化为多触点冷邮件序列,输出为一组可供审核的 Gmail 草稿,而不是聊天文本。每封邮件都包含 A/B 主题行、一个 CTA、发送时间安排和一封结束邮件。产品事实来自 Epiphan 目录,品牌语调来自 Epiphan Brand MCP,收件人列表来自 `qualify_lead`。 关键词:`cold email sequence`、`email campaign`、`outbound sequence`、`nurture`、`re-engagement`、`breakup email`

<quick_start> 按调用顺序使用工具:

  1. 输入 — 联系人列表(HubSpot 列表 ID、CSV 或指定联系人)、垂直行业、序列类型、价值主张、佐证要点。缺少列表 → 询问;缺少垂直行业 → 根据域名推断并标记。
  2. 变体 — 读取 config.json;如果 variants.enabled,运行 bash scripts/variant-assigner.sh cold-email-sequence-generator-skill $(date +%s),并应用已分配的 prompt_suffix。
  3. 关卡 Q — 对每位联系人运行 qualify_lead。已排除的联系人不纳入;STALE AE LEAD 行列出给 Tim,不起草邮件;根据判定结果中的 ATL 层级确定顺序。
  4. 关卡 S — 对序列中涉及的每项产品、规格或竞品声明,先运行 search_product_catalog,再运行 Epiphan Knowledge search。未验证的内容 → 在草稿中标注 [spec unverified]。
  5. 关卡 B — 运行一次 get_writing_style,然后对每个主题行和正文运行 check_my_copy。
  6. 关卡 D — 对每位联系人、每个触点运行一次 mcp__claude_ai_Gmail__create_draft,发件人为 [email protected],主题前缀为 [Seq N/M]。绝不调用 send_message。
  7. 交付 — 提供摘要表(联系人/层级/已起草触点数/关卡标记),以及下方的旁车文件和运行日志行。发送由 batch-send-drafts-skill 负责。 </quick_start>

<house_rules> 面向客户的技能。输出前,按顺序运行各关卡(详情:~/.claude/skills/epiphan-house-rules-skill/reference/gates.md): S:提出任何产品声明前,先通过 Epiphan AI 运行 search_product_catalog,或通过 Epiphan Knowledge 运行 search。B:对每条面向客户的文本运行 check_my_copy。 Q:获取候选联系人后立即运行 qualify_lead,并在分层、补充信息或起草邮件前完成。D:外发文本必须成为 Gmail 草稿,绝不能直接发送。 标识符(所有者 ID、门户、电子邮件、席位)应从该技能中的 reference/identifiers.md 获取 — 不要在此处重述。 任何关卡失败时,遵循 reference/self-healing.md(重试、降级并添加标记、通知 Tim、停止),并在 ~/.claude/skill-runs/.jsonl 中追加一行。 </house_rules>

<variant_support> 此技能通过 config.json 支持 A/B 变体。

  1. 读取此技能的 config.json — 检查 variants.enabled 是否为 true
  2. 如果已启用,运行:bash scripts/variant-assigner.sh cold-email-sequence-generator-skill $(date +%s)
  3. 应用已分配变体定义中的 prompt_suffix,以调整工作流
  4. 在结果旁车文件中记录变体名称(见最后阶段)

当前实验: cold-email-subject-style-001

  • control:标准 7 封邮件框架
  • concise:5 封邮件框架,每封最多 50 个单词 </variant_support>

<success_criteria>

  • 在起草任何邮件前,已对每位联系人运行 qualify_lead;报告已排除联系人和过期 AE 线索,不为其起草邮件
  • 已选择序列类型(经典 7 封、快速 5 封、长期 12-14 封、基于活动、重新互动)
  • 每项产品或竞品声明都可追溯至 Epiphan Knowledge search 结果,或标注 [spec unverified]
  • 每个主题行和正文均通过 check_my_copy;起草前已应用修改
  • 每位联系人、每个触点均有一封 Gmail 草稿,发件人为 [email protected],主题前缀为 [Seq N/M]
  • 每封邮件都有 A/B 主题行、一个 CTA 和发送日偏移量;最后一个触点为结束邮件
  • 已写入结果旁车文件和带关卡标记的运行日志行 </success_criteria>
## 阶段 1:输入与候选人提取

接受以下任一输入:HubSpot 列表(hubspot_list_members)、HubSpot 搜索(hubspot_search_contacts)、 CSV 或指定联系人。逐个联系人记录:邮箱、名字、职位、组织、垂直行业、HubSpot ID。 逐个序列记录:类型、价值主张、Tim 希望采用的证明要点、个性化切入点。

阶段 2:关卡 Q — qualify_lead

对每个联系人调用 qualify_lead。按返回的判定执行:排除客户、渠道合作伙伴、仅与产品互动的联系人、 已抑制联系人,以及由 AE 负责且活跃的联系人;在摘要中列出 STALE AE LEAD 行,供 Tim 决定。 保留 ATL/GRAY/BTL 级别用于排序(ATL 优先)。如果重试一次后 qualify_lead 仍不可用:暂停、 保存状态并告知 Tim——不要向未经筛选的名单起草邮件。

阶段 3:序列设计

类型触达次数时长适用场景
经典72 周全新冷名单
快速推进51 周有互动或与活动相关的名单
长期培育12-144-6 周按预算周期或 RFP 时间安排的客户
活动/触发3-5视活动而定Extron SMP EOL、新楼宇、录制失败、会议
重新互动52 周已停滞的交易或超过 90 天未互动的联系人

邮件角色(经典序列,共 7 封):

#角色目标长度CTA
1自我介绍重新审视问题,不提产品名称50-100 个词温和提问
2价值证明已验证的证明要点75-125 个词指定时间
3不同角度另一种痛点50-75 个词是/否问题
4社会认同同行认可(已验证)60-90 个词简单回复
5分享资源先提供,再请求40-60 个词“有用吗?”
6直接请求直接提出会议请求30-50 个词日期/时间
7结束联系征求结束联系的许可25-40 个词“我该关闭您的档案吗?”

时间安排:第 0、2、4、6、8、10、14 天。收件人所在时区的周二至周四上午效果更好;避免周一收件箱堆积以及周五下午。请在每份草稿的主题行备注中记录日期偏移量,以便 batch-send-drafts-skill 按顺序排列。

阶段 4:关卡 S — 规格与声明验证

撰写任何正文之前:对每个提及的产品调用 search_product_catalog(确认 SKU 仍在售;对于 EOL 产品,只能说明其已停产,绝不提供规格),然后通过 Epiphan Knowledge 的 search 查询准确的规格、功能或竞争对手事实。证明要点和案例引用必须来自知识库查询结果或 Tim 提供的输入;绝不编造客户、数字或引言。未验证的声明 → 在文中写入 [spec unverified],并将结果设为 partial,注明阶段 4。

阶段 5:关卡 B — 品牌语气,然后撰写

每个会话调用一次 get_writing_style。根据下方模板撰写每次触达内容,然后对每个主题行变体和每篇正文运行 check_my_copy;在阶段 6 前应用修正。如果 Brand MCP 重试一次后仍不可用:继续起草,在每篇正文前加上 [brand check skipped],结果设为 partial,注明阶段 5。

阶段 6:关卡 D — Gmail 草稿

对每个联系人、每次触达调用一次 mcp__claude_ai_Gmail__create_draft,发件人使用 [email protected]:

  • 主题:[Seq N/M] <效果更好的 A/B 主题>——将备用主题放在正文第一行,格式为 A/B alt: …,以便 Tim 在审核时替换。
  • 正文:经 check_my_copy 批准的触达内容,签名遵循 identifiers.md。
  • 绝不调用 send_message 或 reply。Gmail 写入失败 → 重试一次,然后在摘要中报告该次触达未起草(结果设为 partial,阶段 6)。

阶段 7:摘要

SEQUENCE STAGED — <type>, <M> touches, <date>
 Contact              Tier   Drafts   Flags
 J. Smith (u.edu)     ATL    7/7      —
 R. Lee (city.gov)    GRAY   7/7      [spec unverified] x1
 K. Ng (hosp.org)     —      0        STALE AE LEAD (Ron Epstein, 112d) — Tim decides
Excluded by qualify_lead: 4 (2 customer, 1 partner, 1 AE-active)
Next: batch-send-drafts-skill to review and send.

邮件模板

方括号内的内容只能来自阶段 1 的输入和阶段 4 已验证的事实。

邮件 #1:自我介绍

主题行(A/B 测试):

  • A(引发好奇):Quick question about [org]'s [specific challenge]
  • B(价值):[Verified outcome] for [org type]
  • C(个性化):[Name], saw your post about [specific topic]
Hi [First Name],

I noticed [specific observation about their org/role] and thought you might be facing [specific challenge].

Teams like [verified peer org type] have [verified outcome] without [common objection].

Worth a quick 15-minute conversation to see if the same applies at [org]?

[Signature]

P.S. - [Personalized one-liner from research]
邮件 #2:价值证明

主题:“[peer org type] 如何实现 [verified result]”

[First Name],

Following up — wanted to share how this worked for a [peer org type].

They were [situation]. In [timeframe], they:
- [Verified result #1]
- [Verified result #2]

They got started without [common objection].

Would [Day] at [Time] work for 15 minutes?

[Signature]
电子邮件 #3:不同的角度

主题:"关于 [org],我有个不同的想法"

Hi [First Name],

I realize [original pain point] might not be top of mind right now.

But what about [alternative pain point]?

Most [their role]s tell me [common complaint], which is why [mini value prop, no spec unless verified].

If this hits closer to home, happy to share how [quick win].

[Signature]

P.S. - If neither is relevant, just let me know and I'll stop.
电子邮件 #4:社会认同

主题:"[Mutual connection] 建议我联系您" 或 "看看 [peer] 如何应对 [challenge]"

[First Name],

I was speaking with [title] at a [peer org type] about [challenge].

Here's what they said after [solution]:
"[Quote supplied by Tim or from knowledge base — never invented]"

Open to a quick call to hear what's working in [vertical]?

[Signature]
电子邮件 #5:分享资源

主题:"我想您可能会觉得这个有用"

[First Name],

No ask here — just sharing something helpful:

[Resource description]: [Link]

We put this together after hearing [their role]s struggle with [pain point]. Useful even if you never buy anything from us.

Hope it helps.

[Signature]
电子邮件 #6:直接询问

主题:"我们开门见山吧"

[First Name],

Let me be direct: I think we could help [org] [achieve outcome] based on [observation].

I'd like to show you:
1. [Specific thing #1]
2. [Specific thing #2]
3. [How peers in your role use it]

15 minutes. No pressure. How's [day/time]?

[Signature]
电子邮件 #7:结束联系

主题:"我该关闭您的档案吗?"

[First Name],

I'll assume [topic] isn't a priority right now — totally fine.

I'll close your file unless I hear otherwise. If you want to revisit, [time-sensitive reason, e.g. budget cycle], so a quick chat now might save you a step later.

No worries either way — appreciate your time.

[Signature]

P.S. - If someone else at [org] should hear about this, happy to redirect.

结束联系的变体:征求许可("不相关 / 不是优先事项 / 时机不对——是哪一种?如果是第 3 种,我该何时再联系?")· 转介("看来我联系错人了——谁负责 [topic]?")。除非 Gate S 已核实,否则避免提及竞争对手客户的 FOMO 话术。

各行业快速入门

  • 高等教育(ICP 90): 考试周可靠性 → 同行院校证明 → 分发痛点 → 资源(CMS 集成文档)→ 直接询问 → 结束联系
  • 法院(ICP 85): 记录缺失 → 县级证明 → 无人值守的 8 小时会话 → 资源 → 直接询问 → 结束联系
  • 政府(ICP 80): 无需增加 AV 人手即可录制市议会会议 → 城市证明 → 发布延迟 → 资源 → 直接询问 → 结束联系
  • 医疗(ICP 75): 无需增加临床 IT 负担即可录制手术室内容 → 医学教育证明 → 学员访问 → 资源 → 直接询问 → 结束联系
  • 企业 AV / 宗教场所 / K-12: 使用相同流程;将重新定位角度替换为 Tim 提供的信息中该行业最突出的痛点

A/B 测试与基准

按以下顺序测试:主题行(疑问句还是陈述句,个性化还是通用)、正文长度(50 词还是 100 词)、CTA 风格、发送时间。方法:前 100 位联系人进行 50/50 分组,48 小时后查看结果,再将胜出版本发送给 其余联系人。基准(电子邮件 1 打开率 35-55%,序列回复率 8-25%,会议预约率 1-6%)是规划 范围,不应作为宣传文案中的说法。

启动前检查清单

  • 已审阅 Gate Q 报告(Tim 已确认排除项和过期 AE 条目)
  • Tim 打算发送的草稿中,不再有 [spec unverified] 或 [brand check skipped] 标记
  • 所有个性化变量均已填写;不再有未替换的方括号
  • 链接已测试;没有附件
  • 在运行 batch-send-drafts-skill 之前,已与 Tim 商定每日发送上限

<self_healing> 失败 = 未生成草稿;部分完成 = 某个阶段降级(注明名称:Q halt、S unverified、B skipped、 D write failed)。处理步骤:重试一次 → 降级(在草稿中添加内联标记,保留核心内容)→ 通知 Tim (摘要行;若无人值守,则发送 Slack 私信)→ 当该列表无法使用 qualify_lead 时停止。 完整约定:~/.claude/skills/epiphan-house-rules-skill/reference/self-healing.md。 </self_healing>

<outcome_sidecar> 每次运行结束时,写入 ~/.claude/skill-analytics/last-outcome-cold-email-sequence-generator-skill.json 并向 ~/.claude/skill-runs/cold-email-sequence-generator-skill.jsonl 追加一行:

{"ts":"<UTC ISO8601>","skill":"cold-email-sequence-generator-skill","version":"<frontmatter version>",
 "variant":"<assigned variant or default>","status":"success|partial|error","runtime_ms":0,
 "metrics":{"contacts_in":0,"contacts_qualified":0,"contacts_excluded":0,"stale_ae":0,
            "emails_generated":0,"drafts_created":0,"spec_unverified":0,"brand_skipped":0},
 "error":null,"session_id":"<date>"}

status 为 partial/error 时,必须在 error 中注明失败阶段。SessionStart 扫描程序会读取该文件。 </outcome_sidecar>

评论

支持 Markdown