mcpField
W
waterfall-enrichment

waterfall-enrichment

github.com/victor-shulgaマーケティング・グロース146 回インストール4 日前に更新
リポジトリ

waterfall-enrichment について

waterfall-enrichmentは、連絡先メールを順に検索・検証するスキルです。カバレッジと連絡先単価を管理するチーム向けに、入力を監査し、人材検索、メール検索、検証を有効な結果が得られるまで進めます。

主な機能

  1. 01入力リストの監査と整理
  2. 02企業ドメインから人物を検索
  3. 03メール検索と検証の順次実行
  4. 04有効な結果で処理を停止
  5. 05取得元と検証コストの記録

活用シーン

  1. 01企業リストに検証済みメールを追加
  2. 02LinkedInプロフィールから連絡先情報を解決
  3. 03既存アドレスを確認して重複課金を回避
  4. 04配信問題の原因を取得元から追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/victor-shulga/outbound-engine-skills --skill waterfall-enrichment

インストール後、Claude Code で/waterfall-enrichmentを入力して読み込まれたか確認します。

同梱ファイルassets/find-people.yaml

詳細

ウォーターフォール型エンリッチメント

ソースを順番に実行し、最初に検証済みの結果が見つかった時点で停止して、メールアドレスを見つけます。 ウォーターフォールの目的は、単に網羅率を高めることではありません。1件あたりの既知のコストで網羅することです。 料金のないカスケードは、ベンダー名の一覧にすぎません。

2つの開始地点と、それぞれ異なるカスケード

どちらのケースかによって、その後のすべてが決まります。

開始地点A — 氏名と会社のドメインがある。 通常のケースです。メール検索ツールが受け取るのは、まさにこの情報です。

開始地点A2 — ドメインはあるが、人物の情報がまだない。 まず人物を見つけてから、検証済みアドレスが返されなかった対象にメールのカスケードを実行します。次のセクションを参照してください。

開始地点B — LinkedInプロフィールのURLしかない。 リストを作成した後によくあるケースですが、ほとんどのカスケードが間違えるケースでもあります。メール検索ツールが受け取るのは氏名とドメインであり、URLではありません。ここでは2段階が必要です。まずプロフィールから氏名、会社、ドメインを特定し、その後にメールのカスケードを実行します。URLを入力して1段階でウォーターフォールを実行すると、結果はほぼゼロになります。これは網羅率の問題に見えますが、実際には連携の問題です。

人物を見つける(開始地点A2)

ドメインをキーにした人物検索ノード1つの方が、プロフィールスクレイパーより優れています。 スクレイパーは会社ごとに数十ページをクロールし、セッションCookieが必要で、頻繁に壊れ、それでもメールアドレスのないプロフィールを返します。人物検索ノードなら、連絡先情報付きで同じ人物を返し、10個のドメインでも約1分で済みます。スクレイパーを使うのは、そのプロバイダーが情報を保有していない場合だけにしてください。

呼び出しごとにドメインは1つにします。 ドメイン10個を指定し、結果数の上限を20にして1回だけ呼び出しても、会社ごとに2人ずつ返ってくるわけではありません。プロバイダーが任意に割り振った20人が返ってきます。ドメインごとにループ処理してください。

アカウントごとに5人ではなく、2人を指定してください。 対象とするのは、ICPがすでに想定している組み合わせです。経済的な決裁者(小規模な会社では創業者であることが多い)と、「これは本物なのか」と尋ねられる技術または業務上の承認者です。同じ会社から両方の人物が返ってくれば、ペルソナ設計が実際に機能していることを確認できます。つまり、机上で想定した役職がターゲット企業に実在するということです。そうした人物が一貫して見つからない場合は、ペルソナのセクションが間違っています。コピーを書いた後に直すより、今直す方が低コストです。

およそ10社に1社は結果が何も返らず、まれにアドレスを取得できない人物が返ることも想定してください。 これは網羅性の問題であり、クエリの故障ではありません。クエリを一度だけ緩和して確認します。場所のフィルターを外し、役職の範囲を広げ、シニアリティを1段階追加します。それでも空なら、プロバイダーにデータがないため、そのアカウントはLinkedIn URLのカスケードか手動キューに回します。

ワークフローランナーを使った実装例はassets/find-people.yamlにあります。呼び出し方法と役職フィルターも併せて記載されています。

パス0 — 何かに費用をかける前に入力を監査する

クライアントから受け取ったデータは、何であれ最初に確認します。実際のデータベースでは、クライアントのメール列にあった131件のアドレスのうち、本人の会社ドメインを使っていたのはわずか27件で、76件は別のドメイン(個人アドレス、パートナーのアドレス、代理店のアドレス)を使っており、19件はそもそもアドレスではありませんでした。そのうち1件には「4月に書く」と書かれていました。

以下を確認します。

  • アカウントのドメインと一致しないドメインのアドレス
  • 仕事用アドレスが想定されていたのに、フリーメールのアドレスが使われている場合
  • アドレス列にある、アドレス以外のテキスト
  • すでに検証済みアドレスがある行。再購入しないでください

壊れた状態で届いたデータベースは、エンリッチメントを重ねるのではなく、再構築します。

カスケード

ステージ 1 — プロフィールの特定(エントリー B のみ):

順序ソース目安コスト備考
1低価格のプロフィール特定ツール約 0.09 クレジット失敗することが多いものの、最初に試すには十分安価です
2通常価格の人物情報エンリッチメント約 0.37 クレジットフォールバック。成功率は高めです

ステージ 2 — メールアドレスの検索:

順序ソース目安コスト強み
1メインの検索ツール(LeadMagic など)約 0.37~0.4 クレジット幅広くカバーし、検索ツールの中で最も安価です
2追加の検索ツール(Findymail など)約 0.45~0.6 クレジット最初のツールで見つからなかったものを補います
3自分のツール内にすでにある連絡先カード(Apollo のエクスポート、CRM)0無料です。課金する前に確認してください
4ドメインのパターンと検証0パターンが判明しており、既知の 2 件以上のアドレスで確認できている場合に限ります

ステージ 3 — 検証:

ソース目安コストルール
検証ツール(ZeroBounce など)約 0.09~0.3 クレジット無料で見つかったものも含め、すべての結果に実行してください

予算の上限: 2 ステージの全行程で、1 人あたり約 1.4 クレジットです。実行前に見積もりを出してください。

ルール

  1. 検証済みの結果が最初に得られた時点で停止します。 次のソースに進むのは、見つからなかった場合、または「リスクあり/不明」の場合に限ります。
  2. 最初のソースで見つかることが多くても、フォールバックを省かないでください。 2 ステージのカスケードを初めて実行した際、低価格の特定ツールでは見つからず、有料ツールで見つかりました。続いて、メインの検索ツールでは見つからず、追加の検索ツールで見つかりました。1 件の連絡先に対する 1 回の実行で、両方のフォールバックが必要なことが実証されました。
  3. 有料ソースより先に無料ソースを確認してください。 既存の連絡先カードや CRM のレコードは無料で、多くの場合すでに存在しています。
  4. 調査エージェントやウェブ閲覧エージェントを連絡先カスケードに含めないでください。 オープンウェブからメールアドレスや電話番号を安定して取得できず、試行ごとのコストも検索ツールより高くなります。
  5. 「有効」の結果だけを採用してください。 リスクあり、不明は却下します。キャッチオールは別枠であり、却下対象ではありません。
  6. キャッチオールドメイン: 信頼度は低くなりますが、送信可能です。フラグを付けて、まず少量のバッチで送信し、規模を拡大する前にそのドメインのバウンス率を確認してください。
  7. 未検証のアドレスには絶対に送信しないでください。 無効なアドレスが 5% あるだけでも送信者の評判を損ない、その影響はキャンペーン後も続きます。
  8. まず最上位層に予算を使ってください。 エンリッチメントの予算は処理キューに沿って割り当てます。書き込み対象にならない行のアドレスに予算を使わないでください。

想定される結果

  • ドメインが正しく、クリーンなベースであれば、50~70% が検証済みとなるのは通常の結果です。それを上回る場合は、検証ツールが実行されているか確認してください。
  • 50% 未満の場合、通常はソースではなく入力に問題があります。名前の形式が不正、ドメインが誤っている、事業会社のドメインではなく持株会社のドメインを使用している、または連絡先に業務用アドレスがない、といったケースです。
  • 2 つ目の検索ツールは通常、1 つ目だけの場合より 10~20 ポイント上乗せします。それが導入コストに見合う理由です。

出力形式

Waterfall enrichment: [list name]
Date: [date]
Contacts processed: [n]
Entry point: [name+domain / LinkedIn URL]

INPUT AUDIT
Rows arriving with an address: [n] — own domain [n] / foreign domain [n] / not an address [n]
Rows already verified (skipped): [n]

RESULTS
Verified: [n] ([%])
Catch-all (sendable, lower confidence): [n] ([%])
Not found: [n] ([%])

SOURCE BREAKDOWN
[source]: [n] found — [credits spent]
...
Free sources (CRM / existing cards): [n] found — 0

VALIDATION
Valid: [n] | Risky/invalid removed: [n]

COST
Total credits: [n] | Per verified contact: [n]

Final clean list: [n] contacts ready for sequencing

重要なのは、検証済み連絡先 1 件あたりのコストです。処理した行数で総支出を割ると、実際より良い結果に見えてしまいます。

注意事項

  • 各アドレスについて、見つけたソースを記録してください。後に到達率が悪化した場合、ソースの記録があれば、どのベンダーを外すべきか判断できます。
  • すべてのソースで見つからなかった行に対して、ウォーターフォールを再実行しても、ほとんど成果はありません。定期的に再実行するのではなく、入力を修正してから再実行してください。
  • 役割ベースのアドレス(info@、hello@、sales@)は連絡先ではありません。別の列に記録し、個人アドレスを対象としたキャンペーンには決して含めないでください。

要件

インテグレーション用途必須?セットアップ
人物検索ノードを備えたワークフローランナー(Apollo より Freckle、または同等のもの)ドメイン → 連絡先情報を含む人物Entry A2 で必要認証し、組織 ID を固定します
メール検索ツール(LeadMagic、Findymail、または同等のもの)メールのカスケードはいご自身のアカウント
検証ツール(ZeroBounce または同等のもの)無料で見つかったものも含むすべての結果はいご自身のアカウント
プロフィール特定ツールLinkedIn URL を起点とするエントリーポイントEntry B で必要同じランナーの一部です

コメント