Diese Fallstudie ist anonymisiert. Wir bauen interne Systeme, deshalb beschreiben wir die Art des Systems und warum es entstand, nicht für wen.
Die Ausgangslage
Der Kunde ist ein Handelsunternehmen, für das öffentliche Aufträge einer von mehreren Vertriebskanälen sind. Öffentliche Stellen veröffentlichen jeden Tag Ausschreibungen, und einige davon passen zu dem, was das Unternehmen verkauft.
Die Schwierigkeit ist nicht, dass es zu wenige gäbe. Sie erscheinen auf mehreren Portalen, in unterschiedlichen Formaten, und die meisten sind für ein bestimmtes Unternehmen irrelevant. Die passenden zu finden hieß, ein Portal nach dem anderen zu öffnen, Titel zu lesen, Details aufzuklappen, Fristen zu prüfen und vielversprechende Ausschreibungen in eine Liste zu kopieren. Das war langsam, und eine Ausschreibung auf einem Portal, das an diesem Tag niemand geöffnet hatte, ging leicht unter.
Was wir gebaut haben
Einen selbst gehosteten n8n-Workflow, der jeden Morgen läuft und das Lesen übernimmt. Die Ergebnisse landen in der Datenbank, die das Team ohnehin für seine Vertriebsdaten nutzt, sodass niemand ein weiteres Werkzeug lernen muss.
Der Ablauf:
- Sammeln. Der Workflow holt neue Ausschreibungen von mehreren Vergabeportalen und Aggregatoren. Wo ein Portal strukturierte Daten anbietet, werden sie direkt gelesen; Scraping ist die Rückfallebene, nicht der Standard.
- Vereinheitlichen und deduplizieren. Jede Quelle hat ihr eigenes Format, also wird jeder Datensatz in eine gemeinsame Form gebracht. Dieselbe Ausschreibung erscheint oft auf mehr als einem Portal; die Kopien werden zu einem Datensatz zusammengeführt, der alle Links behält.
- Harte Filter. Wertspanne, Kategorie und Frist werden mit einfachen Regeln geprüft, bevor irgendeine KI beteiligt ist, damit nichts für Ausschreibungen ausgegeben wird, die nicht passen können.
- Günstige Vorauswahl. Ein preiswertes Sprachmodell bewertet jede verbleibende Ausschreibung gegen das Sortiment des Unternehmens. Die meisten enden hier.
- Tiefere Analyse. Ausschreibungen über einem Schwellenwert gehen an ein stärkeres Modell, das die Bekanntmachung und, wo vorhanden, die Vergabeunterlagen liest und Passung, Anforderungen und mögliche Hürden zusammenfasst.
- Erfassen. Jede relevante Ausschreibung wird mit Bewertung, Begründung, Frist und Links zu den Quellen angelegt.
Auch Vorinformationen, die eine künftige Ausschreibung ankündigen, werden verfolgt, und der Datensatz wird aktualisiert, sobald die echte Ausschreibung öffnet, statt ein Duplikat anzulegen.
Wie es im Alltag funktioniert
Das Team beginnt den Tag mit einer kurzen Liste neuer Chancen, bereits bewertet und begründet. Alte Datensätze, mit denen niemand arbeitet, werden regelmäßig bereinigt, anhand einer strikten Liste löschbarer Status, damit nichts verschwindet, woran jemand arbeitet. Ein einfacher Schalter lässt das Team das Anlegen neuer Datensätze pausieren, ohne den Workflow selbst anzufassen.
Niemand öffnet mehr ein Portal nach dem anderen. Das Team entscheidet, auf welche Ausschreibungen es bietet, statt sie zu suchen.
Was wir gelernt haben
Erst Regeln, dann Modelle. Was sich mit einer einfachen Regel entscheiden lässt, etwa Wert, Kategorie oder Frist, sollte so entschieden werden. Sprachmodelle sind gut im Lesen und Beurteilen von Text, und dort verdienen sie ihre Kosten.
Stiller Verlust ist schlimmer als ein Absturz. In jeder Schleife, die Einträge einzeln verarbeitet, müssen auch übersprungene Einträge berücksichtigt werden. Ein Workflow, der Erfolg meldet und still den Rest der Liste verliert, ist der am schwersten zu bemerkende Fehler.
Der Form einer Modellantwort nie trauen. Modellausgaben defensiv parsen und auf einen sicheren Standardwert zurückfallen, damit eine seltsam formatierte Antwort nicht den ganzen Lauf stoppt.
Die Quelldokumente lesen, wenn es darauf ankommt. Bekanntmachungen sind Zusammenfassungen. Wenn ein Feld wie ein Liefertermin wichtig ist, sollte es aus den eigentlichen Dokumenten stammen, mit Quellenangabe, und alles, was nur geschätzt ist, sollte als Schätzung markiert sein.
Modelle an den eigenen Daten auswählen. Bevor man ein Modell wählt oder wechselt, sollte man Kandidaten über echte Beispiele laufen lassen, die das Team bereits beurteilt hat. Der Preis pro Token sagt wenig darüber, wie ein Modell mit Ihrem Text umgeht.
Welche Leistung das ist
Das ist KI-Automatisierung auf Basis von n8n: deterministische Schritte überall, wo die Daten es erlauben, Sprachmodelle nur dort, wo das Lesen und Beurteilen von Text die eigentliche Arbeit ist, und Ergebnisse im Werkzeug, das das Team ohnehin nutzt. Ein verwandtes Beispiel: Lieferantensuche und Fristen-Digest mit n8n.