Was macht Google Maps Lead-Generierung?
Ziel
Generieren Sie hochwertige B2B-Leads aus Google Maps mit umfassender Kontaktanreicherung durch Scraping von Websites und Verwendung von Claude zur Extraktion strukturierter Kontaktdaten.
Eingaben
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
--search | Ja | Suchanfrage (z.B. "Klempner in Berlin") |
--limit | Nein | Maximale Ergebnisse (Standard: 10) |
--sheet-url | Nein | Bestehende Tabelle zum Anhängen |
--workers | Nein | Parallele Worker (Standard: 3) |
Skripte
./scripts/gmaps_lead_pipeline.py- Hauptorchestrierung./scripts/gmaps_parallel_pipeline.py- Parallele Version./scripts/scrape_google_maps.py- Google Maps Scraper./scripts/extract_website_contacts.py- Website-Kontaktextraktor./scripts/update_sheet.py- Google Sheets Synchronisation
Ablauf
Grundlegende Nutzung
# Neue Tabelle mit 10 Leads erstellen
python3 ./scripts/gmaps_lead_pipeline.py --search "Klempner in Berlin" --limit 10
# An bestehende Tabelle anhängen (empfohlen für Datenbankaufbau)
python3 ./scripts/gmaps_lead_pipeline.py --search "Zahnärzte in München" --limit 25 \
--sheet-url "https://docs.google.com/spreadsheets/d/..."
# Höheres Volumen
python3 ./scripts/gmaps_lead_pipeline.py --search "Dachdecker in Stuttgart" \
--limit 50 --workers 5
Pipeline-Schritte
- Google Maps Scrape - Apify
compass/crawler-google-placesgibt Einträge zurück - Website Scraping - Holt die Hauptseite + bis zu 5 Kontaktseiten
- Web-Suche-Anreicherung - DuckDuckGo-Suche nach Besitzerkontaktinformationen
- Claude-Extraktion - Claude 3.5 Haiku extrahiert strukturierte Kontakte
- Google Sheets Synchronisation - Fügt neue Leads hinzu, dedupliziert anhand von lead_id
Ausgabeschema (36 Felder)
Basisinformationen: business_name, category, address, city, state, zip_code, phone, website, rating, review_count
Extrahierte Kontakte: emails, additional_phones, business_hours
Soziale Medien: facebook, twitter, linkedin, instagram, youtube, tiktok
Besitzerinfo: owner_name, owner_title, owner_email, owner_phone, owner_linkedin
Team-Kontakte: JSON-Array der Teammitglieder
Metadaten: lead_id, scraped_at, search_query, pages_scraped, enrichment_status
Kosten
| Komponente | Pro Lead |
|---|---|
| Apify Google Maps | ~$0,01-0,02 |
| Claude Haiku | ~$0,002 |
| DuckDuckGo/HTTP | Kostenlos |
| Gesamt | ~$0,012-0,022 |
Für 100 Leads: ~$1,50-2,50 gesamt
Fehlerbehebung
- "Keine Unternehmen gefunden": Ort in der Suchanfrage angeben
- 403 Forbidden: ~10-15% der Seiten blockieren Scraper (wird elegant behandelt)
- Authentifizierungsprobleme:
token.jsonlöschen und erneut authentifizieren - Duplikate: Verwendet lead_id (MD5 aus Name|Adresse) zur Deduplizierung
Umgebung
APIFY_API_TOKEN=ihr_token
ANTHROPIC_API_KEY=ihr_schlüssel
Schema
Eingaben
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
search | string | Ja | Suchanfrage (z.B. 'Klempner in Berlin') |
limit | integer | Nein | Maximale Ergebnisse (Standard: 10) |
sheet_url | string | Nein | Bestehende Tabelle zum Anhängen |
workers | integer | Nein | Parallele Worker (Standard: 3) |
Ausgaben
| Name | Typ | Beschreibung |
|---|---|---|
sheet_url | string | Google Sheets URL mit 36-Felder-Lead-Daten |
lead_count | integer | Anzahl der gescrapten Leads |
Anmeldedaten
| Name | Quelle |
|---|---|
APIFY_API_TOKEN | .env |
ANTHROPIC_API_KEY | .env |
Kombinierbar mit
Skills, die gut mit diesem kombinierbar sind: classify-leads, casualize-names, instantly-campaigns, onboarding-kickoff
Kosten
$0,012-0,022 pro Lead