Tech-Demo · Automation · Scraping

LeadFlow B2B: Workflow-Automatisierung für die Neukundengewinnung

Wie ein asynchroner Lead-Scraper in Python basierend auf der Scrapling-Bibliothek in Kombination mit einem automatischen SEO/Web-Auditor stundenlange manuelle Akquise-Recherchen in Sekundenschnelle erledigt.

Projekt-Fazit & Entwicklungszeit

Dieses Projekt wurde in einer Entwicklungszeit von unter 2 Stunden voll funktionsfähig als Webanwendung implementiert – inklusive lokalem Client-CRM im Browser, der kompletten asynchronen Audit-Logik und dem Pitch-Generator. Das beweist eindrucksvoll die enorme Effizienzsteigerung (Faktor 5 bis 10) durch KI-gestütztes Rapid Prototyping bei vollem Erhalt moderner Clean-Code-Prinzipien.

Executive Summary: Was macht LeadFlow B2B?

Die manuelle Akquise von Neukunden ist für Webdesign-Agenturen, SEO-Consultants und Dienstleister ein zeitaufwendiger Flaschenhals. Man sucht Betriebe in Branchenbüchern heraus, ruft deren Webseiten einzeln auf, analysiert sie manuell auf technische Defizite (fehlendes SSL, schlechte Mobilfreundlichkeit, fehlerhafte Überschriften-Strukturen) und entwirft anschließend individuelle E-Mails.

LeadFlow B2B automatisiert diesen gesamten Workflow lückenlos in einem einzigen Tool:

  • Intelligenter Lead-Scraper: Liest Branchenbucheinträge aus Gelbe Seiten unter Umgehung clientseitiger Verschleierungstechniken (Base64) automatisiert aus.
  • Asynchroner Web-Auditor: Führt zeitgleich Prüfungen auf HTTPS/SSL-Verschlüsselung, Erreichbarkeit, grundlegende SEO-Meta-Tags (Title, H1, Viewport) und CMS-Technologien durch.
  • Lokales Mini-CRM: Speichert Notizen und den Status der Akquise-Pipeline (Neu, Kontaktiert, Kein Interesse, Erfolg) direkt und persistent im Browser (`localStorage`).
  • Dynamischer Pitch-Generator: Generiert auf Knopfdruck E-Mails, die sich exakt an die ermittelten Schwachstellen der Kunden-Website anpassen (oder das Fehlen einer Homepage ansprechen) – wahlweise in professioneller, freundlicher oder dringlicher Tonalität.
LeadFlow B2B Dashboard Interface
Das LeadFlow B2B Interface: Übersichtliche Tabellenansicht mit Filterung nach technischen Mängeln und lokalem CRM-Notizverlauf.

Architektur & Datenfluss

Die Anwendung nutzt ein **FastAPI Backend** in Python für die API-Endpunkte und ein schnelles, interaktives **Vanilla JavaScript/CSS Frontend** im Glassmorphism-Stil. Der Kern-Datenfluss läuft wie folgt ab:

graph TD User["Nutzer / UI"] -->|"1. Suche starten"| API["FastAPI (/api/search)"] API -->|"2. Scraper triggern"| Scraper["scraper.py: scrape_gelbeseiten"] Scraper -->|"3. Get Tarn-HTML"| GS["Gelbe Seiten Portal"] GS -->|"4. HTML mit Base64 Telefon/Web"| Scraper Scraper -->|"5. Base64-Dekodierung"| Base64["Telefon & Website dekodiert"] Base64 -->|"6. Asynchroner Check (httpx)"| Check["Verify Website & SEO-Audit"] Check -->|"SSL, H1, Mobile, CMS-Signaturen"| API API -->|"7. JSON Leads-Liste"| User User -->|"8. Persistieren"| CRM["Mini-CRM (LocalStorage)"] User -->|"9. Pitch anfordern"| PitchAPI["FastAPI (/api/generate_pitch)"] PitchAPI -->|"10. mailto: Link öffnen"| Mail["Outlook / E-Mail Client"]

Unter der Haube: Die technischen Highlights

1. Bypassing clientseitiger Verschleierung

Moderne Portale verschleiern Telefonnummern und Website-Links im HTML-Code, um automatisiertes Bot-Scraping zu verhindern. Sie nutzen dafür Datenattribute wie data-prg oder data-webseitelink, die mit Base64 kodiert sind. LeadFlow B2B umgeht diese Hürde elegant durch einen automatischen Decoder-Algorithmus direkt beim Parsing des DOM:

def decode_b64(val):
    if not val:
        return ""
    try:
        val = val.strip()
        missing_padding = len(val) % 4
        if missing_padding:
            val += '=' * (4 - missing_padding)
        return base64.b64decode(val).decode('utf-8', errors='ignore')
    except Exception:
        return ""

2. Robustheit durch Synonym-Fallback (`SYNONYM_MAP`)

Ein klassisches Problem beim Suchen in Branchenbüchern: Freitext-Suchen im URL-Pfad (z. B. /suche/schulungsanbieter/hamburg) liefern einen 404-Fehler oder null Ergebnisse, wenn die genaue Formulierung nicht als Branchenschlüssel hinterlegt ist. LeadFlow B2B löst dieses Problem durch eine dynamische Übersetzungs- und Fallback-Matrix. Wird nach "Schulungsanbieter" gesucht und kein Treffer erzielt, greift automatisch das Fallback-Verfahren:

# Auszug aus scraper.py
SYNONYM_MAP = {
    "schulungsanbieter": ["weiterbildung", "schulung", "seminare", "schule"],
    "handwerker": ["maler", "dachdecker", "schreiner", "elektriker"],
}

def scrape_gelbeseiten(industry, location, limit):
    results = scrape_gelbeseiten_raw(industry, location, limit)
    if results:
        return results
    
    # Fallback-Suche bei 0 Treffern:
    alternatives = SYNONYM_MAP.get(industry.lower(), [])
    combined = []
    seen = set()
    for alt_kw in alternatives:
        alt_res = scrape_gelbeseiten_raw(alt_kw, location, limit - len(combined))
        for r in alt_res:
            if r["name"] not in seen:
                seen.add(r["name"])
                combined.append(r)
    return combined

Das Tool führt vollautomatisiert im Hintergrund mehrere Suchen aus, kombiniert die Ergebnisse und filtert Duplikate über den Namen heraus. Das macht den Scraping-Workflow extrem ausfallsicher.

3. Asynchroner High-Speed Web-Auditor

Um bei 50 oder 100 Leads nicht mehrere Minuten auf die Website-Prüfungen zu warten, arbeitet die Verifikations-Pipeline komplett asynchron über httpx.AsyncClient. Ein Semaphore-Limit von 10 verhindert dabei ein Überlasten des lokalen Systems sowie ein unabsichtliches Blockieren der Zielseiten (DDoS-Protection):

# Asynchrone Parallelprüfung
sem = asyncio.Semaphore(10)
async def sem_verify(lead):
    async with sem:
        web_info = await verify_website(lead["website"])
        # ... SEO-Tags und CMS parsen ...

Der Technologie-Stack

Komponente Technologie Zweck
Backend Framework FastAPI (Python 3.10+) REST-Schnittstellen für Suche und Pitch-Erstellung
Scraper-Bibliothek Scrapling (DynamicFetcher) Playwright-basiertes Scraping & AJAX-Pagination
Web-Clients HTTPX (async) Parallelisierter Check der Zielwebseiten
Datenhaltung CRM HTML5 Web Storage (localStorage) Browser-seitige Persistierung der CRM-Notizen
UI / Styling CSS Grid/Flexbox & Glassmorphism Modernes Responsive Dark-Design

Rechtlicher Rahmen: Lizenzen, DSGVO & Kaltakquise (UWG § 7)

Nutzung von Open-Source-Bibliotheken: LeadFlow B2B basiert im Kern auf der quelloffenen Scrapling-Bibliothek (https://github.com/D4Vinci/Scrapling), welche unter der liberalen BSD 3-Clause License lizenziert ist. Die Nutzung in dieser eigenständigen Anwendung ist somit vollkommen konform und rechtlich zulässig.

Wer B2B-Kaltakquise in Deutschland betreibt, muss die strengen gesetzlichen Regelungen beachten. Das Tool wurde so konzipiert, dass es den Anwender bei der Einhaltung des rechtlichen Rahmens unterstützt:

E-Mail-Akquise (Kritisch)

Laut UWG § 7 Abs. 2 Nr. 3 ist unverlangte E-Mail-Werbung auch im B2B-Bereich ohne vorheriges Opt-in abmahngefährdet. Das Tool bietet zwar Pitch-Texte, warnt jedoch explizit vor direktem Cold Mailing.

Telefon-Akquise (Zulässig)

Telefonakquise im B2B-Bereich ist bei mutmaßlicher Einwilligung zulässig. Da ein technischer Mangel (kein SSL, kein DSGVO-Hinweis) den Betrieb schädigt, ist ein sachlicher Bezug leicht zu argumentieren.

Post-Akquise (Sicherster Weg)

Postalische Werbung unterliegt keinen strengen Einwilligungspflichten. Der empfohlene Workflow: Betriebe ohne Website filtern, ein Anschreiben drucken und postalisch versenden.

Business Nutzen: Warum Workflow-Automatisierung?

Die manuellen Schritte für 50 B2B-Leads dauern in der Praxis etwa **3 bis 4 Stunden**. LeadFlow B2B benötigt für die komplette Suche, Datenentschlüsselung, asynchrone Prüfung aller 50 Websites und das Sortieren im CRM genau **15 bis 20 Sekunden**. Das bedeutet eine **Zeitersparnis von über 98%** in der Akquise-Vorbereitung. Freelancer und kleine Agenturen gewinnen dadurch wertvolle Stunden, die sie direkt in Kundenprojekte stecken können.

Konkrete Anwendungsfälle aus der B2B-Praxis

Um den Nutzen von LeadFlow B2B zu verdeutlichen, betrachten wir zwei detaillierte Szenarien aus der Praxis eines IT-Dienstleisters bzw. SEO-Consultants:

Szenario 1: Gezielte SSL-Sicherheitsakquise ("Fliesenleger in Köln")

Ausgangslage: Ein lokaler Webdesigner möchte gezielt handwerkliche Betriebe akquirieren, deren Websites unsicher übertragen werden, da Chrome und Safari diese Seiten mit "Nicht sicher" blockieren, was die Conversion-Rate um bis zu 80% senkt.

Ablauf: Der Nutzer sucht nach der Branche Fliesenleger in Köln. Das FastAPI-Backend fragt die API an, umgeht die Base64-Verschlüsselung der Verzeichnisse und prüft alle 30 Treffer. Davon werden 6 Betriebe mit status_code: "NO_SSL" markiert. Der Anwender wählt einen Betrieb aus und fordert über /api/generate_pitch mit tone: "urgent" ein Anschreiben an.

Generierter Betreff: Wichtig: Sicherheits- oder SEO-Fehler auf der Homepage von Fliesenleger Schmidt

E-Mail-Auszug: Bei einer Überprüfung Ihrer Webseite wurden folgende Probleme festgestellt: - Fehlende SSL-Verschlüsselung (Ihre Seite wird in Browsern als 'Unsicher' markiert und schreckt Kunden ab). Wir können diese Fehler für Sie in weniger als 48 Stunden korrigieren...

Resultat: Statt Kaltakquise ohne Argumente kontaktiert der Designer den Betrieb mit einer konkreten Sicherheitswarnung. Dies führt zu einer Conversion-Rate von ca. 15% beim telefonischen Erstkontakt.

Szenario 2: Neukundengewinnung ohne Webpräsenz ("Autowerkstatt in Berlin")

Ausgangslage: Eine lokale Digitalagentur sucht kleine Dienstleister, die noch überhaupt keine eigene Homepage haben und somit in der Websuche für potenzielle Kunden unsichtbar sind.

Ablauf: Der Nutzer sucht nach der Branche Autowerkstatt in Berlin und aktiviert den Filter no_website_only: true. Das System liefert ausschließlich Betriebe zurück, die im Verzeichnis keine Webseite hinterlegt haben.

Generierter Betreff: Neukundengewinnung und digitale Präsenz für KFZ-Service Müller in Berlin

E-Mail-Auszug: ...festgestellt, dass Ihr Unternehmen noch über keine eigene Internetpräsenz verfügt. In der heutigen Zeit ist eine professionelle Website der digitale Stellvertreter Ihres Betriebs... gerne würde ich Ihnen in einem kurzen Telefongespräch aufzeigen, welche Potenziale wir für Ihren Betrieb erschließen können...

Resultat: Der Nutzer exportiert diese Liste als CSV und führt ein zielgerichtetes Anschreiben per Post durch, verknüpft mit dem im Repository enthaltenen verkaufsfertigen website-template.