scrape-leads について
scrape-leads は、Apify で企業リードを収集・確認し、Google Sheets に保存するスキルです。単独および並列スクレイピングに対応し、LLM による分類やメールアドレスの補完も行えます。
主な機能
- 01業界と地域を指定したリード収集
- 02テスト分の業界適合性確認
- 03大量依頼向けの並列スクレイピング
- 04LLM によるリード分類
- 05不足するメールアドレスの補完
- 06Google Sheets への結果出力
活用シーン
- 01地域を絞った見込み顧客リストの作成
- 02複数地域での大量リード収集
- 03ニッチな業界のリード分類
- 04メール補完済みリードシートの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aiagentwithdhruv/ skills --skill scrape-leadsインストール後、Claude Code で/scrape-leadsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/classify_leads_llm.pyenrich_emails.pyread_sheet.pyscrape_apify_parallel.pyscrape_apify.pyupdate_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 件未満)
-
テストスクレイピング
python3 ./scripts/scrape_apify.py --query "INDUSTRY" --location "LOCATION" --max_items 25 --no-email-filter --output .tmp/test_leads.json -
検証
.tmp/test_leads.jsonを読み取ります- 少なくとも 20/25(80%)のリードが対象の業界に一致するか確認します
- 合格:手順 3 に進みます
- 不合格:作業を停止し、キーワードの見直しをユーザーに依頼します
-
全件スクレイピング
python3 ./scripts/scrape_apify.py --query "INDUSTRY" --location "LOCATION" --max_items TOTAL_COUNT --no-email-filter --output .tmp/leads.json -
[任意] LLM による分類(複雑なニッチ市場の場合)
python3 ./scripts/classify_leads_llm.py .tmp/leads.json --classification_type product_saas --output .tmp/classified_leads.json -
Google スプレッドシートにアップロード
python3 ./scripts/update_sheet.py .tmp/leads.json --title "Leads - INDUSTRY" -
不足しているメールアドレスを補完
python3 ./scripts/enrich_emails.py SHEET_URL
大規模なスクレイピング(リード 1000 件以上)
-
テストスクレイピング(上記と同じ。アイテム数は 25 件)
-
並列で全件スクレイピング
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)
- 小規模なスクレイピングの手順 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
スキーマ
入力
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
industry | string | はい | 対象の業界(例:'Plumbers'、'Software Agencies') |
location | string | はい | 対象の場所(例:'Texas'、'United States') |
total_count | integer | はい | 希望するリードの合計件数 |
classification_type | string | いいえ | LLM による分類の種類(例:'product_saas') |
出力
| 名前 | 型 | 説明 |
|---|---|---|
sheet_url | string | スクレイピングしたリードが記載された Google スプレッドシートの URL |
lead_count | integer | 見つかったリードの件数 |
認証情報
| 名前 | ソース |
|---|---|
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
コメント
Markdown 対応