mcpField
S
scrape-leads

scrape-leads

github.com/aiagentwithdhruvマーケティング・グロース2080 回インストール15 週間前に更新
リポジトリ

scrape-leads について

scrape-leads は、Apify で企業リードを収集・確認し、Google Sheets に保存するスキルです。単独および並列スクレイピングに対応し、LLM による分類やメールアドレスの補完も行えます。

主な機能

  1. 01業界と地域を指定したリード収集
  2. 02テスト分の業界適合性確認
  3. 03大量依頼向けの並列スクレイピング
  4. 04LLM によるリード分類
  5. 05不足するメールアドレスの補完
  6. 06Google Sheets への結果出力

活用シーン

  1. 01地域を絞った見込み顧客リストの作成
  2. 02複数地域での大量リード収集
  3. 03ニッチな業界のリード分類
  4. 04メール補完済みリードシートの準備

インストール

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

$npx skills add https://github.com/aiagentwithdhruv/skills --skill scrape-leads

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
classify_leads_llm.py
enrich_emails.py
read_sheet.py
scrape_apify_parallel.py
scrape_apify.py
update_sheet.py

詳細

リードのスクレイピングと検証

目標

Apify(code_crafter/leads-finder)を使用してリードをスクレイピングし、関連性(業界の一致率 80% 超)を検証して、Google スプレッドシートに保存します。大規模なスクレイピング(リード 1000 件以上)では、並列スクレイピングを使用すると処理が 3~5 倍高速になります。

入力

  • 業界:対象の業界(例:「配管業者」「ソフトウェア開発会社」)
  • 場所:対象の場所(例:「Texas」「United States」「California」)。スクリプトが Apify の必須形式に自動変換します(米国の州には「, us」が自動で付加されます)。
  • 合計件数:希望するリードの合計件数

スクリプト

すべてのスクリプトは ./scripts/ にあります。

  • scrape_apify.py - 単一スクレイピング。リード 1000 件未満の場合に使用します
  • scrape_apify_parallel.py - 並列スクレイピング。リード 1000 件以上の場合に使用します
  • classify_leads_llm.py - LLM ベースのリード分類
  • enrich_emails.py - AnyMailFinder によるメールアドレスの補完
  • update_sheet.py - スプレッドシートの一括更新
  • read_sheet.py - Google スプレッドシートからのデータ読み取り

手順

小規模なスクレイピング(リード 1000 件未満)
  1. テストスクレイピング

    python3 ./scripts/scrape_apify.py --query "INDUSTRY" --location "LOCATION" --max_items 25 --no-email-filter --output .tmp/test_leads.json
    
  2. 検証

    • .tmp/test_leads.json を読み取ります
    • 少なくとも 20/25(80%)のリードが対象の業界に一致するか確認します
    • 合格:手順 3 に進みます
    • 不合格:作業を停止し、キーワードの見直しをユーザーに依頼します
  3. 全件スクレイピング

    python3 ./scripts/scrape_apify.py --query "INDUSTRY" --location "LOCATION" --max_items TOTAL_COUNT --no-email-filter --output .tmp/leads.json
    
  4. [任意] LLM による分類(複雑なニッチ市場の場合)

    python3 ./scripts/classify_leads_llm.py .tmp/leads.json --classification_type product_saas --output .tmp/classified_leads.json
    
  5. Google スプレッドシートにアップロード

    python3 ./scripts/update_sheet.py .tmp/leads.json --title "Leads - INDUSTRY"
    
  6. 不足しているメールアドレスを補完

    python3 ./scripts/enrich_emails.py SHEET_URL
    
大規模なスクレイピング(リード 1000 件以上)
  1. テストスクレイピング(上記と同じ。アイテム数は 25 件)

  2. 並列で全件スクレイピング

    python3 ./scripts/scrape_apify_parallel.py \
      --query "INDUSTRY" \
      --total_count 4000 \
      --location "United States" \
      --strategy regions \
      --no-email-filter
    

地域の分割は自動で行われます。

  • United States:4 分割(北東部、南東部、中西部、西部)
  • EU/Europe:4 分割(西部、南部、北部、東部)
  • UK:4 分割(イングランド南東部、イングランド北部、スコットランド/ウェールズ、イングランド南西部)
  • Canada:4 分割(オンタリオ、ケベック、西部、大西洋岸)
  • Australia:4 分割(NSW、VIC/TAS、QLD、WA/SA)
  1. 小規模なスクレイピングの手順 4~6 に進みます

出力

納品物は Google スプレッドシートの URL のみです。 .tmp/ 内のローカル JSON ファイルは一時的な中間ファイルです。

例外的なケース

  • リードが見つからない:検索範囲を広げるようユーザーに依頼します
  • API エラー:.env の認証情報を確認します
  • 分類の品質が低い:「不明」が 80% を超える場合は、スクレイピングのキーワードを改善します

環境

.env に以下が必要です。

APIFY_API_TOKEN=your_token
GOOGLE_APPLICATION_CREDENTIALS=path/to/credentials.json
ANTHROPIC_API_KEY=your_key
ANYMAILFINDER_API_KEY=your_key

スキーマ

入力
名前型必須説明
industrystringはい対象の業界(例:'Plumbers'、'Software Agencies')
locationstringはい対象の場所(例:'Texas'、'United States')
total_countintegerはい希望するリードの合計件数
classification_typestringいいえLLM による分類の種類(例:'product_saas')
出力
名前型説明
sheet_urlstringスクレイピングしたリードが記載された Google スプレッドシートの URL
lead_countinteger見つかったリードの件数
認証情報
名前ソース
APIFY_API_TOKEN.env
GOOGLE_APPLICATION_CREDENTIALS.env
ANTHROPIC_API_KEY.env
ANYMAILFINDER_API_KEY.env
組み合わせ可能なスキル

このスキルと連携しやすいスキル:classify-leads、casualize-names、instantly-campaigns、onboarding-kickoff

コスト

リード 1 件あたり $0.01~0.02、分類は 1K 件あたり $0.30

コメント