Alle Projekte
Kundenprojekt · Automatisierung2026IM BETRIEB

Crawler-Dashboard

Findet, prüft und veröffentlicht Anbieter für mehrere Branchenverzeichnisse und schreibt die SEO-Texte dazu – bedienbar ohne technisches Vorwissen.

66 %
Ausbeute je Crawl, vorher 11 %
2
Portale in Betrieb
1.264
Automatische Tests
0
Kommandozeile nötig

Meine Rolle

Anforderungsaufnahme, Datenbank-Analyse, Architektur, komplette Umsetzung, Anleitung für den Kunden, seit Juli 2026 laufende Weiterentwicklung und Release-Betrieb

Auftraggeber

Betreiber mehrerer regionaler Branchenverzeichnisse

Hinweis: Auftragsarbeit. Kundenname, Domains und Zugangsdaten sind hier bewusst ausgelassen; das Bildschirmfoto zeigt erfundene Beispieldaten. Alle Zahlen stammen aus dem Quellcode und aus dokumentierten Messläufen des Werkzeugs.

Ausgangslage

Das Problem

Der Kunde betreibt Branchenverzeichnisse auf einer gewachsenen PHP-Plattform: ein Handwerker-Verzeichnis einer Großstadt mit rund 1.200 Anbietern in 79 Tabellen, dazu ein bundesweites Portal mit etwa 36.000 Anbietern in 4.900 Städten. Zwei Dinge kosteten ihn dauerhaft Zeit: neue Betriebe zu finden, zu prüfen und einzupflegen, und für jeden Eintrag einen brauchbaren SEO-Text zu schreiben. Der Kunde ist ausdrücklich kein Techniker. Ein Werkzeug, das eine Kommandozeile braucht, Guthaben unbemerkt verbrennt oder bei dem ein Fehlklick die Live-Datenbank beschädigt, wäre unbrauchbar gewesen – und der Quellcode sollte beim Kunden nie im Klartext liegen.

Lösung

Der Ansatz

Eine Next.js-Anwendung, die per Doppelklick startet und lokal beim Kunden läuft – kein Server, kein Login, nur auf dem eigenen Rechner erreichbar. Sie schreibt in die Bestands-Datenbank des jeweiligen Portals, legt dort aber nur eigene Tabellen mit klarem Präfix an und ändert nie eine bestehende. Jeder Treffer durchläuft eine zehnstufige Prüfkette, die nach Kosten sortiert ist: Dubletten, Suchgebiet und Branchenwortlisten kosten nichts und laufen zuerst; erst die Überlebenden sehen die bezahlten Stufen – Anreicherung über Exa, eine zweistufige KI-Schlussprüfung mit Websitebeleg und zweiter Chance, und den Nachtrag fehlender Kontaktdaten. Texte entstehen aus Mustern, die der Kunde selbst pflegt, laufen durch bis zu drei Korrekturdurchgänge und eine harte Abnahme. Weitere Portale bindet ein Assistent in sechs Schritten an. Ausgeliefert wird nur ein obfuskierter Build über ein eigenes Release-Repository, mit maschineller Vorabprüfung gegen Schlüssel und Quelldateien; Updates spielt der Kunde per Knopf selbst ein.

Ergebnis

Was dabei herauskam

Aus stundenlanger Handarbeit wurde ein Vorgang von wenigen Klicks: Orte und Kategorie wählen, Kostenschätzung bestätigen, Stichprobe prüfen. Das Werkzeug betreut heute zwei Portale und ist seit Juli 2026 in laufender Weiterentwicklung – zuletzt kamen Bilder per SFTP, Social-Media-Profile, Bewertungsdaten und quellenspezifische Suchbegriffe dazu. Die Qualität ist nicht behauptet, sondern gemessen: Die KI-Schlussprüfung hob die Ausbeute eines Crawls von 11 auf 66 Prozent, die Branchenprüfung erkannte in einem echten Lauf 11 von 11 Fehleinträgen ohne einen echten Betrieb zu verwerfen, und 1.264 automatische Tests, zwei zeichengenaue Golden-Tests und ein Prüfstand mit echten Rohdaten sichern jede Änderung ab. Ein Handbuch mit 16 Kapiteln und ein Support-Chat in der Oberfläche machen den Kunden unabhängig von Rückfragen.

Einblick

Aus der laufenden Anwendung

Bildschirmfotos aus dem ausgelieferten Werkzeug – zum Vergrößern anklicken. Kundenname und Domain sind in den Aufnahmen unkenntlich gemacht.

Funktionen

Was drin steckt

01

Mehrere Portale, eine Oberfläche

Jedes Portal hat seine eigene Datenbank und sein eigenes Branchenprofil; ein Register in der Haupt-Datenbank hält sie zusammen. Ein Assistent bindet ein neues Portal in sechs Schritten an – bricht er ab, bleibt ein fortsetzbarer Entwurf, kein halbes Projekt. Ein Projektwechsel ist gesperrt, solange ein Auftrag läuft, auch über mehrere Browserfenster hinweg.

02

Crawling über fertige Actors

Google Maps, Gelbe Seiten, beides kombiniert oder eine Web-Recherche je Landkreis – alles über Apify statt über selbstgebaute Scraper. Beim Kombi-Crawl werden Treffer über Telefon und Name plus PLZ zusammengeführt. Die Actor-Kennungen stehen in der Datenbank, nicht im Code, weil Apify seine Actors umbenennt.

03

Kampagnen über bis zu 2.000 Orte

Eine Kategorie über viele Orte: Kostenschätzung mit ausgeschriebenem Rechenweg und getrennten Preisen je Quelle, Ortsliste mit Häkchen, dann Abarbeitung mit höchstens drei gleichzeitigen Läufen. Dieselbe Suche im selben Gebiet läuft nur einmal, es sei denn, jemand wiederholt sie bewusst.

04

Zehn Prüfstufen, nach Kosten sortiert

Was nichts kostet, prüft zuerst: Dubletten im Stapel und gegen den Bestand über Place-ID, Telefon, Domain und Name plus Adresse, dann Suchgebiet, dann Branchenwortlisten. Erst die Überlebenden sehen die bezahlten Stufen. Nichts wird gelöscht – jede Ablehnung steht mit Begründung im Reiter „Gefiltert" und lässt sich von Hand freigeben.

05

KI-Schlussprüfung mit zweiter Chance

Bevor ein Treffer live geht, beurteilt ein Sprachmodell in zwei Stufen Kategorie, Ort und den Beleg auf der Website. Von der Wortliste Aussortierte bekommen eine zweite Chance, weil die Branchenangabe oft die Rechtsform nennt statt das Geschäft. Gemessen an einem echten Lauf: 61 Treffer, 40 veröffentlicht – 66 Prozent Ausbeute statt 11 zuvor.

06

Nachtrag mit Erfindungsschutz

Von 40 veröffentlichten Anbietern eines Laufs hatten 37 keine E-Mail-Adresse. Der Nachtrag liest Startseite, Impressum und Kontaktseite und lässt das Modell die Angaben heraussuchen. Der Kern ist der Erfindungsschutz: Eine E-Mail muss wörtlich im gelesenen Text stehen, Adressen von Webagenturen und Hostern fliegen raus, eine geratene „info@" wird nie übernommen.

07

SEO-Muster statt Prompt-Bastelei

Der Kunde stellt Aufbau, Tonalität, Länge, Pflichtelemente und Feldvorlagen für Überschrift, Meta-Titel und Subline ein – global oder je Kategorie, in seinen Worten. Jeder Text läuft durch bis zu drei Korrekturdurchgänge gegen Werbebehauptungen, maschinellen Rhythmus und Gleichklang mit bestehenden Texten, und am Ende durch eine harte Abnahme, die über die Veröffentlichung entscheidet.

08

Bilder, Social Media, Bewertungen

Je Anbieter ein Website-Screenshot per Apify, hochgeladen per SFTP auf den Portal-Server – das Passwort ist das einzige verschlüsselte Feld, der Host wird beim ersten Kontakt gemerkt. Neun Social-Media-Plattformen werden erkannt, vereinheitlicht und ins Portal gespiegelt; Bewertungskennzahlen und -texte landen in eigenen Tabellen.

09

Support-Chat mit 22 Werkzeugen

Ein Chat-Assistent kennt jeden Bedienschritt, das Innenleben der Texterzeugung und den Wissensgraphen des eigenen Codes. Zwölf Werkzeuge lesen, zehn schreiben – jedes schreibende fragt vorher um Zustimmung, jede Änderung ist protokolliert und rückgängig zu machen. Kostenverursachende Aktionen brauchen eine zweistufige Bestätigung.

10

Alles umkehrbar

Veröffentlichte Einträge und Texte lassen sich einzeln zurückziehen, beim Text wird der vorherige Zustand des Anbieters wiederhergestellt. Löschen ist immer ein Soft-Delete. Nur eine Positivliste von Feldern darf geschrieben werden, Stripe-Verknüpfungen und Nutzer-IDs sind gesperrt, und an Portal-Tabellen gibt es nie ein ALTER.

11

Auslieferung ohne Quellcode

Der Kunde bekommt nur einen obfuskierten Build aus einem getrennten Release-Repository. Eine Vorabprüfung in elf Schritten sucht nach Quelldateien, Schlüsseln und Klartext-Geheimnissen – und prüft die Obfuskierung am Ergebnis, nicht am Schalter. Eine Erlaubnisliste ersetzt die Verbotsliste, seit einmal Build-Artefakte ins Release rutschten. Updates lädt der Kunde per Knopf; scheitert eines, dreht der Starter zurück.

12

Qualität nachgemessen statt behauptet

1.264 Tests in 62 Dateien, dazu zwei zeichengenaue Golden-Tests: Ein zusätzliches Leerzeichen in einer Filterbegründung ist ein Fehlschlag, weil der Kunde sie wörtlich liest. Ein Prüfstand schickt gesicherte Apify-Rohdaten durch die ganze Kette und misst je Ort, wo echte Betriebe hängen bleiben – so lässt sich eine Profiländerung prüfen, bevor sie live geht.

Technik

Eingesetzter Stack

Anwendung

Next.js (App Router)TypeScriptshadcn/uiTailwind CSS~62.000 Zeilen

Daten

MariaDB / MySQL 8mysql2, kein ORM20 eigene Tabellen mit PräfixBestandstabellen nur lesen

Externe Dienste

Apify (3 Actors)DeepSeekExaNominatimSFTP (ssh2)

Auslieferung & Qualität

Start per DoppelklickObfuskiertes ReleaseSelbstaktualisierungVitest + Golden-TestsPrüfstand mit Rohdaten

Weitere Projekte

Ähnliches Vorhaben? Schreib mir.

Ob SaaS-Plattform, KI-Integration oder ein internes Werkzeug, das jemandem den Tag zurückgibt – ich bringe Ideen schnell und professionell zum Laufen.