Vom Impuls zur Publikation – transparent, auditierbar, jederzeit unterbrechbar.
Die Pipeline ist keine Black Box. Du siehst pro Artikel, welche Jobs gelaufen sind, was sie gekostet haben und wo sie ggf. warten. Jeder Schritt kann pausiert, wiederholt oder manuell übernommen werden.
ResearchTopicsJob
Wir sammeln Themen auf Basis deiner Persona, deiner Marken-Historie und aktueller Marktsignale.
- Quellen: Perplexity (über OpenRouter), Gemini Grounding, optional RSS/Sitemap deiner Seite
- Keyword-Cluster werden pro Persona gewichtet
- Themen, die schon in den letzten 90 Tagen erschienen sind, werden ausgefiltert
- Ergebnis landet in der Topics-Queue mit Score & Quellen-Links
GenerateArticleJob
Aus dem Thema wird ein vollständiger Entwurf – mit H-Struktur, Meta-Title, Slug und Meta-Description.
- Modell-Wahl pro Persona: GPT-4o, Claude Sonnet/Opus, Gemini, …
- System-Prompt aus Persona (Ton, Länge, Zielgruppe)
- Optional: eigene Blöcke (FAQ, TL;DR, Zitat) konfigurierbar
- Alle Tokens werden als Kosten-Eintrag erfasst
GenerateImageJob
Titelbild wird erzeugt oder recherchiert. Inklusive Alt-Text und passender Seiten-Ratio.
- Erzeugung via Gemini Nano Banana, Replicate FLUX/SDXL
- Fallback: Unsplash-Suche mit Lizenzprüfung
- Alt-Text wird über Text-LLM erzeugt und im Medium gespeichert
- Format pro Site konfigurierbar (Featured-Ratio, max. kB)
PublishToWordPressJob
Artikel + Bild gehen per WP-REST-API raus. Kategorien, Tags, Medien und Custom Fields werden gesetzt.
- Application-Password – kein Plugin im WP-Core
- Status-Mapping: draft / future / publish je nach Freigabe-Modus
- Embargo-Uhrzeit pro Site und Artikel möglich
- Fehler (z. B. 401, 413) lösen automatischen Retry aus
Laravel-Scheduler + Horizon.
Jede Stage läuft als Job auf einer dedizierten Queue. Der Scheduler stößt die Pipeline an,
Horizon verteilt, retried und meldet. Metriken & Fehler live unter /horizon.
# bootstrap/app.php → schedule() $schedule->job(new ResearchTopicsJob($site)) ->hourlyAt(5) ->withoutOverlapping(); $schedule->job(new GenerateArticleJob($topic)) ->everyFiveMinutes() ->onQueue('articles'); $schedule->job(new GenerateImageJob($article)) ->everyFiveMinutes() ->onQueue('images'); $schedule->job(new PublishToWordPressJob($article)) ->everyFiveMinutes() ->onQueue('publish');
Keine Magie. Nur sauber gebaute Infrastruktur.
Plesk-Vhost mit PHP 8.3 FPM + nginx. MySQL 8, Redis lokal, optional Off-site-Backups.
Datenbank und App in der EU. KI-Anfragen nach Persona konfigurierbar (EU- oder US-Region).
Provider-Keys werden pro Organisation mit Laravel-Encrypt verschlüsselt gespeichert. Zugriff nur serverseitig.
Jeder Job kennt Retry-Strategie, Exponential-Backoff und Failure-Log. Fehlschläge blockieren nicht den Rest.
Plesk-Git-Deploy mit Post-Hook: composer/npm, Migrations, Cache-Warmup, Horizon-Restart.
Laravel-Logs, Horizon-Metriken, externer Uptime-Check. Alerts über E-Mail.