gmaps-leads について
gmaps-leadsは、Google Mapsから事業者情報を集め、ウェブサイトのスクレイピングと連絡先抽出でデータを補うリード生成スキルです。結果をGoogle Sheetsに同期でき、既存シートへの追加や並列処理にも対応します。
主な機能
- 01Google Mapsの事業者情報取得
- 02ウェブサイトと問い合わせページの抽出
- 03DuckDuckGoによる連絡先情報の補完
- 04Claudeによる連絡先の構造化抽出
- 05Google Sheets同期と重複排除
- 06件数と並列ワーカーの設定
活用シーン
- 01地域事業者の見込み客リスト作成
- 02見込み客のオーナー情報補完
- 03シートへの新規見込み客の追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aiagentwithdhruv/ skills --skill gmaps-leadsインストール後、Claude Code で/gmaps-leadsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/extract_website_contacts.pygmaps_lead_pipeline.pygmaps_parallel_pipeline.pyscrape_google_maps.pyupdate_sheet.py詳細
Google Maps リード獲得
目標
Google Maps から質の高い B2B リードを生成し、ウェブサイトをスクレイピングして Claude で構造化された連絡先データを抽出することで、連絡先情報を詳細に補完します。
入力
| パラメーター | 必須 | 説明 |
|---|---|---|
--search | はい | 検索クエリ(例:「plumbers in Austin TX」) |
--limit | いいえ | 最大結果数(デフォルト:10) |
--sheet-url | いいえ | 追記先の既存シート |
--workers | いいえ | 並列ワーカー数(デフォルト:3) |
スクリプト
./scripts/gmaps_lead_pipeline.py- メインのオーケストレーション./scripts/gmaps_parallel_pipeline.py- 並列処理版./scripts/scrape_google_maps.py- Google Maps スクレイパー./scripts/extract_website_contacts.py- ウェブサイト連絡先抽出ツール./scripts/update_sheet.py- Google Sheets 同期
プロセス
基本的な使い方
# Create new sheet with 10 leads
python3 ./scripts/gmaps_lead_pipeline.py --search "plumbers in Austin TX" --limit 10
# Append to existing sheet (recommended for building database)
python3 ./scripts/gmaps_lead_pipeline.py --search "dentists in Miami FL" --limit 25 \
--sheet-url "https://docs.google.com/spreadsheets/d/..."
# Higher volume
python3 ./scripts/gmaps_lead_pipeline.py --search "roofing contractors in Austin TX" \
--limit 50 --workers 5
パイプラインの手順
- Google Maps のスクレイピング - Apify
compass/crawler-google-placesがリスティングを返します - ウェブサイトのスクレイピング - メインページと最大 5 件の連絡先ページを取得します
- ウェブ検索による情報補完 - DuckDuckGo でオーナーの連絡先情報を検索します
- Claude による抽出 - Claude 3.5 Haiku が構造化された連絡先情報を抽出します
- Google Sheet との同期 - 新しいリードを追記し、lead_id で重複を除外します
出力スキーマ(36 フィールド)
ビジネスの基本情報: business_name、category、address、city、state、zip_code、phone、website、rating、review_count
抽出した連絡先: emails、additional_phones、business_hours
ソーシャルメディア: facebook、twitter、linkedin、instagram、youtube、tiktok
オーナー情報: owner_name、owner_title、owner_email、owner_phone、owner_linkedin
チームの連絡先: チームメンバーの JSON 配列
メタデータ: lead_id、scraped_at、search_query、pages_scraped、enrichment_status
コスト
| コンポーネント | リード 1 件あたり |
|---|---|
| Apify Google Maps | 約 $0.01-0.02 |
| Claude Haiku | 約 $0.002 |
| DuckDuckGo/HTTP | 無料 |
| 合計 | 約 $0.012-0.022 |
100 件のリードの場合:合計で約 $1.50-2.50
トラブルシューティング
- 「No businesses found」:クエリに場所を含めてください
- 403 Forbidden:サイトの約 10-15% がスクレイパーをブロックします(適切に処理されます)
- 認証の問題:
token.jsonを削除して再認証してください - 重複:lead_id(name|address の MD5)を使用して重複を除外します
環境
APIFY_API_TOKEN=your_token
ANTHROPIC_API_KEY=your_key
スキーマ
入力
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
search | string | はい | 検索クエリ(例:'plumbers in Austin TX') |
limit | integer | いいえ | 最大結果数(デフォルト:10) |
sheet_url | string | いいえ | 追記先の既存シート |
workers | integer | いいえ | 並列ワーカー数(デフォルト:3) |
出力
| 名前 | 型 | 説明 |
|---|---|---|
sheet_url | string | 36 フィールドのリードデータを含む Google Sheet の URL |
lead_count | integer | スクレイピングしたリード数 |
認証情報
| 名前 | ソース |
|---|---|
APIFY_API_TOKEN | .env |
ANTHROPIC_API_KEY | .env |
組み合わせ可能なツール
このツールと組み合わせやすいスキル:classify-leads、casualize-names、instantly-campaigns、onboarding-kickoff
コスト
リード 1 件あたり $0.012-0.022