Tausendkraut hat einen Newsletter, den die Leute wirklich lesen. Und einen Instagram-Account, der drei Wochen lang nichts zu sagen hatte. Die Pipeline, die wir gebaut haben, ändert genau das — autonom, compliance-safe, und ohne einen zweiten Publikationszyklus für den Gründer.
Tausendkraut ist eine Naturkost-Brand mit engagierter Zielgruppe. Der Newsletter läuft wie eine Uhr — Josh schreibt, die Leute lesen. Alles darüber hinaus hakt, weil die Mechanik dahinter fehlt.
Die naive Lösung wäre gewesen, einen Social-Media-Manager einzustellen oder ein Tool zu kaufen, das Instagram-Captions »automatisch« generiert. Beides hätte nicht funktioniert. Ein Freelancer erzeugt denselben Kostendruck nur an einer anderen Stelle. Ein generisches KI-Tool schreibt formelhafte Captions, die für eine Brand wie Tausendkraut wie ein Stock im Weizenfeld wirken — und es hat keine Ahnung, was das Heilmittelwerbegesetz ist.
Die richtige Frage war also eine andere: wie wird der Newsletter — den Josh ohnehin schreibt — zu einem zweiten Distributionskanal, ohne dass Josh einen zweiten Zyklus manuell trägt, und ohne dass wir versehentlich rechtlich angreifbar werden?
Antwort: eine Pipeline, die die Newsletter-Inhalte abgreift, in ein IG-Format übersetzt, auf Compliance prüft, Josh per Telegram zur Freigabe vorlegt und dann selbstständig publiziert. Claude schreibt die Captions, n8n orchestriert, Supabase ist das Gedächtnis, Meta Graph publiziert, ein Regex-Backstop fängt ab, was das Prompt vielleicht durchlässt.
In Systeme reingehen. Das Problem hinter dem Problem finden. Dann erst bauen.
Jeder Newsletter-Versand startet die Pipeline. Sie läuft ohne menschlichen Eingriff — außer an einer Stelle: der Telegram-Freigabe. Das ist Absicht.
Y0HvMGUFV9nLsCTq + wrlz-publisher-004| TK — Newsletter Webhook | Trigger | Empfängt das Sende-Event des Newsletter-Providers. Liefert Betreff, Body, Versandzeitpunkt. |
| TK — Response parsen | Transform | Extrahiert den relevanten Block aus dem Newsletter-HTML. Berechnet den nächsten Berlin-Publikations-Slot via Intl.DateTimeFormat mit Timezone-Shortoffset — funktioniert DST-sicher ohne Hardcoding. |
| Claude — Caption + Compliance | LLM | Generiert eine markenkonforme IG-Caption aus dem Newsletter-Inhalt. Prompt enthält explizite HWG-Regeln: keine Heilversprechen, keine medizinischen Funktionsclaims, keine Hildegard-Mystik. |
| TK — HWG Regex Backstop | Validate | 14 Regex-Pattern gegen Claude's Output — das Fangnetz, falls das Modell kreativ wird. Matches: heilt, lindert, schützt vor, hilft gegen [X], Hildegard.*heil, einzelne Krankheitsnamen. |
| TK — Queue Insert | DB | Schreibt den Draft in content_queue (Supabase). Status wird dynamisch gesetzt: approved wenn clean, needs_legal_review wenn geflaggt — inkl. der gefundenen flagged_terms. |
| TK — Approval-Gate (Telegram) | Human | Schickt Josh den Draft als Telegram-Nachricht mit Bild-Link + Caption + Reply-Buttons. Ein Tap auf ✓ setzt approved_at = now(), ein Tap auf ✗ setzt rejected_at. |
| WRLZ — Publisher | Schedule | Cron 0 9,18 * * * in Europe/Berlin. Zieht den nächsten Eintrag mit status=approved und scheduled_for ≤ now. Catch-up-Cron */30 * * * * fängt verpasste Slots ab. |
| Meta — Graph Post | API | Publisht via Instagram Graph API. Long-lived Token, automatischer Container-Upload bei Carousel-Posts, Error-Retry bei 429. |
| WRLZ — Error Handler | Monitor | Globaler errorTrigger-Workflow — fängt jede ungelöste Exception, schreibt in Telegram-Admin-Channel mit Workflow-Name und Stack-Trace-Fragment. |
Das Heilmittelwerbegesetz (HWG) verbietet in der Werbung für Lebensmittel und Nahrungsergänzungsmittel bestimmte Claims — allen voran alles, was nach medizinischer Wirkung klingt. Für eine Naturkost-Brand ist das keine Grauzone, sondern Abmahngefahr. Ein Social-Media-Post, der »hilft gegen Erkältung« sagt, kostet leicht 2 000 bis 5 000 €.
Claude ist gut, aber nicht perfekt. Ein reiner Prompt-Filter genügt nicht: Modelle können kreativ werden, besonders wenn der Quelltext emotional oder poetisch formuliert ist. Wir brauchen einen Backstop — deterministisch, schnell, transparent.
// Auszug aus TK — HWG Regex Backstop
const HWG_PATTERNS = [
/\bheilt\b/i, /\bheilend\b/i, /\bheilung\b/i,
/\blindert\b/i, /\bschützt\s+vor\b/i,
/\bhilft\s+gegen\b/i,
/\bgegen\s+(erkältung|krebs|demenz|grippe|diabetes|krankheit)\b/i,
/\b(?:hildegard|klostermedizin).{0,20}heil/i,
/\bfunktions?[-\s]?claim\b/i,
/\bentzündungshemmend\b/i, /\bkrebshemmend\b/i,
/\bantiviral\b/i, /\bantibakteriell\b/i,
/\b(?:lungen|herz|nieren|leber)\W{0,5}stärkend\b/i,
];
Jedes Match wird gesammelt, in flagged_terms gespeichert und setzt den Queue-Status auf needs_legal_review. Der Post wird nicht automatisch publiziert, sondern wartet auf manuelle Sichtung.
Fünf Bait-Captions, vier davon bewusst HWG-kritisch konstruiert. Das System hat 4 von 4 Trigger gefangen, die eine clean-Caption ging unberührt durch. Regex-Backstop tut, was er soll.
Die 14 Patterns, eine n8n-Code-Node-Integration und 12 Tests liegen als MIT-lizenziertes npm-Modul auf GitHub: github.com/pasco1280/hwg-guard. Wer selbst eine DACH-Naturkost-Brand automatisiert und einen Backstop braucht, kann das Teil einfach einbauen — npm i hwg-guard, Claude davorschalten, fertig.
Eingebaut sind außerdem: ein globaler Error-Handler, der jeden Fehler in einen Telegram-Admin-Channel meldet; ein Catch-up-Cron, der verpasste Publikations-Slots einholt; ein Health-Check-Endpoint für externes Monitoring. Alles Dinge, die ein Template-Workflow nicht mitbringt.
Der wichtigste Satz beim Bauen war nicht »wie bringen wir Claude dazu, bessere Captions zu schreiben?« — sondern »wie fangen wir ab, wenn Claude sich vertut?«. Jeder automatisierte Workflow, der juristisch oder finanziell relevant wird, braucht eine deterministische Kontrollschicht. Prompt Engineering reicht nicht.
Der zweite Satz: Menschen behalten die letzte Zustimmung. Das Telegram-Approval ist kein Bug, sondern Feature. Es ist der Punkt, an dem der Mensch die Richtung der Marke schützt. Dauert drei Minuten am Tag — und genau deshalb funktioniert es.
Der dritte: Architektur vor Features. Wir hätten zwei Monate in Bild-Generierung und Video-Cutting investieren können, bevor der Basis-Kreislauf lief. Das wäre falsch gewesen. Erst muss die Pipeline stabil Newsletter-in-Post-out liefern, dann können wir den Anhang erweitern.
48 Stunden Setup, Festpreis, kein Abo. Lass uns sprechen.