Als ich cv_v47_dataeng_final_v2.docx öffnete, wusste ich bereits, dass ich an diesem Abend keine weitere Bewerbung mehr abschicken würde. Es war ein Sonntag Ende 2023. Die Tracker-Tabelle, seit einer Woche ungeöffnet, versteckte sich hinter drei anderen Tabs, die ich benutzt hatte, um sie nicht ansehen zu müssen. Elf Zeilen tief unter „Applied". Keine unter „Responded". Mein Rücken schmerzte nach eineinhalb Tagen im Sitzen; der Browser-Tab neben dem CV war ein Kaggle-Notebook, das ich an jenem Morgen geöffnet und seither nicht wieder angerührt hatte. Ich klappte das Laptop zu.
In jenem Jahr war die Rechnung einer ernsthaften Jobsuche zermürbend geworden. Jede Stunde, die ich damit verbrachte, dieselben drei Positionen in einer leicht anderen Reihenfolge zu ordnen, war eine Stunde, die ich nicht in die Projekte und die Studieninhalte steckte, die mich eigentlich attraktiver auf dem Arbeitsmarkt machen sollten. Jede Version des CV, darunter cv_v46 und cv_v47, tauschte ein Keyword-Cluster gegen ein anderes. Jeder lange Abend am Schreibtisch endete mit demselben leichten Ziehen im unteren Rücken und demselben ungeöffneten Tracker. Der Markt hatte das Zuschneiden der Bewerbung zu einer Vollzeit-Kostenstelle gemacht, und die Kosten gingen genau von den Stunden ab, die ich eigentlich hätte nutzen sollen, um in meinem Handwerk besser zu werden.
Manche Ingenieure verwirklichen ihre Ideen in Nebenprojekten. Ich stellte mir eine Regel auf: Wenn ich diesem Markt das nächste Mal begegnete, würde ich es nicht mit der Hand tun. Drei Jahre später, mit dem Abschluss vor Augen und einer Masterarbeit vor der Nase, stand hinter dieser Regel ein Plan. Sobald meine Masterarbeit abgegeben war, würde ich das Werkzeug bauen, das mich vor jenen Sonntagabenden hätte bewahren können: eine Maschine, die die mechanische Hälfte einer Jobsuche übernimmt, damit die menschliche Hälfte (ob bewerben, ob annehmen, worin die zurückgewonnenen Stunden zu investieren sind) nicht darin ertrinkt.
Dann, im März, reichte mir das Internet die Hälfte des Werkzeugs.
Als ich mich eines Mittags durch meinen Feed scrollte, stieß ich auf einen Beitrag über ein Open-Source-Projekt namens career-ops. Sein Autor, Santiago Fernández de Valderrama, hatte damit mehr als 740 Stellenanzeigen bewertet, auf seinem Weg zu einer Position als Head of Applied AI. Er hatte in aller Öffentlichkeit das gebaut, was ich seit Monaten in einem Notizbuch skizzierte. Die höfliche Reaktion wäre gewesen, den Tab zu schließen und meine eigene Version zu beginnen. Die nützliche Reaktion, nach einem ganzen Tag Sturheit gefunden, war, sein Repo zu forken und mit dem Erweitern zu beginnen.
Ein Markt, der sich veränderte, während niemand hinsah
Bevor ich eine einzige Zeile eigenen Codes schrieb, wollte ich wissen, ob meine Erinnerung an den Arbeitsmarkt zutraf oder ob es nur der Burnout war, der sich erinnerte.
Die Daten waren auf der Seite des Burnouts.
Der Jobscan-Report von 2025 fand auf den Karriereseiten von 97,8 % der Fortune-500-Unternehmen ein Applicant Tracking System. Eine Studie der Harvard Business School von 2021 mit 2.275 Führungskräften aus den USA, dem Vereinigten Königreich und Deutschland ergab, dass mehr als neun von zehn Arbeitgebern, die ein solches System nutzen, sich beim ersten Filtern darauf verlassen, und 88 % räumen ein, dass ihre Systeme qualifizierte Kandidaten aussortieren. Der oft wiederholte Satz, ATS-Software lehne drei Viertel aller CVs ab, ist Folklore; die Zitierkette führt zu einem Verkaufsargument eines Anbieters aus dem Jahr 2012, der im Jahr darauf schloss. Das ehrliche Bild ist ohnehin schlimmer als der Mythos. Die Systeme lehnen nicht ab, sie sortieren, und ungeschnittene CVs landen zuletzt.
Zuschneiden verschiebt die Wahrscheinlichkeiten. Plattformdaten aus über einer Million verfolgten Bewerbungen zeigen, dass zugeschnittene CVs etwa doppelt so häufig zu Interviews oder Angeboten führen wie generische. Aber das Volumen ist ihnen entgegengewachsen. Bewerbungen auf Workday sind in der ersten Hälfte des Jahres 2024 viermal so schnell gewachsen wie ausgeschriebene Stellen. LinkedIn verarbeitet inzwischen rund 11.000 Bewerbungen pro Minute, ein Plus von 45 % im Jahresvergleich. Branchenberichte nennen für die durchschnittliche Einstiegsstelle im Vereinigten Königreich rund 140 Bewerber. Zwischen 18 und 22 Prozent der Stellenanzeigen auf Greenhouse sind das, was der Congressional Research Service höflich „Ghost Jobs" nennt: Anzeigen, die Arbeitgeber nie wirklich besetzen wollen.
Der Druck auf Einstiegspositionen trifft am tiefsten. Die Einstellungen von Berufseinsteigern bei den großen Tech-Konzernen sind gegenüber 2019 um mehr als 50 % gefallen. Die Arbeitslosenquote von jungen Hochschulabsolventen in den USA liegt zum ersten Mal seit Jahrzehnten über der allgemeinen Quote. Stanfords Digital Economy Lab hat anhand von Payroll-Daten aus 4,6 Millionen Beschäftigten einen anhaltenden Rückgang der Beschäftigung bei den 22- bis 25-Jährigen in den am stärksten KI-exponierten Berufen dokumentiert. Dieser Befund hat unter Ökonomen einen kleinen Bürgerkrieg ausgelöst (Daron Acemoglu ist skeptisch; die Ökonomen von Google machen die Zinsen verantwortlich), aber der Druck selbst ist unbestritten.
Das ganze Bild lässt sich auf einen Satz reduzieren. Präzision schlägt Volumen in diesem Markt, und Präzision ist teuer in Zeit. Anders gesagt: Es ist ein Automatisierungsproblem.
Lesen vor dem Schreiben
Santis Repo zu lesen, bevor ich irgendetwas anfasste, fühlte sich zunächst an wie jener Moment in einem Heist-Film, in dem die Crew merkt, dass eine andere Crew den Safe schon geknackt hat. Er hatte die Bewertungsrubrik gebaut, die ich gebaut hätte, die Mode-Routing-Architektur, die Playwright-PDF-Pipeline, die Tracker-Disziplin und die ethische Regel, die jede Bewerbung damit enden ließ, dass ein Mensch, nicht eine Maschine, auf „Senden" klickt. Seine Codebase funktionierte, hatte Haltung und war in den meisten Punkten besser als meine Whiteboard-Skizzen.
Was ihr fehlte, war mein Markt.
Santi hatte für das Ökosystem gebaut, in dem er sich bewarb. Ich brauchte etwas UK-First: ein System, das wusste, dass ein britischer Arbeitgeber ein Skilled-Worker-Visum nur sponsern kann, wenn er im gov.uk-Register lizenziert ist, und das die nicht lizenzierten Arbeitgeber markierte, bevor ich einen Sonntag damit verschwendete, einen CV für ein Unternehmen zuzuschneiden, das mich rechtlich gar nicht einstellen konnte. Ich brauchte etwas, das mit Notion sprach, weil dort mein Alltag bereits stattfand. Ich brauchte etwas, das mir ehrlich sagen konnte, ob sein eigenes Vertrauen in einen Match-Score überhaupt etwas wert war.
Also habe ich career-ops in der Woche, in der ich es fand, geforkt und begonnen, es zu erweitern. Zwei Monate später läuft das System, das ich auf Santis Fundament gebaut habe, jeden Tag. Es heißt applyd, und ich schreibe dies jetzt, weil es Zeit ist, dass auch andere Menschen die Möglichkeit haben, es zu nutzen, und mir helfen, es weiterzubringen.
Zwei Dashboards, eine Wahrheit
Die technische Entscheidung, auf die ich am stolzesten bin, hat fast nichts mit KI zu tun.
Frühe Versionen dessen, was ich baute, hatten sechs verschiedene Skripte, die Metriken erzeugten: einen Funnel-Report, eine Analyse von Ablehnungsmustern, eine Pacing-Alarmierung, ein Dashboard, eine Batch-Zusammenfassung und einen Follow-up-Rechner. Jedes hielt eine eigene, private Meinung darüber, was „applied", „responded", „screened" und „ghosted" bedeuteten. Zwei der Dashboards waren sich über meine Antwortrate uneins. Ich starrte einen Abend lang auf diese Diskrepanz, bevor ich sie verstand: Die Definitionen waren, leise, über sechs Dateien hinweg auseinandergedriftet, die niemand für abgleichbedürftig gehalten hatte.
Ich zog die Definitionen in ein einziges gemeinsames Modul zusammen und verdrahtete jeden Konsumenten dort hindurch. Dieselbe Schicht hält jetzt die Kalibrierung des Match-Scores: Bänder prognostizierter Passung werden gegen tatsächliche Interview-Ergebnisse back-getestet, sodass das System mir sagen kann, wenn seine eigenen Scores systematisch falsch liegen, statt der ersten Schätzung blind zu vertrauen. Das ist dbt-artige Semantic-Layer-Disziplin, übertragen auf ein System im persönlichen Maßstab, und es ist das Stück, das ich einer Data Engineerin als erstes zeigen würde.
Wo das Sprachmodell nicht zum Einsatz kommt
Die nächste Entscheidung, die es zu benennen lohnt, ist, wo der deterministische Code aufhört und das Sprachmodell beginnt.
Der Scanner von applyd spricht die APIs von Greenhouse, Ashby, Lever und Workable direkt an. Er zahlt null Tokens pro Durchlauf. Ein portalübergreifender Dedup-Pass fasst dieselbe Stellenanzeige zusammen, wenn sie auf mehreren Boards erscheint. Ein Zero-LLM-Lint setzt die CV-Qualitätsregeln (verbotene Wörter, verbotene Konstruktionen, Bindestrich-Richtlinie) als reine regelbasierte Prüfungen durch, die das Modell niemals aufrufen. Das Modell kommt nur dort ins Spiel, wo Urteilsvermögen gefragt ist: bei der Bewertung der Stellenanzeige gegen meinen CV, beim Verfassen des zugeschnittenen Anschreibens und beim gebundenen QA-Loop über den generierten CV.
Jeder LLM-Aufruf hat eine definierte Rolle und einen begrenzten Output. Nichts wird dem Modell überlassen, was eine deterministische Prüfung erledigen kann. Die Gründe sind Kosten, Latenz und Vertrauen. Sprachmodelle sind gut in Urteilsarbeit und teuer, wenn man sie in einer Schleife betreibt; deterministischer Code ist günstig, testbar und halluziniert nie ein Keyword aus dem Nichts. Zieht man diese Grenze falsch, verbrennt man entweder Geld oder verliert den Überblick darüber, was das System eigentlich tut.
Ein Tracker, der mir gehört
Notion hält das System of Record. Beim ersten Start legt applyd über die Notion-API eine Applications-Datenbank mit einem kanonischen Schema an: neun Pipeline-Stufen von Discovered bis Offer, Deduplizierung nach Job-URL, die vor jedem Insert durchgesetzt wird, und drei Dashboard-Ansichten (ein Pipeline-Kanban, eine nach Match-Score sortierte Tabelle und ein Board mit aktiven Interviews). Ein lokaler Markdown-Tracker läuft parallel als Cache und portabler Fallback.
Die interessante Design-Frage war nicht die API-Integration. Es war der Kontrakt: welche Felder der Agent besitzt, welche der Mensch besitzt, und wie Konflikte gelöst werden, wenn beide in dieselbe Zeile schreiben. Dieser Kontrakt liegt in einer einzigen Datei und wird an jeder Schreib-Stelle erzwungen.
Das Register
Der UK-Sponsor-Check ist das kleinste Stück des Systems und dasjenige, das ich am meisten nutze.
Jeder UK-Arbeitgeber, der bei einem Scan auftaucht, wird gegen eine lokal gecachte Kopie des lizenzierten Sponsor-Registers von gov.uk abgeglichen, bevor applyd auch nur ein Wort verfasst. Nicht lizenzierte Arbeitgeber werden markiert und heruntergestuft; wenn ich Visum-Sponsoring brauche, können sie mir schlicht nicht helfen, egal wie gut die Rolle klingt. Die Pipeline behandelt das als harten Filter, der vor dem Verfassen greift. Er hat mich bereits vor drei Sonntagabend-Umwegen in Bewerbungen bewahrt, die rechtlich keinen Weg hatten.
Der Rest des Systems ist konzeptionell agentenneutral. Eine einzige Datei, AGENTS.md, definiert den Projektkontrakt, und ein Dispatcher leitet geplante Headless-Läufe je nach Umgebungsvariable an Adapter für die CLIs von Claude, Codex oder Gemini weiter. Dieselben Modi laufen unter jeder unterstützten Laufzeit. Für ein Ein-Nutzer-Werkzeug zählt das weniger als das Muster im Allgemeinen: Ein KI-integriertes System, das eng an die Laufzeit eines einzigen Anbieters gekoppelt ist, ist ein System, das man nicht bewegen kann.
Was das Forken gelehrt hat, und was als Nächstes kommt
Zwei Monate in fremdem Code lehren mehr als zwei Monate an einem Greenfield-Projekt. Lesen vor dem Schreiben zwingt einen, ein Design zu verstehen, bevor man ihm widersprechen darf; wenn der Widerspruch kommt, muss er so gebaut sein, dass er die Möglichkeit des Irrtums offen lässt.
applyd ist auf GitHub, MIT-lizenziert und offen für Beiträge. Portal-Scanner für neue Märkte stehen oben auf der Liste, und jede Person, die im Vereinigten Königreich oder in der EU auf Jobsuche ist, kann es heute installieren. Santis career-ops ist ebenfalls auf GitHub, und für alle, die KI-integrierte Systeme bauen, sind die Mode-Routing-Architektur und die Never-Auto-Submit-Ethik die ersten zwei Dateien, die es zu lesen lohnt. Was ich darauf gelegt habe, den Semantic Layer, den Notion-Kontrakt, den Sponsor-Check, die Grenze zwischen deterministisch und LLM sowie die agentenneutrale Laufzeit, sitzt auf seinem Fundament. Der Dank ist keine Formalität. Das Fundament ist real.
Die Version meiner selbst aus dem Jahr 2023, jene mit dem schmerzenden Rücken, dem ungeöffneten Tracker und dem Kaggle-Notebook, das nie in Arbeit ging, hätte das Ganze nützlich gefunden. Die aktuelle Version nutzt es jede Woche. Und der Arbeitsmarkt wird uns beiden, so wie er ist, weiterhin Gründe dafür geben.
applyd auf GitHub ansehen → Das ursprüngliche career-ops →
Quellen: Jobscan ATS Usage Report (2025); Harvard Business School / Accenture, „Hidden Workers" (2021); Huntr Job Search Trends (2025); Workday Global Workforce Report (2024); LinkedIn-Bewerbungsdaten via NYT (2025); Branchenberichte zum UK-Absolventenmarkt (2024 bis 2025); Greenhouse State of Job Hunting (2024 bis 2025); Congressional Research Service IF12977; SignalFire State of Tech Talent (2025); Federal Reserve Bank of New York, Labor Market for Recent College Graduates (Q1 2026); Stanford Digital Economy Lab / ADP, „Canaries in the Coal Mine" (2025 bis 2026).
Ich bin MSc-Data-Science-Absolvent (Salford, 2026) wohnhaft in Manchester, ab sofort verfügbar für Junior- und Mid-Level-Rollen in Analytics Engineering, Data Engineering und Data Science im Vereinigten Königreich und in Deutschland/EU. Wenn Ihr Team einen Ingenieur sucht, der in Pipelines denkt, würde ich gern davon hören.