mcpField
A
auto-research-public

auto-research-public

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

关于 auto-research-public

面向 Claude Code 的技能,可根据目标公司域名和客户资料生成个性化 Smartlead 营销活动。它串联公司调研、潜在客户搜索、邮件验证、文案变体和活动设置,并将状态保存在本地 JSON 文件中。

主要功能

  1. 01抓取公司网站内容
  2. 02使用 Prospeo 搜索潜在客户
  3. 03补全并验证邮箱
  4. 04生成 A/B/C 三种文案
  5. 05为每位潜在客户个性化内容
  6. 06上传并启动 Smartlead 活动

适用场景

  1. 01针对目标公司的潜在客户开展外联
  2. 02在潜在客户名单中测试多种邮件文案
  3. 03在本地文件中记录营销活动实验

安装

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

$npx skills add https://github.com/growthenginenowoslawski/coldoutboundskills --skill auto-research-public

安装后在 Claude Code 中输入/auto-research-public确认已加载。

包含的文件

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

scripts/
phase-enrich.ts
phase-prospeo.ts
phase-scrape.ts
phase-upload.ts

详细介绍

自动化研究(公开版)

自动化端到端营销活动启动器。输入一家目标公司的域名,大约 20 分钟后,即可获得一个已启动的 Smartlead 营销活动,并为每条潜在客户线索生成个性化内容。

这是适合初学者的版本,对应 GEX 内部的 auto-research-v2。所有状态都保存在本地 JSON 文件中;无需 Supabase 或 Trigger.dev。

你将获得

  • **输入:**一家目标公司的域名 + 你的 client-profile.yaml
  • **输出:**一个正在运行的 Smartlead 营销活动,其中包含:
    • 200-1,000 条潜在客户线索(取决于目标定位的精确程度)
    • 每条线索的个性化内容:9 个自定义变量(情况、价值、CTA × 3 个变体)
    • 并行测试的 A/B/C 主题 + 正文变体
    • 营销活动分配至你可用的收件箱
    • 发送时间安排:你所在时区的周一至周五上午 8 点至下午 5 点

前置条件

运行前:

  • 存在 client-profile.yaml(如果没有,请运行 /icp-onboarding)
  • 环境变量中设置了 SMARTLEAD_API_KEY
  • 环境变量中设置了 PROSPEO_API_KEY
  • 环境变量中设置了 MILLIONVERIFIER_API_KEY(用于电子邮件验证)
  • 至少有 20 个标记为 "active" 的 Smartlead 收件箱(请先运行 /smartlead-inbox-manager)
  • Smartlead 中至少有 1 个营销活动模板(否则脚本会新建一个)

编排流程(由 Claude Code 运行)

与其他技能不同,这项技能通过 Claude Code 对话本身进行编排:Claude 负责推理(生成 ICP、撰写文案、个性化内容),阶段脚本负责大量 API 调用。这是 GEX v2 内部采用的模式。

阶段 1:抓取目标公司信息
npx tsx scripts/phase-scrape.ts --domain=<target.com> --out=/tmp/auto/scrape.json

输出:包含 domain 和来自首页、/about、/product、/pricing、/customers 的文本内容的 JSON。

Claude 读取输出,并将简短分析写入 /tmp/auto/company-analysis.md:

  • 公司做什么
  • 他们可能的客户是谁
  • 社会认同信号
  • 潜在的外联切入点
阶段 2:Claude 生成 ICP 筛选条件

Claude 读取 /tmp/auto/scrape.json + ~/cold-email-ai-skills/profiles/<slug>/client-profile.yaml,并将 Prospeo 筛选条件写入 /tmp/auto/filters.json:

{
  "job_titles": ["VP Marketing", "Head of Marketing", ...],
  "seniorities": ["Vice President", "Head", "Director"],
  "industries": ["Software Development", "Financial Services"],
  "company_size_min": 50,
  "company_size_max": 500,
  "countries": ["US"],
  "excluded_industries": ["Religious Institutions", "Government Administration"]
}

Claude 必须使用 ~/cold-email-ai-skills/skills/icp-onboarding/references/prospeo-industries.md 中准确的 Prospeo 行业名称。

阶段 3:Prospeo 搜索
npx tsx scripts/phase-prospeo.ts --filters-file=/tmp/auto/filters.json --max-leads=1000 --out=/tmp/auto/leads.json

输出:包含 leads 数组的 JSON。每条潜在客户线索包含:first_name、last_name、email(可能为空)、linkedin_url、job_title、company_name、company_domain、company_industry、company_headcount、company_description。

阶段 4:电子邮件瀑布查找 + 描述信息补全
npx tsx scripts/phase-enrich.ts --leads-file=/tmp/auto/leads.json --out=/tmp/auto/enriched.json

脚本会:

  1. 检查每条潜在客户线索是否有电子邮件;如果缺失,则调用 Prospeo 的 enrich-person 端点
  2. 如果 company_description 内容过少(<50 个字符),则抓取 company_domain 首页
  3. 使用 MillionVerifier 验证每个候选电子邮件地址
  4. 将补全后的潜在客户线索(仅包含电子邮件有效的线索)写入输出

预期命中率:

  • 零售/中小企业:约 99% 能找到电子邮件
  • B2B 科技:约 65-80%
  • 医疗保健/公共部门:约 25-40%
  • MV 拒绝率:已找到的电子邮件中约 20-30%
阶段 5:撰写文案(Claude)

Claude 生成 3 个文案变体(A、B、C),并写入 /tmp/auto/variants.json:

[
  {
    "variant": "A",
    "subject": "<concrete, specific, <60 chars>",
    "angle": "<pain observation>",
    "body_template": "Hi {{first_name}},\n\n{{situation_line_a}}\n\n{{value_line_a}}\n\n{{cta_line_a}}\n\n%signature%\n\nP.S. If this isn't relevant, just let me know and I won't reach out again."
  },
  {
    "variant": "B",
    "subject": "<different angle>",
    "angle": "<compliment + transition>",
    "body_template": "..."
  },
  {
    "variant": "C",
    "subject": "<third angle>",
    "angle": "<question>",
    "body_template": "..."
  }
]

Claude 必须遵守以下规则(对输出运行 /spam-word-checker):

  • 不使用 em dash(—)。请用逗号或句号。
  • 不使用 "leverage"、"synergy"、"solutions"、"world-class"、"cutting-edge"。
  • 正文:最多 50-90 个词。
  • 主题:少于 60 个字符,内容具体,不使用标题党。
  • 结尾单独一行写上 %signature%。
阶段 6:通过 Task 子 Agent 进行个性化处理

Claude 将任务分发给并行运行的 Task 子 Agent(每个变体 × 每批 20-30 条潜在客户线索)。完整模式请参阅 /personalization-subagent-pattern。

每个子 Agent 为每条潜在客户线索写入 /tmp/auto/personalization-<batch>-variant-<X>.json:

[
  {
    "lead_id": "...",
    "situation_line": "One sentence about the company.",
    "value_line": "One sentence connecting to our offer.",
    "cta_soft": "One soft ask sentence."
  }
]

所有子 Agent 完成后,Claude 按 lead_id 合并到 /tmp/auto/personalized.json。此时每条潜在客户线索都有 9 个个性化字段。

阶段 7:上传到 Smartlead
npx tsx scripts/phase-upload.ts \
  --leads-file=/tmp/auto/personalized.json \
  --variants-file=/tmp/auto/variants.json \
  --domain=<target.com> \
  --inboxes-tag=active \
  --inbox-count=10 \
  --activate

此脚本将:

  1. 创建一个新的 Smartlead campaign,名称为 [AUTO] <date> <target> Auto
  2. 保存包含 campaign ID 作用域自定义变量的 3 个变体序列({{situation_line_a_{campaign_id}}})
  3. 从 Smartlead 中选择 N 个标记为 "active" 的收件箱(LRU — 最久未使用的优先)
  4. 按每批 100 条上传潜在客户,并将自定义字段映射到相应的个性化内容
  5. 设置时间安排(周一至周五,美国东部时间上午 8 点至下午 5 点)和设置(关闭跟踪、收到回复后停止)
  6. 激活 campaign

向 stdout 输出:{ campaignId, inboxCount, leadsUploaded }。

阶段 8:保存实验状态(本地 JSON)

写入 ~/cold-email-ai-skills/profiles/<slug>/experiments/<YYYY-MM-DD>-<target>.json:

{
  "date": "2026-04-17",
  "target_domain": "example.com",
  "smartlead_campaign_id": 123456,
  "inboxes_assigned": [...],
  "icp_filters": {...},
  "variants": [...],
  "lead_count_uploaded": 347,
  "launched_at": "2026-04-17T14:23:00Z",
  "status": "launched"
}

这是你的实验日志。/experiment-design 会从这里读取数据以比较各次运行。21 天后,/positive-reply-scoring 会将结果写回此文件。

运行完整流程

要通过一条命令运行全部 8 个阶段(由 Claude 协调):

/auto-research-public --domain=<target.com>

Claude Code 会按顺序执行各个阶段,并在阶段 5(文案)和阶段 7(上传)之前暂停,供你检查。

每日/定时运行

熟悉之后,可以将其封装为 cron 任务,或使用 Claude Code 的 /loop 技能每日运行:

/loop 1d /auto-research-public --domain=$(cat /tmp/auto/next-target.txt)

你需要一种方法来每天选择下一个目标。选项:

  • 维护一个 targets.txt 列表,每天取出一个
  • 让 Claude 根据 TAM 研究进行选择(参见 /list-builder 和 /list-expander)
  • 在竞争对手/相似公司列表中轮换

状态文件(本地 JSON,无数据库)

此技能所需的所有内容都存放在 ~/cold-email-ai-skills/profiles/<slug>/ 下:

profiles/
  <business-slug>/
    client-profile.yaml          # from /icp-onboarding
    lead-magnets.md              # from /lead-magnet-brainstorm
    experiments/
      2026-04-16-targetco.json   # per-campaign experiment log
      2026-04-17-othertarget.json
    scores/
      123456-2026-05-07.json     # from /positive-reply-scoring

收件箱分配(无需 Supabase)

GEX v2 使用 Supabase 表 auto_research_inbox_assignments 来跟踪分配给各个 campaign 的收件箱(以分散负载)。此公开版本:

  1. 向 Smartlead 查询标记为 "active" 的收件箱
  2. 获取每个收件箱的 daily_sent_count,作为“最近使用时间”的替代指标
  3. 按升序排序,选择前 N 个(今日发送量最少 = 最久未使用)
  4. 将分配记录到本地实验 JSON 中(而非数据库)

适用于少于 1000 个收件箱的情况。如果规模超过此数量,请迁移到实际的数据库。

常见问题

  • Prospeo INVALID_FILTERS — 通常是“行业名称不在 256 项列表中”。请检查 /icp-onboarding 中的 references/prospeo-industries.md,确认完全匹配。
  • 邮箱命中率低 — 如果低于 30%,说明你的列表针对的是难以找到的人群(小众职位、小型公司)。扩大 ICP 范围,或接受相应成本。
  • 子 Agent 的个性化内容重复 — 如果不同潜在客户的措辞相同,请使用多样性提示词重新运行该批次。参见 /personalization-subagent-pattern 中的 references/failure-modes.md。
  • 上传时 Smartlead 提示 "inbox not allowed" — 收件箱已被标记/封锁。脚本会跳过并继续。
  • Campaign 卡在 0 次发送 — 检查 campaign 时间安排、收件箱预热状态(通过 /smartlead-inbox-manager list-health),并确认潜在客户确实已上传。

每次运行的成本

典型运行(1 个目标,提取 1000 条潜在客户):

  • Prospeo 搜索:约 40 页 × 搜索 = 约 $0.20
  • Prospeo enrich-person(为约 500 条缺少邮箱的潜在客户查找邮箱):约 $5
  • MillionVerifier 验证:约 $0.50
  • Smartlead 发送成本:随着发送量增加,每封邮件约 $0.001
  • Claude Code Task 子 Agent:(使用你的 Claude Code 套餐,不产生额外 API 费用)

总计:每个 campaign 约 $6-10,可触达 300-500 个有效邮箱。

脚本

  • scripts/phase-scrape.ts — 网站抓取
  • scripts/phase-prospeo.ts — Prospeo 分页搜索
  • scripts/phase-enrich.ts — 邮箱瀑布查询 + 描述补充 + MillionVerifier
  • scripts/phase-upload.ts — 创建 Smartlead campaign + 上传

参考资料

  • references/orchestration-checklist.md — 手动运行完整流程的分步指南
  • references/icp-to-prospeo.md — 如何将 client-profile.yaml 转换为 Prospeo 筛选条件 JSON
  • references/copy-variant-guide.md — 如何撰写 3 个不同的 A/B/C 变体

接下来做什么

等待 21 天,让营销活动积累回复数据,然后对已启动的营销活动运行 /positive-reply-scoring。

**与此同时:**通过 /cold-email-weekly-rhythm 保持每周节奏。每周一,对新营销活动运行 /email-deliverability-audit,以便及早发现基础设施问题。

**或者等待:**此技能就是自动化循环。下一步可以是“明天再次运行,但使用不同的目标域名”,也可以集成 /schedule 技能以每日运行。

相关技能

  • /icp-onboarding — 生成 client-profile.yaml(必需输入)
  • /lead-magnet-brainstorm — 生成此营销活动询问的优惠/CTA
  • /personalization-subagent-pattern — 第 6 阶段使用的扇出模式
  • /smartlead-inbox-manager — 必须先运行,以便为收件箱添加标签并进行预热
  • /positive-reply-scoring — 21 天后运行,为营销活动评分
  • /experiment-design — 规划下一步尝试哪个目标

评论

支持 Markdown