Mit n8n zur automatisierten Jobsuche
Inhaltsverzeichnis zum Aufklappen
Wie aus einer einfachen Automatisierung ein komplexes Workflow-Projekt wurde
„n8n automatisiert mein Leben.“ Das klingt nach einem Versprechen, das ich testen möchte. Und ich habe den perfekten Anwendungsfall: die Jobsuche.
Kaum etwas ist so zäh wie das ständige Durchsuchen von Jobportalen. Mal liefern sie zu wenige Treffer, mal zu viele irrelevante Ergebnisse, mal versperren Banner und Filter den Blick auf das Wesentliche. Also stelle ich mir eine einfache Frage: Wenn spannende Stellen nicht exklusiv bei Headhuntern landen, sondern oft direkt auf den Karriereseiten der Unternehmen stehen, warum suche ich dann nicht genau dort?
Die Konsequenz ist naheliegend: Ich baue mir eine Automatisierung. Mit n8n. Nicht aus Not, sondern aus … naja, strategischer Faulheit.
Was ist n8n?
n8n, gesprochen „n-eight-n“, ist eine Automatisierungsplattform mit einem knotenbasierten Editor. Workflows entstehen also nicht als klassischer Programmcode, sondern aus einzelnen Bausteinen, die miteinander verbunden werden. [1]
Man kann n8n selbst hosten oder bei Anbietern wie IONOS oder Strato betreiben lassen. Da n8n auch als Docker-Container verfügbar ist, lässt sich die Plattform schnell einrichten. Benötigt wird lediglich eine kostenlose Lizenz, die man nach Angabe einer E-Mail-Adresse erhält.
Auf den ersten Blick ist n8n eine Low-Code-Plattform mit grafischer Oberfläche. Richtig spannend wird n8n durch die vielen Integrationen. Dazu gehören unter anderem:
- Kommunikation: Telegram, Slack, Discord, Microsoft Teams
- E-Mail: Gmail, SMTP, Mailchimp
- Aufgabenmanagement: Trello, Todoist, Jira
- Datenbanken: MongoDB, MySQL, Redis
- Social Media: YouTube, X, Facebook
- KI-Modelle und Agenten: OpenAI, Claude und weitere Anbieter
Daneben gibt es viele weitere Dienste, von denen ich vorher noch nie gehört habe. Die Stärke von n8n liegt dabei nicht nur in der Menge der Integrationen, sondern in der Verbindung dieser Dienste: Aus einzelnen Werkzeugen entstehen automatisierte Abläufe.
Die Aufgabe: Karrierewebseiten automatisch prüfen
Ich habe eine Liste mit Unternehmen, die ich mir als Arbeitgeber vorstellen kann. Zu jedem Unternehmen kenne ich die Webseite. Diese Webseiten möchte ich automatisch prüfen lassen.
Das Ziel ist eine kurze Rückmeldung: Sucht das Unternehmen aktuell Softwareentwicklerinnen oder Softwareentwickler? Der Workflow soll täglich laufen, damit ich passende Stellen früh sehe, ohne ständig selbst Karriereseiten durchsuchen zu müssen.
Als Erstes setze ich n8n als Docker-Container auf:
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
3a ich bisher kaum Erfahrung mit Low-Code- und No-Code-Plattformen [2] habe, starte ich passend zum aktuellen Vibe-Coding-Trend: Ich lasse mich von verschiedenen Chatbots unterstützen. Mal hilft Mistral, mal Claude, mal ChatGPT. Ich nutze, was in der jeweiligen Situation am besten weiterhilft. [2]
Der geplante Ablauf ist zunächst einfach:
- Eine Unternehmenswebseite wird geladen.
- Der Workflow sucht eine passende Karriere- oder Jobseite.
- Diese Seite wird ausgelesen.
- Ein KI-Modell prüft, ob dort Entwicklerstellen ausgeschrieben sind.
- Das Ergebnis wird gespeichert.
Offensichtlich wird diese Ansatz nicht jede offene Stellen finden, denn nicht alle Unternehmen legen ihre Jobs dort ab, wo man sie erwartet. Zudem verlangen manche Seiten eine manuelle Sucheingabe, andere liefern unklare Inhalte oder blockieren automatisierte Abrufe.
Eine Stichprobe zeigt aber: Der Ansatz liefert genug Treffer, um weiterzumachen. Bei mehr als 2.000 Unternehmen auf meiner Liste muss der Workflow nicht perfekt sein. Er muss genug passende Hinweise liefern.
Zum Scrapen der Webseiten nutze ich Jina AI. [3] Für die Analyse der Webseiteninhalte verwende ich Claude Console. [4]
Version 1: No Code & Low Code
In der ersten Version möchte ich so viel wie möglich über die UI-Knoten von n8n lösen. Der Workflow soll mit einem Loop-Knoten über die einzelnen URLs laufen, daraus mögliche Job-URL-Kandidaten erzeugen und anschließend mit einem HTTP-Knoten prüfen, ob diese Seiten erreichbar sind.
Der Ansatz wirkt zunächst einfach. In der Praxis läuft der Workflow aber nur mit der ersten URL sauber durch. Eine Nachfrage bei meinem Chatbot bringt die erste Ernüchterung: Verschachtelte Loops werden nicht unterstützt. Die n8n Docs AI bestätigt das später und empfiehlt stattdessen Sub-Workflows, möglichst flache Datenstrukturen oder Reset-Optionen.
Keine dieser Optionen gefällt mir so richtig. Also verwerfe ich den reinen No-Code-Ansatz.
Stattdessen verschiebe ich die Suche nach der passenden Job-URL in einen Code-Knoten. Dieser prüft für jede Unternehmensseite mehrere mögliche Job-URL-Kandidaten und gibt den passenden Kandidaten zurück. Anschließend wird die gefundene Jobwebseite mit jina.ai gescraped. Das Ergebnis geht an Claude Console mit der Frage, ob Entwicklerjobs vorhanden sind.
Der Ablauf klingt immer noch einfach. Schnell zeigt sich aber, dass selbst dieser vermeintlich kleine Prozess deutlich mehr Hilfslogik braucht als erwartet.
Abbildung: All-in-one Jobsuche
- Zu einer URL lässt sich keine Job-URL finden.
- Der Workflow läuft in ein Limit bei jina.ai in der kostenlosen Version.
- Claude Console meldet 529 Overload, trotz bezahltem Account.
Sobald einer dieser Fehler auftritt, bricht der Workflow ab. Ein Neustart beginnt wieder von vorn. Alle bisherigen Zwischenergebnisse sind verloren, werden erneut erzeugt und verbrauchen noch einmal Tokens.
An diesem Punkt wird klar: Die Automatisierung funktioniert grundsätzlich. Aber sie ist noch nicht robust.
Zwischenfazit: Für Entwickler fühlt sich das schnell umständlich an
Viele der bisherigen Probleme lassen sich lösen. Ich kann zusätzliche Pfade für die Fehlerbehandlung einbauen, Verzögerungen ergänzen, API-Limits berücksichtigen und Retries definieren.
Zu diesem Zeitpunkt habe ich bereits zwei Tage in n8n gesteckt und beginne, das Ergebnis kritisch zu betrachten. Im Kern macht der Workflow nichts anderes als:
- Daten aus Excel laden,
- in zwei Loops zwei APIs abfragen und
- Daten wieder in Excel speichern.
Mit den passenden NuGet-Paketen erreiche ich das gleiche in C# deutlich schneller. Dann arbeite ich in einer vollwertigen IDE, habe Debugging, kann Zwischenergebnisse einfach speichern und den Code gezielt testen.
Ein weiterer Vorteil: Meine IDE hat bereits einen Chatbot integriert. Ich muss meine Probleme nicht ausführlich beschreiben, weil der Chatbot meinen Code sieht und direkt im Kontext helfen kann.
Als Softwareentwickler bin ich an diesem Punkt enttäuscht und will das Projekt eigentlich beenden.
Ein paar Tage später stelle ich mir jedoch eine andere Frage: Gehe ich das Problem vielleicht falsch an?
In C# würde ich nicht alles in eine einzige Klasse schreiben. Es gäbe Komponenten für den Import, für die API-Anbindung, für den Export und für die Logik, die alles zusammenführt.
Also wende ich mich erneut an die Chatbots. Diesmal frage ich Mistral, Claude und ChatGPT parallel, um die Antworten besser einordnen zu können. Mein Problem ist klar: Der Workflow wird trotz Low-Code-Ansatz schnell groß und unübersichtlich, sobald ich Fehlerbehandlung, Datenaufbereitung und Retries einbaue. Außerdem gibt es kein eingebautes Pause und Continue, obwohl viele Teile eigentlich parallel laufen könnten.
Die Antworten gehen in dieselbe Richtung:
Workflows sollten nicht groß werden. Man sollte mit ihnen nicht klassisch programmieren, sondern Teilaufgaben orchestrieren.
Das verändert meinen Blick auf n8n.
Version 2: Mehrere Workflows statt eines großen Workflows
Eine Möglichkeit besteht darin, Teile des Workflows auszulagern. Zum Beispiel lässt sich der Import aus Excel in einen Sub-Workflow verschieben. Dieser Sub-Workflow definiert, welche Daten er erhält und welche Daten er zurückgibt. Dadurch wird der Hauptworkflow kleiner und besser lesbar.
Für meinen Anwendungsfall reicht das allein aber noch nicht. Ich möchte mehr als nur einen aufgeräumteren Workflow. Drei Punkte sind mir besonders wichtig:
- Pause und Continue: Bereits verarbeitete Daten sollen nicht noch einmal verarbeitet werden.
- Zwischenergebnisse: Ich möchte sehen, welche Daten bereits vorliegen, auch um den Workflow bei Fehlern gezielt anpassen zu können.
- Parallelisierung: Sobald eine Job-URL gefunden ist, sollen Scraping und Analyse weiterlaufen können, während parallel schon die nächste Job-URL gesucht wird.
Deshalb teile ich den Workflow in fünf kleinere Workflows auf:
- Import und Aufbereitung der Daten,
- Job-URL ermitteln,
- Jobwebseite mit jina.ai scrapen,
- Jobwebseite mit Claude Console analysieren und
- Ergebnisse exportieren.
Abbildung: Scrap webside mit Jina AI
Für den Datenaustausch nutze ich eine Data Table in n8n. Das ist eine leichtgewichtige Datenbanktabelle innerhalb von n8n. Sie lässt sich über eigene Data-Table-Knoten lesen und beschreiben. SQL-Skripte sind dafür nicht nötig. Stattdessen nutzt man die üblichen CRUD-Operationen direkt über die n8n-Knoten.
Standardmäßig ist der Speicherplatz für alle Tabellen auf 50 MB begrenzt. Für meinen Anwendungsfall reicht das aus. Bei Bedarf lässt sich das Limit über Umgebungsvariablen anpassen. Eine Einschränkung bleibt: In der Web-UI lassen sich längere Strings nur bis zu einer nicht näher definierten Grenze anzeigen.
Wichtig ist die klare Trennung der Zuständigkeiten. Die Workflows schreiben nicht in dieselben Spalten. Jeder Workflow befüllt nur die Felder, für die er verantwortlich ist. So vermeide ich Konflikte zwischen parallel laufenden Workflows.
Das Ergebnis ist deutlich stabiler als die erste Version. Während ein Workflow fortlaufend Job-URLs sucht, kann ein anderer bereits Webseiten scrapen. Ein weiterer Workflow analysiert die Inhalte mit Claude Console. Jeder Workflow hat nur eine kleine Aufgabe. Dadurch bleiben auch Fehlerbehandlung, Retries und Rate-Limits überschaubar.
Die Zwischenergebnisse sind jederzeit sichtbar und bleiben auch nach einem Neustart der n8n-Instanz erhalten.
Ein Punkt bleibt offen: Eine echte Orchestrierung gibt es in meiner Lösung noch nicht. Ich starte die Workflows aktuell von Hand und habe noch keinen eleganten Weg gefunden, wie sie sich gegenseitig informieren. An dieser Stelle kann ich noch nicht beurteilen, ob n8n dafür passende Funktionen bietet, ob ich sie falsch verstehe oder ob mir schlicht Erfahrung fehlt.
Fazit: n8n ist stark, aber kein Ersatz für Softwarearchitektur
Nach meinen ersten Erfahrungen verstehe ich gut, warum n8n gerade so viel Aufmerksamkeit bekommt. Das Tool macht Automatisierung für eine deutlich größere Zielgruppe zugänglich. Gerade Menschen ohne Programmierhintergrund können damit Abläufe bauen, die vor wenigen Jahren noch professionellen Entwicklern vorbehalten waren. In Verbindung mit Chatbots und modernen KI-Modellen entstehen schnell erstaunlich leistungsfähige Automatisierungen.
Gleichzeitig relativiert sich der anfängliche Enthusiasmus, sobald der Workflow komplexer wird. Dann geht es nicht mehr nur darum, ein paar Systeme miteinander zu verbinden. Es geht um Fehlerbehandlung, Zwischenergebnisse, Datenmodelle, Nachvollziehbarkeit und Wartbarkeit.
Besonders kritisch sehe ich die Qualitätssicherung. Mir ist noch nicht klar, wie sich Konzepte wie Test-Driven Development sinnvoll auf n8n-Workflows übertragen lassen. Auch für Logik oder Code-Nodes fehlen mir komfortable Testmöglichkeiten, wie ich sie aus etablierten Entwicklungsumgebungen kenne. Dadurch entsteht schnell ein Risiko: Automatisierungen funktionieren zwar, bleiben aber schwer testbar, schwer nachvollziehbar und langfristig schwer wartbar.
Interessant ist für mich, dass die meisten Probleme in diesem Experiment nicht bei der KI liegen. Bei gleichbleibendem Modell liefert sie erstaunlich stabile Antworten. Die eigentlichen Schwierigkeiten entstehen an den Schnittstellen zur Außenwelt: Webseiten liefern fehlerhafte Statuscodes, Karrierebereiche liegen an unerwarteten URLs oder fehlen ganz, und gelegentliche Überlastungen von KI-Diensten sorgen für zusätzliche Fehlerquellen.
Auch die KI-Integration selbst wirkt an manchen Stellen bewusst eingeschränkt, etwa beim direkten Auslesen und Verarbeiten von Webseiteninhalten. Ob dahinter technische, rechtliche oder produktstrategische Gründe stehen, kann ich nicht beurteilen. Für die praktische Arbeit spielt es trotzdem eine Rolle.
Am Ende bleibt ein gemischter Eindruck. n8n macht Automatisierung und KI deutlich zugänglicher. Das ist ein großer Gewinn. Gleichzeitig frage ich mich, wie viele der heute entstehenden Projekte langfristig gepflegt und weiterentwickelt werden können. Die Einstiegshürde ist niedrig. Die eigentliche Herausforderung beginnt danach: bei Wartbarkeit, Transparenz und Qualitätssicherung.
Hinweise:
[1] n8n – AI agents and workflows you can see and control
[2] Was ist Low-Code-Entwicklung und was ist No-Code-Entwicklung?
[3] Was ist Vibe Coding genau?
[4] Jina AI – Your Search Foundation supercharged
[5] Claude Console
Benötigt Ihre vorhandene Softwarearchitektur eine Modernisierung? Dann erzählen Sie uns von Ihrem Projekt oder laden Sie sich alternativ den t2informatik Steckbrief herunter.
Wollen Sie als Meinungsmacherin oder Kommunikator über n8n und den Erfahrungsbericht diskutieren? Dann teilen Sie den Beitrag gerne in Ihrem Netzwerk.
David Störmer hat einen weiteren Artikel im t2informatik Blog veröffentlicht:

David Störmer
David Störmer ist Softwareentwickler und -architekt mit einer Leidenschaft für sauberen Code und testgetriebene Entwicklung (TDD). Sein Interesse für Programmierung wurde früh geweckt: Mit 15 entdeckte er in der Bibliothek ein Buch über QBasic und brachte damit erste Töne aus dem Windows-95-Rechner seiner Eltern hervor – ein prägendes Erlebnis.
Im Studium der Medieninformatik spezialisierte er sich auf Computer Vision und Visualization Technologies, behielt aber stets den Fokus auf wartbaren, klar strukturierten Code. TDD wurde für ihn zur Selbstverständlichkeit: „Der schönste Code nützt nichts, wenn nicht dokumentiert ist, was er leisten soll.“
Privat pendelt David zwischen Familienausflügen zum Karls Erdbeerhof und Projekten wie Hausautomatisierung oder der Sanierung des Eigenheims – immer mit dem Ziel, Technik und Alltag sinnvoll zu verbinden.
Im t2informatik Blog veröffentlichen wir Beträge für Menschen in Organisationen. Für diese Menschen entwickeln und modernisieren wir Software. Pragmatisch. ✔️ Persönlich. ✔️ Professionell. ✔️ Ein Klick hier und Sie erfahren mehr.


