Projekte

Eine Auswahl von Automatisierungsprojekten. Bei jedem steht dabei, ob es sich um ein Produktivsystem für einen Auftraggeber oder um ein eigenes Projekt handelt. Die Ablaufschemata zeigen den tatsächlichen Aufbau der Workflows.

Automatisierte Rechnungserstellung für einen Lieferdienst

Produktivsystem für einen Auftraggeber in Kyjiw · im Einsatz seit Juni 2026

Ein Restaurant mit Lieferdienst musste für jede angenommene Bestellung einen Buchhaltungsbeleg von Hand in einer Excel-Vorlage erstellen. Bei rund 70 Bestellungen am Tag kostete das mehrere Stunden und führte zu Fehlern.

  1. ChoiceQR · WebhookBestellung wird angenommen
  2. n8n · Open APIPositionen, Preise, Rabatte und Lieferadresse abrufen
  3. Python · ReportLabDruckfertigen Beleg als PDF erzeugen, Betrag in Worten
  4. Zustellung über zwei Kanäle
    • E-Mail an den Betrieb
    • Archiv in Google Drive
    • Zeile im Tagesregister (Google Sheets)

Zusätzlich: ein geplanter Job löscht Belege nach Ablauf der dreijährigen Aufbewahrungsfrist. Über SQLite ist jeder Lauf idempotent — doppelt eintreffende Webhooks erzeugen keinen zweiten Beleg.

Automatisch erzeugter Buchhaltungsbeleg mit Beispieldaten
Ein vom System erzeugter Beleg. Alle Namen, Nummern und Positionen sind Beispieldaten.

Ergebnis: Aus mehreren Minuten Handarbeit pro Bestellung wurden rund zwei Sekunden, ohne manuelles Zutun.

n8n · Python · ReportLab · SQLite · REST-API · Webhooks · OAuth2 · Google Drive · Google Sheets · SMTP

KI-Assistent für Instagram-Direktnachrichten

Auftragsprojekt umgesetzt und auf dem Server in Betrieb · wartet auf die Freigabe durch Meta (App Review)

Ein Lebensmittelbetrieb erhält Anfragen über Instagram: Geschäftskunden mit konkretem Bedarf und Endkunden mit wiederkehrenden Fragen zu Sortiment und Lieferung. Der Assistent beantwortet Standardfragen selbst und qualifiziert Geschäftsanfragen vor.

  1. Meta · WebhookNeue Direktnachricht
  2. n8n · Data TablesDoppelte Ereignisse verwerfen, Gesprächsverlauf laden
  3. PrüfungHat ein Mitarbeiter übernommen? Dann schweigt der Bot
  4. Claude oder OpenAIEin Aufruf liefert Einordnung, Antwort und Felder als JSON
  5. Je nach Ergebnis
    • Antwort mit Tipp-Anzeige senden
    • Lead in Google Sheets eintragen
    • Bei Bedarf Manager per E-Mail rufen

Bewusste Entscheidungen: Sprachnachrichten und Bilder werden nicht geraten, sondern an einen Menschen übergeben. Schlägt der KI-Aufruf fehl, eskaliert der Workflow statt eine Antwort zu erfinden. Ein Telegram-Testkanal erlaubt, jede Änderung vor dem Livegang durchzuspielen.

n8n · Claude API · OpenAI API · Meta Graph API · n8n Data Tables · Google Sheets · SMTP · Telegram

Job-Hunter-Bot: KI-gestützte Stellensuche

Eigenes Projekt im täglichen Betrieb seit September 2026 · Code auf GitHub

Für meine eigene Stellensuche: Statt täglich Jobportale durchzusehen, bekomme ich jeden Morgen eine bewertete Auswahl in Telegram. Anschreiben entstehen auf Knopfdruck — abgeschickt wird aber nur, was ich ausdrücklich freigebe.

  1. Täglich 07:30Neue Stellen über die Jobsuche-API der Bundesagentur für Arbeit — im Umkreis und remote
  2. Filter · n8n Data TablesDoppelte, bereits gesehene und fachfremde Stellen aussortieren
  3. GPT-4oJede Stelle von 0 bis 10 gegen mein Profil bewerten, mit Stärken und Lücken
  4. TelegramÜbersicht und Karten mit Buttons für die passenden Stellen
  5. Auf Knopfdruck
    • Individuelles Anschreiben für genau diese Stelle
    • Versand per E-Mail mit Lebenslauf — erst nach Bestätigung
    • Eintrag im Bewerbungsprotokoll

Bewusste Entscheidungen: Die KI darf im Anschreiben nur Angaben aus meinem Profil verwenden, auch das, was ich nicht kann, steht dort. Eine E-Mail geht erst nach zwei Klicks raus, und dieselbe Stelle bekommt nie zwei Bewerbungen. Die Workflows werden per Python erzeugt und über die n8n REST API ausgerollt.

n8n · OpenAI API · Jobsuche-API der Bundesagentur für Arbeit · Telegram Bot API · n8n Data Tables · SMTP · Python

LinkedIn-Autopost aus dem eigenen Blog

Eigenes Projekt im Betrieb seit September 2026 · Code auf GitHub · Projektbericht

Zweimal pro Woche erscheint in meinem LinkedIn-Profil ein fachlicher Beitrag, ohne dass ich ihn schreibe. Grundlage sind die Artikel dieses Blogs; das Beitragsbild wird übernommen statt neu erzeugt.

  1. Di und Do 09:00Neueste Artikel über die WordPress REST-API laden
  2. FilterBereits auf LinkedIn veröffentlichte Artikel aussortieren
  3. ClaudeDen Artikel mit dem größten Praxisnutzen wählen und einen eigenständigen Post schreiben — nur mit Fakten aus dem Artikel
  4. LinkedIn Images APIBeitragsbild vom Blog hochladen
  5. LinkedIn Posts API
    • Beitrag im persönlichen Profil veröffentlichen
    • Bestätigung mit Link in Telegram
    • Erinnerung, bevor der LinkedIn-Zugang abläuft

Bewusste Entscheidungen: Der eingebaute LinkedIn-Node von n8n nutzt eine bereits abgeschaltete API-Version, deshalb laufen die Aufrufe direkt über HTTP mit einstellbarer Version. Kommentare über die API sind LinkedIn-Partnern vorbehalten — der Beitrag erscheint daher ohne Link, statt einen Umweg zu nehmen, der das Konto gefährden würde.

n8n · Claude API · LinkedIn Posts API · OAuth2 · WordPress REST-API · Telegram Bot API

Lokale Betriebe ohne Website finden und gezielt anschreiben

Eigenes Projekt Portfolio-Demo mit synthetischen Daten · Code auf GitHub · Projektbericht

Viele kleine Betriebe haben keine eigene Website oder eine veraltete. Diese Pipeline automatisiert den Weg von der Recherche bis zum druckfertigen Brief, ohne dass etwas versendet wird.

  1. SammelnBetriebe einer Stadt nach Branchen in SQLite laden (Google Places API oder Beispieldaten)
  2. PrüfenWebsites auf HTTPS, Mobilansicht, Alter und Baukasten untersuchen
  3. BewertenJeden Betrieb von 0 bis 100 einordnen: keine Website, veraltet oder in Ordnung
  4. Jinja2Pro Treffer einen Website-Entwurf im Stil der Branche erzeugen
  5. Headless Chrome
    • Einseitiger A4-Brief mit Screenshot und QR-Code
    • Datenschutzhinweis mit Widerspruchsmöglichkeit
    • HTML-Bericht mit Kennzahlen und stärksten Treffern

Bewusste Entscheidungen: Der Kontakt läuft per Post statt per E-Mail, weil Kaltakquise per E-Mail in Deutschland ohne Einwilligung nicht erlaubt ist (§ 7 UWG) und Betriebe ohne Website meist keine öffentliche E-Mail-Adresse haben. Als Datenquelle ist die offizielle Google-Places-API vorgesehen statt Scraping. Die Demo läuft mit erfundenen Daten.

Python · SQLite · Jinja2 · Google Places API · Headless Chrome · QR-Codes

Schichtpläne gegen das Arbeitszeitgesetz prüfen

Eigenes Projekt Referenzprojekt mit erfundenen Daten · Code auf GitHub

Ein Schichtplan als CSV wird geprüft, bevor er verteilt wird: zu lange Tage, fehlende Pausen, zu kurze Ruhezeiten, nicht genehmigte Sonn- und Feiertagsarbeit.

  1. CSV-ImportDeutsche oder englische Spaltenköpfe, Nachtschichten über Mitternacht
  2. ArbeitstageTeilschichten eines Tages zusammenfassen, Lücken ab 15 Minuten zählen als Pause
  3. RegelnTagesarbeitszeit, Pausen, elf Stunden Ruhezeit, Wochenstunden, Sonn- und Feiertage (aus dem Osterdatum berechnet)
  4. Bericht
    • Text, Markdown oder JSON
    • Exit-Code für CI-Prüfungen
    • Fehlerhafte Zeilen werden gemeldet, der Rest wird trotzdem geprüft

Bewusste Entscheidungen: Was das Gesetz mit Durchschnittsbildung erlaubt (mehr als 8 Stunden am Tag), ist nur eine Warnung, weil das Tool das Zeitkonto nicht sieht. Grenzfälle sind getestet: 10 Stunden sind erlaubt, 10 Stunden und 1 Minute nicht. Keine Rechtsberatung.

Python (Standardbibliothek) · GitHub Actions

Bewerbungen aus sechs Kanälen zusammenführen

Eigenes Projekt Referenzprojekt mit erfundenen Daten · Code auf GitHub

Bewerbungen kommen über Webformular, zwei Jobbörsen, ein Agentur-Portal, Chat und E-Mail, oft von derselben Person mit anderer Schreibweise. Das Projekt macht daraus eine Kandidatenliste.

  1. AdapterPro Kanal ein kleines Modul, fehlerhafte Zeilen werden gemeldet statt den Import abzubrechen
  2. NormalisierungTelefonnummern, E-Mail-Adressen und Namen (Müller = Mueller, „Nachname, Vorname“)
  3. SQLiteIdempotenter Import: derselbe Export zweimal erzeugt keine Dubletten
  4. Duplikaterkennung
    • Gemeinsamer Kontakt und verträgliche Namen
    • Kandidatenliste als CSV
    • Prüfliste für Unsicheres

Bewusste Entscheidungen: Ein gemeinsames Telefon oder Sammelpostfach verschmilzt keine Fremden. Eine namenlose Nachricht, die zwei Personen verbinden würde, wird zur Prüfung markiert statt automatisch zusammengeführt.

Python · SQLite

Lebensläufe strukturiert auslesen und bewerten

Eigenes Projekt Referenzprojekt mit erfundenen Daten · Code auf GitHub

Lebensläufe, Nachrichten und Fragebögen (Deutsch und Englisch) werden in feste Felder übersetzt: Führerschein, Staplerschein, Sprachen mit Niveau, Schichtbereitschaft, Gehaltsvorstellung.

  1. ExtraktionRegeln ohne Netzwerk oder Claude mit strukturierter Ausgabe, beide mit demselben Schema
  2. ValidierungJede Antwort wird gegen das Schema geprüft, nie stillschweigend repariert
  3. AbgleichStellenprofil: erfüllt, nicht erfüllt oder unbekannt
  4. Ergebnis
    • Rangliste mit Begründung je Anforderung
    • Auswertung gegen handbeschriftete Dokumente

Bewusste Entscheidungen: Fehlende Angaben gelten als „unbekannt“, nie als „nein“. Gemessen: Regeln 96,8 % auf den Entwicklungsdokumenten, 75 % auf neuen. Der Claude-Teil ist nur gegen einen Ersatz-Client getestet, nicht live. Die Bewertung ist ein Vorschlag für Menschen.

Python · Anthropic API · JSON Schema

Bewerber-Postfach sortieren, Antwortentwürfe vorbereiten

Eigenes Projekt Referenzprojekt mit erfundenen Daten · Code auf GitHub

Eingehende E-Mails werden eingeordnet, und für jede passende Mail entsteht ein Antwortentwurf im Entwürfe-Ordner. Das Programm kann nichts senden: ein Mensch liest, ändert und klickt auf „Senden“.

  1. EinordnenKategorie per Regeln oder Claude, mit Sicherheit
  2. SicherheitsnetzeAnwalt, Datenschutzanfrage oder Unsicherheit: kein Entwurf, die Mail geht an einen Menschen
  3. AntwortFakten aus einer Wissensbasis, Text aus Vorlage oder von Claude; Zahlen, Daten und Zusagen im Entwurf werden geprüft
  4. Ablage
    • Entwürfe-Ordner per IMAP oder Maildir
    • Markierungen, wo die Prüfung genau hinsehen soll

Bewusste Entscheidungen: Die KI schlägt vor, der Code entscheidet. Gemessen: der Regel-Klassifikator erkennt 100 % der Mails, mit denen er entwickelt wurde, aber nur 28,6 % auf neuen. Deshalb gelten Sicherheitsnetze, die die Mail selbst prüfen. IMAP und Claude sind nur gegen Ersatz-Server und -Client getestet.

Python · IMAP · Anthropic API

Diese Website

Eigenes Projekt im täglichen Betrieb

Der Blog auf dieser Seite wird automatisch befüllt. Server, Betrieb und Absicherung liegen ebenfalls bei mir.

  1. 3 RSS-FeedsAktuelle Meldungen zu KI und Automatisierung
  2. FilterNur frische und thematisch passende Meldungen, nichts doppelt
  3. Quelle lesenVolltext der Originalmeldung laden
  4. OpenAIEigenständiger Beitrag mit Gliederung, Rubrik und Bildidee
  5. PrüfungLänge, Pflichtfelder und erlaubtes HTML kontrollieren
  6. WordPress REST-API
    • Titelbild erzeugen und hochladen
    • Beitrag in der passenden Rubrik veröffentlichen

n8n · OpenAI API · WordPress REST-API · Linux · nginx · PM2 · Let’s Encrypt

Automatisierte Besprechungsprotokolle

Eigenes Projekt

Besprechungsnotizen sind oft unvollständig oder kommen zu spät. Eine Aufzeichnung wird über einen definierten Eingang eingereicht, transkribiert und anschließend von einem Sprachmodell ausgewertet: Zusammenfassung, getroffene Entscheidungen, offene Aufgaben. Transkription und Auswertung sind bewusst getrennt, damit sich jede Stufe einzeln prüfen und verbessern lässt. Das Ergebnis ist ein Entwurf zur Durchsicht, kein fertiges Protokoll.

n8n oder Make.com · Whisper-kompatible Transkription · OpenAI API

Telegram-Assistent mit KI-Antworten

Eigenes Projekt

Ein Assistent, der auf Nachrichten in einem persönlichen Telegram-Konto mit KI-generierten Antworten reagiert. Persönliche Konten lassen sich nicht über die Bot-API automatisieren, sondern nur über einen MTProto-Client. Der Dienst läuft deshalb als eigener Container und ist über eine Freigabeliste und bewusste Ratenbegrenzungen abgesichert.

Python · Telethon · n8n · OpenAI API · Docker