Einstellen, ohne sich auf das Bauchgefühl zu verlassen: das Werkzeug, das wir für unsere Vorstellungsgespräche gebaut haben

Unternehmensprofil, Kandidatenprofil, strukturiertes Gespräch und gewichtetes Ranking, vereint in einer kleinen Anwendung

Veröffentlicht: 8 min read

Quellcode ansehen ↗

Einstellen heißt, Menschen zu vergleichen, die man im Abstand von wenigen Tagen trifft, gestützt auf flüchtig hingeworfene Notizen und einen Eindruck, der schnell verblasst. Am Ende einer Reihe von Gesprächen ist die Erinnerung an den ersten Kandidaten schon verschwommen, die Notizen verstreuen sich zwischen einem Notizbuch und einer Datei, und die Entscheidung neigt am Ende zugunsten des zuletzt Getroffenen oder des Sympathischsten. Genau dieses Problem wollten wir vermeiden, als wir unseren Junior-Entwickler in Tallinn eingestellt haben.

Statt unsere Notizen in einer Tabellenkalkulation zu führen, haben wir eine kleine Webanwendung gebaut, um den Prozess zu steuern. Sie vereint an einem Ort, was vorher verstreut war: das Stellenprofil, das Kandidatenprofil, die Notizen während des Gesprächs, die zahlenmäßige Bewertung und am Ende ein gewichtetes Ranking, das den Vergleich nachvollziehbar macht. Dieser Beitrag beschreibt, was sie leistet und wie sie gedacht ist. Es ist ein Werkzeug, das wir für unseren eigenen Gebrauch gebaut haben, und wir legen seinen Quellcode auf GitHub offen. Nichts hindert Sie daran, es bei sich zu starten.

Der Kontext immer im Blick

Die Anwendung folgt der tatsächlichen Hierarchie eines Einstellungsprozesses: ein Unternehmen, mehrere Stellen und zu jeder Stelle die Kandidaten. Diese Abfolge bleibt in der Seitenleiste eingeblendet, sodass man stets weiß, wo man sich befindet, ohne sich daran erinnern zu müssen, welchen Weg man genommen hat.

Das Unternehmensprofil wird einmal festgelegt und gilt für alle Stellen. Man fügt eine Webadresse oder einen Text ein, und die Anwendung leitet daraus eine saubere Vorstellung ab, die sich anschließend nachbearbeiten lässt. Jede Stelle funktioniert auf dieselbe Weise: eine Funktionsbeschreibung, importiert aus einer Anzeige oder von Hand verfasst, und vor allem stelleneigene Auswahlkriterien. Sie sind es, die den Bewertungen später ihren Sinn geben.

Das Kandidatenprofil bündelt die Identität (Name, Vorname, Geburtsdatum, woraus sich das Alter berechnet, Kontakt, Status), die als PDF hochgeladenen Lebensläufe und eine Profilzusammenfassung. Nichts davon bleibt im Moment des Gesprächs dem Zufall überlassen: Bevor man irgendetwas bewertet, hat man vor Augen, wen man empfängt und für welche Stelle.

Das Gespräch: festhalten, was zählt, während man es hört

Der Gesprächsbogen ist das Herzstück des Werkzeugs. Er stellt den Kontext des Einstellungsprozesses (Unternehmen, Stelle, Kriterien, Identität des Kandidaten) direkt neben das Bewertungsraster, damit man mitten in einer Antwort nie den Bildschirm wechseln muss.

Die Bewertung beruht auf vier Grundkriterien, bewertet von 0 bis 10: die sprachliche Gewandtheit, die Professionalität, die fachlichen Kompetenzen und die Fremdsprachen. Jede Bewertung wird von einem freien Feld begleitet, denn eine Zahl allein sagt nicht, warum man sie vergeben hat. Hinzu kommen individuelle Bewertungen in beliebiger Zahl: ein Titel, eine Note von 10, eine Bemerkung. Hier bringt man unter, was einer bestimmten Stelle eigen ist und nicht in die vier Standardfelder passt.

Zwei Freitextfelder ergänzen den Bogen: die Erwartungen des Kandidaten und seine Besonderheiten. Es geht nicht darum, alles auf Zahlen zu reduzieren, sondern darum, eine getreue Spur des Austauschs zu bewahren, während er stattfindet, um sie später in Ruhe noch einmal zu lesen.

Die KI unterstützt, sie entscheidet nicht

Die Anwendung stützt sich an mehreren Stellen auf ein Sprachmodell, stets unterstützend und nie an der Stelle des Recruiters.

Sie liest die Lebensläufe (auch die PDF, über ein Modell, das die Seite „sehen“ kann) und schlägt eine Identität vor: Name, Vorname, Geburtsdatum. Das wichtige Wort ist „schlägt vor“: Diese Felder werden zur Bestätigung vorgelegt, nie über eine bestehende Eingabe geschrieben. Sie verfasst außerdem aus den Lebensläufen eine Profilzusammenfassung, die man korrigieren oder neu erzeugen kann. Und am Ende erstellt sie eine Gesprächszusammenfassung, die den Kontext aufgreift, den Kandidaten mit den Auswahlkriterien abgleicht und eine Empfehlung formuliert.

Zwei Grundsätze leiten diese Unterstützung. Erstens bleibt alles änderbar: Kein generierter Text ist festgeschrieben. Zweitens ist alles transparent: Ein Fenster zeigt den genauen Prompt, der an das Modell geschickt wird, bevor man eine Generierung neu anstößt. Man sieht, was die Maschine vor Augen hat, und behält die Kontrolle darüber, was sie daraus macht.

Die Oberfläche gibt es in fünf Sprachen: Deutsch, Englisch, Französisch, Estnisch und Niederländisch. Die KI richtet sich nach dieser Wahl und verfasst ihre Zusammenfassungen in der Anzeigesprache. Eine Recruiterin, die das Gespräch auf Estnisch führt, erhält eine estnische Zusammenfassung; ein Kollege, der die Oberfläche wieder auf Deutsch stellt, liest sie auf Deutsch nach, aus denselben Notizen.

Auf der Infrastrukturseite spricht die Anwendung mit jedem OpenAI-kompatiblen Endpunkt. Man wählt URL, Schlüssel und Modell in der Konfiguration, ob es sich nun um einen gehosteten Dienst handelt oder um ein Modell, das man selbst betreibt.

Das Ranking und die Gewichtungen

Hier leistet das Werkzeug im Moment der Entscheidung seinen Dienst. Das Dashboard einer Stelle ordnet die Kandidaten nach absteigender Gesamtpunktzahl, mit einem Punktezeichen für jeden und kleinen Balken je Kriterium, um auf einen Blick zu sehen, wo seine Stärken liegen.

Übersicht einer Stelle: Kandidaten nach absteigender Gesamtpunktzahl geordnet, jeder mit einem Punktezeichen und kleinen Balken je Kriterium

Die Gesamtpunktzahl ist kein blinder Durchschnitt. Jedes Kriterium erhält eine Gewichtung von 0 bis 3, stellenspezifisch, einstellbar über einen Regler. Die Punktzahl wird live neu berechnet, sobald man einen Regler bewegt, was es erlaubt, konkrete Fragen zu beantworten: Was, wenn die fachlichen Kompetenzen doppelt zählten? Was, wenn die sprachliche Gewandtheit für genau diese Stelle weniger ins Gewicht fiele? Unbewertete Kriterien werden schlicht ignoriert, ohne den Kandidaten zu benachteiligen.

Freitag, Ende der Gesprächsreihe. Drei Kandidaten liegen einen halben Punkt auseinander. Wir erhöhen die Gewichtung der fachlichen Kompetenzen, und das Ranking ordnet sich neu: Wer am besten sprach, rückt hinter den, der am besten programmierte. Die Entscheidung hat nicht ihre Stimmung gewechselt, sie hat ihr Kriterium gewechselt, und man kann sie erklären.

Das Werkzeug erlaubt außerdem, zwei Kandidaten nebeneinander zu vergleichen: Ein Radardiagramm legt ihre Profile übereinander, ein Balkendiagramm zeigt den Abstand Kriterium für Kriterium, und ihre Gesprächszusammenfassungen erscheinen nebeneinander. Der Vergleich ist nicht länger eine Gedächtnisleistung, sondern wird zur Lektüre.

Zwei Kandidaten nebeneinander im Vergleich: ein Radardiagramm legt ihre Profile übereinander und ein Balkendiagramm schlüsselt den Abstand Kriterium für Kriterium auf

Leicht und lokal, dort wo die klassischen Werkzeuge schwer sind

Die meisten Recruiting-Programme sind Online-Plattformen mit monatlicher Abrechnung, bei denen Ihre Bewerberdaten auf den Servern eines Dritten landen. Für eine Stelle, die nur ab und zu zu besetzen ist, bedeutet das viel Abonnement, viele Funktionen, die man nicht nutzt, und Lebensläufe echter Menschen, die einem externen Dienst anvertraut werden.

Wir sind den umgekehrten Weg gegangen. Das Werkzeug passt in einen einzigen Container, den man bei sich startet; die Daten bleiben lokal, in einer Dateidatenbank, die Ihre Maschine nicht verlässt. Kein Abonnement, kein Konto, das man anlegen muss, kein Lebenslauf, der auf eine Plattform abwandert. Die einzigen Aufrufe nach außen sind die, die Sie selbst bestimmen, hin zum KI-Dienst Ihrer Wahl, und selbst dieser kann ein Modell sein, das Sie selbst betreiben. Es ist dieselbe Überzeugung, die unseren Ansatz der Automatisierung leitet: die Daten so nah wie möglich verarbeiten und nur das auslagern, was ausgelagert werden muss.

Gebaut, um sich anzupassen

Weil wir in Estland eingestellt haben, kann das Werkzeug mit der isikukood umgehen, dem estnischen Personenkennzeichen, samt eigener Prüfung. Das ist keine nebensächliche Kleinigkeit: Es ist der Beweis, dass sich das Werkzeug einem Kontext anschmiegt, statt seinen eigenen aufzuzwingen. Wo ein Allzweckprogramm Sie zwingt, Ihre Sonderfälle in seine Felder zu pressen, fügt sich ein Werkzeug, das man selbst beherrscht, den Ihren. Ihre Kriterien, Ihre Gewichtungen, Ihre Felder: Alles ist formbar, weil der Code Ihnen gehört.

Unter der Haube

Die Anwendung passt in einen einzigen Container. Der Server ist in Python mit FastAPI geschrieben, die Daten liegen in einer SQLite-Datenbank (im WAL-Modus, um mit einem einzigen Prozess zuverlässig zu bleiben), und die Oberfläche ist eine React-Anwendung, ausgeliefert vom selben Server. Das Ganze startet mit Docker und einem Volume für die Persistenz.

Das sind die Bausteine, die wir in unseren Projekten in der Produktion einsetzen, und genau die Art von Stack, die wir einem Junior-Profil näherbringen wollten. Das Werkzeug, das wir gebaut haben, um ihn einzustellen, ist gewissermaßen schon eine Kostprobe dessen, woran er arbeiten wird.

Warum wir es teilen

Es ist ein Werkzeug, das wir zuerst für uns selbst gebaut haben, und wir legen seinen Quellcode auf GitHub offen: Sie können ihn lesen, lokal für Ihre eigenen Gespräche ausprobieren und an Ihren Prozess anpassen. Es ist ein gutes Beispiel für unsere Arbeitsweise, dieselbe, die wir auf die Automatisierung von Geschäftsprozessen oder das Register für intravitreale Injektionen anwenden: ein gezieltes, schlankes Werkzeug, das eine Entscheidung klarer macht, ohne sie zu beschlagnahmen.

Wenn Sie ein solches Werkzeug wünschen, das um Ihren eigenen Prozess herum geformt ist, vereinbaren Sie unten ein Gespräch mit transtorm.ai .

Gespräch buchen

Häufig gestellte Fragen

Ist der Code verfügbar?

Ja. Es ist ein internes Werkzeug, das wir für unser eigenes Recruiting gebaut haben, und sein Quellcode ist auf GitHub offen. Sie können ihn lesen, lokal starten und an Ihre Bedürfnisse anpassen.

Entscheidet die KI an Ihrer Stelle, wen Sie einstellen?

Nein. Die KI liest die Lebensläufe, schlägt zu bestätigende Identitäten vor und verfasst Zusammenfassungen. Nichts wird je ohne Durchsicht gespeichert, und jeder generierte Text bleibt änderbar. Das endgültige Ranking beruht auf Ihren Bewertungen und Ihren Gewichtungen, nicht auf einem Urteil der Maschine.

In welchen Sprachen funktioniert das Werkzeug?

Die Oberfläche steht in fünf Sprachen zur Verfügung: Deutsch, Englisch, Französisch, Estnisch und Niederländisch. Die von der KI erzeugten Zusammenfassungen folgen der gewählten Anzeigesprache, sodass jeder die Bewertung aus denselben Notizen in seiner eigenen Sprache liest.

Braucht man einen kostenpflichtigen KI-Dienst, um das Werkzeug zu betreiben?

Die Anwendung spricht mit jedem OpenAI-kompatiblen Endpunkt: einem gehosteten Dienst wie OpenRouter oder einem Modell, das Sie selbst betreiben. Sie wählen URL, Schlüssel und Modell in einer Konfigurationsdatei.

Wie funktioniert das Ranking?

Jedes Kriterium wird von 0 bis 10 bewertet. Sie vergeben pro Kriterium und Stelle eine Gewichtung von 0 bis 3, und die Gesamtpunktzahl wird live neu berechnet. Unbewertete Kriterien benachteiligen niemanden.