Lead-Scraping & Verifizierung
Ziel
Scrape Leads mit Apify (code_crafter/leads-finder), verifiziere deren Relevanz (Branchenübereinstimmung > 80%) und speichere sie in einer Google Sheet. Bei großen Scrapes (1000+ Leads) verwende paralleles Scraping für 3-5x schnellere Leistung.
Eingaben
- Branche: Die Zielbranche (z.B. "Klempner", "Software-Agenturen")
- Standort: Der Zielstandort (z.B. "Texas", "Vereinigte Staaten", "Kalifornien"). Skripte formatieren automatisch in Apfys erforderliche Formatierung (US-Bundesstaaten erhalten automatisch den Zusatz ", us").
- Gesamtanzahl: Die gewünschte Gesamtzahl an Leads
Skripte
Alle Skripte befinden sich in ./scripts/:
scrape_apify.py- Einmaliger Scrape, für <1000 Leadsscrape_apify_parallel.py- Paralleles Scraping, für 1000+ Leadsclassify_leads_llm.py- LLM-basierte Lead-Klassifizierungenrich_emails.py- E-Mail-Anreicherung über AnyMailFinderupdate_sheet.py- Batch-Tabellenaktualisierungread_sheet.py- Daten aus Google Sheets lesen
Ablauf
Kleine Scrapes (<1000 Leads)
-
Test-Scrape
python3 ./scripts/scrape_apify.py --query "BRANCHE" --location "STANDORT" --max_items 25 --no-email-filter --output .tmp/test_leads.json -
Verifizierung
- Lese
.tmp/test_leads.json - Prüfe, ob mindestens 20/25 (80%) Leads zur Branche passen
- Bestanden: Fahre mit Schritt 3 fort
- Nicht bestanden: Stoppe und fordere den Benutzer auf, die Suchbegriffe zu verfeinern
- Lese
-
Vollständiger Scrape
python3 ./scripts/scrape_apify.py --query "BRANCHE" --location "STANDORT" --max_items GESAMTANZAHL --no-email-filter --output .tmp/leads.json -
[Optional] LLM-Klassifizierung (für komplexe Nischen)
python3 ./scripts/classify_leads_llm.py .tmp/leads.json --classification_type product_saas --output .tmp/classified_leads.json -
In Google Sheet hochladen
python3 ./scripts/update_sheet.py .tmp/leads.json --title "Leads - BRANCHE" -
Fehlende E-Mails anreichern
python3 ./scripts/enrich_emails.py SHEET_URL
Große Scrapes (1000+ Leads)
-
Test-Scrape (wie oben mit 25 Elementen)
-
Paralleler vollständiger Scrape
python3 ./scripts/scrape_apify_parallel.py \ --query "BRANCHE" \ --total_count 4000 \ --location "Vereinigte Staaten" \ --strategy regions \ --no-email-filterGeografische Partitionierung erfolgt automatisch:
- Vereinigte Staaten: 4-fach (Nordosten, Südosten, Mittlerer Westen, Westen)
- EU/Europa: 4-fach (Westeuropa, Südeuropa, Nordeuropa, Osteuropa)
- Großbritannien: 4-fach (SO-England, N-England, Schottland/Wales, SW-England)
- Kanada: 4-fach (Ontario, Quebec, Westen, Atlantik)
- Australien: 4-fach (NSW, VIC/TAS, QLD, WA/SA)
-
Fahre mit den Schritten 4-6 aus den kleinen Scrapes fort
Ausgaben
Das EINZIGE Ergebnis ist die Google Sheet-URL. Lokale JSON-Dateien in .tmp/ sind temporäre Zwischenschritte.
Randfälle
- Keine Leads gefunden: Fordere den Benutzer auf, die Suche zu erweitern
- API-Fehler: Überprüfe die Anmeldeinformationen in
.env - Niedrige Klassifizierungsqualität: Wenn >80% "unklar" sind, verbessere die Scrape-Keywords
Umgebung
Erforderlich in .env:
APIFY_API_TOKEN=dein_token
GOOGLE_APPLICATION_CREDENTIALS=Pfad/zur/credentials.json
ANTHROPIC_API_KEY=dein_key
ANYMAILFINDER_API_KEY=dein_key
Schema
Eingaben
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
industry | Zeichenkette | Ja | Zielbranche (z.B. 'Klempner', 'Software-Agenturen') |
location | Zeichenkette | Ja | Zielstandort (z.B. 'Texas', 'Vereinigte Staaten') |
total_count | Ganzzahl | Ja | Gesamtzahl der gewünschten Leads |
classification_type | Zeichenkette | Nein | LLM-Klassifizierungstyp (z.B. 'product_saas') |
Ausgaben
| Name | Typ | Beschreibung |
|---|---|---|
sheet_url | Zeichenkette | Google Sheet-URL mit gescrapten Leads |
lead_count | Ganzzahl | Anzahl der gefundenen Leads |
Anmeldeinformationen
| Name | Quelle |
|---|---|
APIFY_API_TOKEN | .env |
GOOGLE_APPLICATION_CREDENTIALS | .env |
ANTHROPIC_API_KEY | .env |
ANYMAILFINDER_API_KEY | .env |
Komponierbar mit
Fähigkeiten, die gut mit dieser zusammenarbeiten: classify-leads, casualize-names, instantly-campaigns, onboarding-kickoff
Kosten
$0.01-0.02 pro Lead + $0.30/1K für die Klassifizierung