KI-basiertes Bewerber-Management
Jens Eikermann hat sein duales Studium der Wirtschaftsinformatik an der Leibniz-Fachhochschule Hannover abgeschlossen. Im Gespräch erzählt er uns, wie er das Bewerbermanagement mit Künstlicher Intelligenz neu denkt – und welche Herausforderungen sich im Rahmen seiner Abschlussarbeit ergeben haben.
Du hast dein Studium im Juli 2025 beendet. Was war das Thema deiner Abschlussarbeit?
Das Thema meiner Bachelorarbeit war die Entwicklung einer KI-basierten Bewerbermanagement-Lösung, eine technische Fallstudie zur Integration in die Personalgewinnung bei FSS.
Die Kollegen arbeiten hier seit einiger Zeit an einem Tool zum Tracken und Sortieren eingehender Bewerbungen, damit die Kommunikation einheitlich auf einer Plattform stattfindet und man nicht ewig Mail-Pingpong spielt.
Das ist bisher manuelle Arbeit und ich habe die Idee einer KI-gestützten Lösung für die Lebenslaufanalyse entwickelt – aber nicht um dem Backoffice die Entscheidung abzunehmen, sondern um die Personal-Entscheidungen erleichtern und die Bewerbungen besser bewerten zu können.
Klingt spannend, wie bist du vorgegangen?
Zuerst habe ich mich theoretisch damit auseinandergesetzt, wie man Bewerbungsdaten mit einem KI-Modell bewerten kann, zum Beispiel via statischer Auswertung mit Regex. Letztlich bin ich dabei gelandet, die PDF-Bewerbungen ins Programm aufzunehmen und die Daten daraus zu extrahieren.
Anschließend habe ich sie durch ein Sentence Embedding laufen lassen, um eine möglichst einheitliche Formulierung zu bekommen. Hierbei wird geschaut, wie ähnlich die Inhalte zueinander sind, um eine gemeinsame Bewertungsgrundlage zu schaffen. Grundsätzlich kommt es bei den Bewerbern nicht darauf an, welche Programmiersprachen sie können, sondern ob sie Programmiererfahrungen haben oder nicht.
Auf welche Herausforderungen bist du dabei gestoßen?
Ich hatte anfangs Probleme, die Daten in ein auswertbares Format zu bekommen. Um möglichst simpel zu bleiben, wollte ich sie in ein JSON-Format umwandeln. Das war erst sehr schwierig, da Bewerbungen immer unterschiedlich aussehen und die einzelnen Punkte in verschiedenen Reihenfolgen aufbereitet sind.
Dann kam ich auf die Idee, mir lokal ein LLM mit Ollama Codestral aufzusetzen. Ich habe mir ein kleines Retrial-Script geschrieben, um die JSON-Antwort zu bekommen, die ich weiterverarbeiten kann.
Im Prinzip hast du aus unstrukturierten Daten strukturierte Daten gemacht?
Ja, aber das war nur Schritt eins. Nun hatte ich zwar einheitlich formatierte Bewerbungsdaten, aber noch kein Bewertungsmodell. Deswegen habe mir ein paar verschiedene Algorithmen angeschaut und bin bei Random Forests hängen geblieben, einem relativ simplen statistischen Vergleich verschiedener Vektoren.
Das habe ich mit einem Datensatz von rund 20.000 Einträgen trainiert sowie die entsprechenden Jobprofile extrahiert und einzeln abgespeichert. Ich habe das Modell die Daten bewerten lassen und versucht die Gewichtung der einzelnen Vektoren ordentlich einzustellen.
Grundlegend funktioniert das System, aber es ist natürlich noch nicht vollständig ausgereift. Es ist schon spannend, dass man mithilfe der KI und typischen Sprachmustern an den Punkt kommt, wo man verschiedene Bewerbungen von verschiedenen Menschen objektiv miteinander vergleichen kann. Das ist nur möglich, sofern man vorher Daten wie Alter, Adresse, Name, also alles, was auf eine Person schließen lässt, ausklammert.
Welchen Daten-Input hast du verwendet?
Um ein Entscheidungsmodell trainieren zu können, braucht es schon ein paar tausend Datensätze. Die liegen bei FSS nicht vor. Deswegen habe ich zu einem frei zugänglichen Datensatz aus dem Netz gegriffen, wodurch mein Modell aber auch gelernt hat, deutsche und englische Bewerbungen zu verarbeiten.
Als Trainingsdaten hatte ich nur CV-Daten zur Verfügung, aber man könnte theoretisch auch alles andere, was an PDF-Daten vorliegt, hochladen. Falls die Bewerbung nicht als lesbare PDF geschrieben ist, sondern nur Bilder enthält, lassen sich die Daten mittels OCR-Erkennung durch PyTesseract auslesen.
Wie muss man sich das Endprodukt vorstellen?
Ich habe das Produkt als Rest-API aufgesetzt, so wie alle anderen FSS-Eigenentwicklungen, damit man das einfach als Microservice ansprechen kann. Technisch läuft es in Python in einem Docker-Container. Ich habe dafür ein komplettes CLI geschrieben, wodurch die Module einzlen nutzbar werden.
Eine klickbare Oberfläche ist es in der Kürze der Zeit nicht geworden. Es ging erstmal um die technische Machbarkeit: Zunächst wird über den API-Endpunkt das ausgewählte Job-Profil, die Bewerbung und eine interne Vorgangs-ID eingegeben. Nach der Auswertung durch das System bekommt man eine Antwort zurück, die einen Gesamtscore vergibt, wie gut die Bewerbung prozentual zum ausgewählten Stellenprofil passt.
Man kann aus 29 vorgefertigten Profilen auswählen und bekommt neben dem Gesamtscore optional auch eine aufgeschlüsselte Einzelauswertung bei Kriterien wie Berufserfahrung, Fähigkeiten oder schulischem Werdegang. Über eine weitere API kann man sich auch eine SHAP-Analyse, also eine einzeln aufgeschlüsselte Auswertung darüber abholen, welchen Einfluss die Keywords auf die Entscheidung genommen haben.
Ich habe dabei extra auf Datensparen nach DSGVO geachtet, das heißt, das Programm speichert nichts, was nicht wirklich gebraucht wird. Man könnte es mit den Bewertungen durch das Backoffice nochmal nachtrainieren, so dass über längere Zeit die Ergebnisse besser würden und sich das Backoffice zukünftig mehr auf die Bewertung verlassen kann. Es soll aber auf keinen Fall die menschliche Expertise ersetzen.
Wie sehen deine "lessons learned" aus?
Für so ein KI-gestütztes Verfahren würde ich dazu raten, nicht das komplette Vorgehen vorab durchplanen und alles im Vorfeld dafür rauszusuchen. Man sollte sich ruhig zwischendrin mal rantrauen, was machen und dann nochmal gucken, ob man zufällig irgendeine Kurve erwischt hat, die man vorher nicht in Betracht gezogen hat. Also ich musste meine Literaturrecherche in bestimmten Teilen zwei oder dreimal erneuern, weil die theoretischen Vorschläge praktisch nicht funktioniert haben.
Hinzu kommt: Wenn man keine genaue Vorstellung davon hat, wo es hingehen könnte und wie man da hinkommt, sollte man früh genug Varianten testen und schauen, ob man nahe genug an dem dran ist, was man sich vorgestellt hat. Das wurde zwar oft genug in der Uni thematisiert, aber ich habe viele Sachen leider erst getestet, nachdem sie zu Ende entwickelt waren – nur um dann festzustellen, dass sie nicht wie geplant funktionieren.
Bist du mit dem Ergebnis zufrieden?
Alles in allem ja. Ich hatte insgesamt nur acht Wochen Zeit zur Fertigstellung, es gab keine Einführung von der FH aus, keine Vorbereitung, sondern nur die Vorgabe sich ein Thema auszusuchen, das mit dem Prüfer abzusprechen und dann einfach loszulegen. Ziel war, dass etwas Valides bei rauskommt.
Ich hatte mich vorher mit meinem Prüfer darauf geeinigt, dass es auch in Ordnung ist, wenn am Ende nichts Verwertbares entsteht, solange ich gut begründen kann, warum es nichts geworden ist. Nach dem Motto: setz dich hin, probier' mal aus und schau, wo du hinkommst. Das war sehr spannend und hat mir mega-viel Spaß gemacht.
War es das mit deiner universitären Ausbildung oder willst du noch den Master nachlegen?
Fürs Erste war es das. Jetzt möchte ich erstmal ein bisschen Geld verdienen und habe darum einen Arbeitsvertrag bei FSS unterschrieben. Ich freue mich darauf, zumindest vorübergehend Ruhe vor der Uni zu haben. Schön wäre es schon, noch einen Master zu machen, aber das muss jetzt nicht sofort sein. Da lasse ich mir ein bisschen Zeit.
Vielen Dank für das Gespräch!
Erfolg ist der Sieg der
Einfälle über die Zufälle
Sie passen gut zu uns,
wenn Sie sich für Softwareentwicklung begeistern.
Denn Persönlichkeit und Leistungsbereitschaft
sind uns wichtiger als Fachwissen.
Wir suchen Sie als Verstärkung für unser Team –
mit Berufserfahrung, als Quereinsteiger oder Berufsanfänger.