cold-email-outreach について
営業チーム向けのコールドメール施策スキルです。見込み客の調査、個別化したメールの作成・送信、フォローアップ、返信の振り分けを扱います。Hyper MCPでApollo、Firecrawl、Gmailなどを連携し、草案の事前確認を標準とします。
主な機能
- 01ICPに基づく見込み客の検索と補完
- 02メール個別化のための情報収集
- 03フレームワークに沿ったメール作成
- 04メール送信とフォローアップの管理
- 05返信の分類と追跡
活用シーン
- 01対象顧客像に沿った営業リストの作成
- 02企業の動向を使った導入文の個別化
- 03草案を確認してから営業メールを実施
- 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.mdfollow-up-sequences.mdframeworks.md詳細
コールドメールアウトリーチ
リサーチ、下書きの作成、送信、フォローアップ、返信の振り分けまでを一貫して行うコールドアウトリーチです。戦略には実績のあるフックのフレームワーク(数字主導/質問/課題訴求/メリット先行)を採用し、Apollo、Firecrawl、LinkedIn スクレーパー、Gmail を Hyper MCP 経由で利用して実行します。
対象外 — 他のスキルを案内してください
| リクエスト | 案内先 |
|---|---|
| 温度感の高いリード向けのライフサイクル/ナーチャリングシーケンス(ウェルカム、オンボーディング、再エンゲージメント、休眠顧客の再獲得) | email-lifecycle(予定) |
| LinkedIn の DM、つながり申請、または Sales Navigator のワークフロー | (予定) |
| 返信後のリードスコアリング、振り分け、商談ステージの更新 | crm-revops(予定) |
| 競合他社の広告のスクレイピング | meta-ads-library |
要件
- Hyper MCP がインストールされ、接続されていること。 https://app.hyperfx.ai/mcp
- https://app.hyperfx.ai/apps で Gmail インテグレーションが接続されていること — 送信アカウントを提供します。
- Apollo インテグレーションが接続されていること — 見込み客の検索とメールアドレスの補完を行います。
- Firecrawl(バンドル済み)— 企業ページのシグナル取得に使用します。
- 任意:LinkedIn スクレーパー(バンドル済み、Apify 経由で実行)— 見込み客ごとのパーソナライズに役立つ、より詳細な情報を取得します。
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 CLI | hyperai 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(1 件のみ) |
| 見込み客ごとのシグナル | 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_ids 配列ではなく、label_id 文字列を受け取ります) |
重要なルール
- 複数の見込み客に対して
apollo_people_matchを繰り返し呼び出さないでください。 2件以上のレコードは、必ずapollo_people_match_bulkにまとめてください。Apollo のツールの説明でも明示的に警告されています。単一マッチの呼び出しを繰り返すと、クレジットを消費し、処理も大幅に遅くなります。 - 送信モードのデフォルトは、レビュー用の下書きを先に作成することです。 見込み客が4人以上のキャンペーンでは、まず
gmail_drafts_createで最初の1~3件の下書きを作成し、ユーザーに提示して明示的な承認を得てから、残りをgmail_messages_sendでまとめて送信してください。サンプルを先に提示せず、キャンペーン全体を送信してはいけません。 - キャンペーンごとにラベルは1つだけにします。 最初に
gmail_labels_createでcold/<campaign-name>ラベルを作成し、すべてのメールに適用してから、そのラベルを検索して返信を追跡してください。これにより、Phase 6 の返信振り分けが実際に機能します。 - Gmail の送信制限を超えないようにしてください。 個人向け Gmail アカウントでは1日あたり約500通、Workspace ユーザーでは1日あたり約2,000通です。送信間隔を空けてください。ウォームアップと1日あたりの送信ペースについては、
references/deliverability.mdを参照してください。 - パーソナライズは問題提起につなげてください。 パーソナライズした書き出しを削除してもメールの内容が変わらないなら、その書き出しは機能していません。書き出しから、メールを送っている理由へ自然につなげてください。
- メール1通につき依頼は1つ、CTAは1つにしてください。 コールドメールの最初の接触では、ミーティングの依頼よりも、関心を尋ねる表現(「検討する価値はありそうですか?」)のほうが効果的です。
- 配信停止の申し出には直ちに対応してください。 「配信を停止して/興味がない」という返信があった場合は
unsubscribedラベルを適用し、同じ Hyper ワークスペースからそのアドレスを再度ターゲットにしてはいけません。
ワークフロー
Phase 1 — キャンペーンを定義する(必ず最初に行う)
ユーザーに次の項目を決めてもらいます。
- ICP — 役職、業界、企業規模、技術スタック、地域。具体例:「米国を拠点とする、従業員10~50人のシード前からシリーズAの B2B SaaS 企業で、HubSpot を使用しているグロース責任者。」
- 依頼内容 — どのような結果を「はい」とみなすか。(15分の通話、非同期での返信、デモ、別の人への紹介など。)
- 1文で表す価値提案 — 「X が Y を実現し、Z できるよう支援します。」
- 実績 — 具体的な成果を1つ:「Notion の CAC を90日で31%削減しました。」(作り話の例を使うより、例がないほうがましです。実際の事例を確認してください。)
- きっかけ/シグナル(任意ですが効果的) — 資金調達ラウンド、採用、料金ページの変更、最近のブログ記事、製品ローンチ、経営陣の交代。
- 送信者と返信先 — どの Gmail アカウントから送信するか。(
gmail_labels_listで連携が有効であることを確認してください。) - 送信数と頻度 — 見込み客の合計数、1日あたりの最大送信数、フォローアップの間隔パターン。
どれかの項目でユーザーが決めかねている場合は、再検討を促してください。実績や明確な依頼内容のないキャンペーンは、文章がどれほど巧みでも成果につながりません。
Phase 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 を1つ貼り付けた場合)に限って使用してください。
業界、売上規模、技術スタックなど、企業レベルの詳しい情報が必要な場合は、情報を補完したい企業の組織名を指定して apollo_companies_search を呼び出してください。人物検索の結果には、従業員数、業界、所在地など、基本的な企業情報がすでに含まれています。apollo_companies_search は、人物検索の結果に含まれていない情報が必要な場合にのみ使用してください。
フェーズ 3 — 見込み客ごとのシグナル(パーソナライズのレイヤー)
見込み客ごとに、解決する課題に結びつく具体的な情報を1つ集めます。効果がある中で、最もコストの低いシグナルを使ってください。
| コスト | ツール | 用途 |
|---|---|---|
| 無料(すでに取得済み) | Apollo response fields | 役職の変更、最近の着任、会社の従業員数の急増、資金調達 |
| 低コスト | firecrawl_urls_scrape で採用情報/料金/ブログのページをスクレイプ | 「SDRを4人採用中です」「料金ページによると、エンタープライズプランを開始するようです」「最新のブログ記事はXについてです」 |
| 低コスト(複数ページ) | firecrawl_urls_scrape_batch | 1回の呼び出しで、複数のサイトから同じ情報を取得 |
| 中コスト | firecrawl_branding_extract | メールのトーンに合わせるためのブランドボイス、フォローアップ画像を送る場合はブランドカラー |
| 高コスト(条件付き) | scrape_linkedin_profiles(profile_urls=[...])(LinkedIn Apify 統合が必要です。接続されていない場合はスキップしてください) | 最近の投稿、共通の知人、最近の転職、同じ学校や勤務先 |
パーソナライズの段階(このキャンペーンで無理なく使える最高の段階を選んでください)。
- 段階 1(大量送信/手間が少ない) — 名、役職、会社、業界。メールの価値提案だけで十分な訴求力がある場合に限り、許容されます。返信率は低くなります。
- 段階 2(シグナルに基づく) — 解決する課題が深刻な役職や段階にいる見込み客(例:着任して最初の60日以内の新しい Head of Growth)。返信率は大幅に向上します。
- 段階 3(具体的な情報に基づく) — 会社のサイト、料金ページ、採用情報ページ、最近の製品リリースについて言及します。ここが最適な段階です。
- 段階 4(詳細な調査) — 最近の LinkedIn の投稿、自身が執筆したブログ記事、登壇した講演について言及します。価値の高いターゲットに限定してください。
段階 2 を下回るものは疑ってかかる必要があります。{{FirstName}} を差し替えるだけではパーソナライズとはみなされません。
フェーズ 4 — メールを下書きする(デフォルトでは下書きを先に作成)
状況に合ったフレームワークを選びます。一貫して効果を発揮するのは、次の4つの型です。
- 観察 → 課題 → 根拠 → 打診 — 「SDRを採用されていますね。通常、それは商談数/SDRの比率がボトルネックになっていることを意味します。[company]の目標達成を支援しました。詳しく検討してみませんか?」
- 質問 → 価値 → 打診 — 「[problem]でお困りですか?当社は[Y]を提供しています。[Company Z]では[result]を達成しました。一度ご覧になりますか?」
- きっかけ → インサイト → 打診 — 「[funding/launch]おめでとうございます。通常、そこから[Y challenge]が生じます。同様のチームを支援してきました。ご興味ありますか?」
- 事例 → 接続 → 打診 — 「[Similar company]は[problem]を抱えていました。当社と一緒に[solved it this way]を実現しました。貴社にも関係がありそうでしょうか?」
具体例や、それぞれの型が最も効果を発揮する場面については、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らしい表現):
- 「I hope this email finds you well.」/「I came across your profile.」
- 「leverage」、「synergy」、「best-in-class」、「leading provider」、「circle back」
- 機能の羅列。機能を10個挙げるより、実績を1つ示すほうが効果的です。
- HTML、画像、複数のリンク。
- 偽の
Re:/Fwd:件名。 {{FirstName}}だけを差し替えた同一のテンプレート。- 1回目の連絡で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回連絡します。フォローアップのたびに、新しい要素を加えます。別の切り口、新たな実績、役立つリソースなどです。「その後いかがですか」だけでは、読み手に返信する理由を与えられません。
デフォルトのスケジュール(ユーザーの状況に応じて調整します):
| 接触回 | 日 | 切り口 | ツール |
|---|---|---|---|
| 1 | 0 | 初回のフレームワーク(観察/質問/きっかけ/事例) | 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を使っています/予算がありません/第4四半期にまた連絡してください」) | cold/q3-growth-leads/objection | 具体的な回答を1つ返信してから、シーケンスを停止します。 |
| 今は時期ではない(「後でまた連絡してください」) | cold/q3-growth-leads/not-now | シーケンスを停止します。90日後の再アプローチ用にタグを付け直します。 |
| 配信停止(「削除してください/興味がありません」) | cold/q3-growth-leads/unsubscribed | シーケンスを停止します。全体ラベル unsubscribed を追加します。二度と連絡しません。 |
| 不在通知 | cold/q3-growth-leads/ooo | シーケンスを一時停止し、メッセージに記載された不在終了日以降に再開します。 |
分類の適用と未読状態の解除は、別々の2回の呼び出しで行います。
gmail_labels_add(message_id=..., label_ids=[classification_label_id])
gmail_labels_remove(message_id=..., label_ids=["UNREAD"])
振り分けループを開始する前に、gmail_labels_create でサブラベルを一度作成し、そのIDを取得しておきます。
品質チェック(送信前)
各下書きを次の基準で確認します。2項目を超えて満たさない場合は却下してください。
- 人間が書いたように聞こえますか?(声に出して読んでください。)
- 自分が受け取ったら返信しますか?
- すべての文が送信者ではなく、読み手の役に立っていますか?
- パーソナライズの内容は、一般的なお世辞ではなく、解決する問題に結び付いていますか?
- 明確で、手間のかからない依頼が1つありますか?
- 件名は同僚から届いたように見えますか?
- 1通目のメールは約120語未満ですか?
参考ワークフロー
長文の資料は、必要に応じて読んでください。
| 参考資料 | 読むタイミング |
|---|---|
references/frameworks.md | フレームワークの選定、完全な例、役職に応じたトーンの調整 |
references/follow-up-sequences.md | 複数回の接触頻度の構築、切り口のローテーション、終了メールのテンプレート |
references/deliverability.md | Gmailのレート制限、送信者のウォームアップ、SPF/DKIM/DMARC、リストの衛生管理、ブロックリストからの復旧 |