Profilvollständigkeit Framework
Kandidatenprofile sollen so vollständig und aktuell werden, dass anonymes Active Sourcing für Unternehmen effizient wird, ohne Kandidaten durch zu viele Fragen oder Datenschutzrisiken zu verlieren.
100% vollständig heißt nicht "alles ausgefüllt". Es heißt: alle matchrelevanten Fragen sind beantwortet, frisch genug und für den jeweiligen Kontext nutzbar. Eine explizite Negativantwort wie "keine Weiterbildung" ist genauso wertvoll wie ein ausgewählter Wert.
Backend-Basis
Die Applier-Daten liegen nicht in einem einzigen Profilobjekt. Für das CRM müssen mehrere Datenquellen zusammengedacht werden.
Applier
Suchstatus, Präferenzen, Qualifikation, Standort und Matching-Signale.
User / UserContact
Identität, Kontaktbasis, Verifikation, Erreichbarkeit und Confidence Score.
UserFile / WorkHistory
Dokumenttypen, Lebenslauf, Berufsstationen und geparste Erfahrung.
ApplierHistory
Änderungshistorie, CRM-Aufgaben, Due Dates und manuelle Bearbeitung.
UserOpenTasks
Materialized View für offene Aufgaben je Kandidat.
MessageUnsubscription
Kanal- und Nachrichtentyp-Abmeldungen, die das CRM respektieren muss.
Feldinventar
Diese Felder sind im aktuellen Backend relevant für Profilqualität, Matching und Active Sourcing.
| Bereich | Backend-Felder | Einordnung | Aktualität | Matching-Must-have | Fit probability |
|---|---|---|---|---|---|
| Jobsuche-Status | job_search_status, job_search_urgency, job_search_status_updated_at | Präferenz / Status | 30-60 Tage | Produkt-Gate | Nein |
| Verfügbarkeit | start_work_date, newest_registration_date, resubmission_at | Präferenz / Timing | 60-90 Tage | Produkt-Muss | Nein |
| Standort intern | postcode, city, latitude, longitude | Matching / Datenschutz | 6 Monate oder Umzug | Code-Gate | Direkt Distanz |
| Rolle / Zielposition | position, position_other, position_verbatim | Qualifikation + Präferenz | 6-12 Monate | Produkt-Muss | Direkt Positions-Similarity |
| Ausbildung | education, education_other, education_verbatim_verbose | Qualifikation | Einmalig | Code-Gate | Filter nicht Formel |
| Berufserfahrung | work_experience, WorkHistory | Qualifikation / CV-Signal | Jährlich oder Jobwechsel | Produkt-Muss | Nein |
| Weiterbildungen | continuing_education, continuing_education_other | Qualifikation | Bei neuer Weiterbildung | Code-Gate wenn Job required | Direkt required CE met |
| Sprache | language_skill | Qualifikation | 12 Monate oder Verbesserung | Code-Gate | Filter nicht Formel |
| Führerschein | driving_license | Qualifikation / Mobilität | Nur bei Änderung | Code-Gate bei Job-Anforderung | Filter nicht Formel |
| Versorgungsart | care_type | Präferenz + Erfahrungskontext | 60-90 Tage | Produkt-Muss | Direkt Care-Type-Similarity |
| Arbeitsumfang | working_type | Präferenz | 60-90 Tage | Code-Gate Minijob-Logik | Direkt Working-Type-Distanz |
| Dienstlänge | shift_hour | Präferenz | 60-90 Tage | Produkt-Muss | Indirekt über match_shift |
| Schichtpräferenz | shift_preferences | Präferenz | 30-60 Tage | Produkt-Muss | Nein aktuell nicht gefunden |
| Gehaltsuntergrenze | minimum_acceptable_salary | Präferenz | 3-6 Monate | Nein | Nein |
| Motivation / Wünsche | motivation, others, note | Soft Signal / Präferenz | Kontextbezogen | Nein | Nein |
| Dokumente | UserFile.type, file_url, is_removed | Nachweis / Profilqualität | Bei Änderung | Produkt-Muss für Qualität | Nein |
| Kontaktfähigkeit | UserContact, verified_at, email_verified_at | CRM / Trust | Bei Bounce oder fehlender Verifikation | AS-Gate | Nein |
| Kommunikation | mail_toggle, MessageUnsubscription | CRM / Consent | Bei jeder Nachricht prüfen | CRM-Gate | Nein |
Code-Gate = im aktuellen Matching-Code als Filter oder technische Voraussetzung gefunden. Produkt-Muss = für Active-Sourcing-Qualität notwendig, aber nicht zwingend technische Voraussetzung.
Fit probability direkt = in apps/match/match_probabilites.py in der Formel. Filter = beeinflusst, ob ein Match entsteht, aber nicht den finalen Score.
Code-Befund
Die aktuelle Fit-Probability-Formel nutzt direkt care_type, position, match_shift, distance, working_type und required continuing_education. education, language_skill, driving_license und required continuing_education wirken zusätzlich als Matching-Filter. shift_preferences, Gehalt, Dokumente und Job-Suchstatus habe ich aktuell nicht in der Fit-Probability-Formel gefunden.
100%-Framework V1
Profilvollständigkeit wird als Punktestand geführt, aber mit Gates. Ein Profil mit 82% kann trotzdem nicht active-sourcing-ready sein, wenn Suchstatus oder Consent fehlen.
Status & Aktualität
20 Punktejob_search_status jünger als 60 Tage; bei aktiv zusätzlich Dringlichkeit oder Startdatum.
Match-Präferenzen
25 PunkteVersorgungsart, Arbeitsumfang, Schichtpräferenz/Dienstlänge und geocodierter interner Standort.
Qualifikation
25 PunktePosition, Ausbildung, Erfahrung, Sprache, Führerschein und Weiterbildung beantwortet.
Nachweise & Erfahrung
15 PunkteLebenslauf, relevante Urkunde und mindestens eine Work-History-Station oder CV-Parsing.
Trust & Kontakt
10 PunkteVerifizierter Kontaktkanal, keine relevante Abmeldung, Kandidat ist erreichbar.
Active-Sourcing-Consent
5 PunkteAnonymes Profil aktiviert, Preview-Version und sichtbare Feldgruppen gespeichert.
Active-Sourcing-ready
Score >= 80%, Muss-Module erfüllt, Status active oder open, Consent vorhanden und Datenschutzregel erfüllt: keine exakte PLZ, keine Koordinaten, kein Name, keine Kontaktdaten, keine Dokumentdateien und kein aktueller Arbeitgeber in der Unternehmensansicht.
Qualifikation vs. Präferenz
Qualifikation · selten fragen
- Ausbildung:
education,education_other - Weiterbildungen:
continuing_education - Berufserfahrung:
work_experience,WorkHistory - Position/Rolle, Sprache, Führerschein
- Dokumente: Lebenslauf, Examensurkunde, Berufsurkunde, Sprachzertifikat
CRM-Regel: erst fragen, wenn fehlt, widersprüchlich ist, aus Lebenslauf neu ableitbar ist oder seit 12 Monaten nicht bestätigt wurde.
Präferenz · häufiger aktualisieren
- Suchstatus und Dringlichkeit
- Startdatum und Verfügbarkeit
- Versorgungsart, Arbeitsumfang, Dienstlänge
- Schichtpräferenz und Muttischichten
- Gehaltsuntergrenze und sonstige Wünsche
CRM-Regel: alle 30-90 Tage aktualisieren. Aktiv suchende Kandidaten häufiger, passive Kandidaten eher per leichtem Confirm-Flow.
Nachrichtensystem
Das CRM sollte nie generisch "Profil vervollständigen" senden. Jede Nachricht fragt genau eine fehlende oder veraltete Signalgruppe ab.
- Status bestätigen: aktiv, offen oder gerade nicht suchend?
- Timing klären: wann könntest du starten?
- Schichten aktualisieren: welche Schichten passen aktuell?
- Versorgungsart aktualisieren: welche Bereiche kommen infrage?
- Arbeitsumfang / Gehalt: welcher Umfang und welche Untergrenze passen?
- Qualifikation schließen: Ausbildung oder Weiterbildung ergänzen.
- Nachweis anfordern: Examensurkunde oder Berufsurkunde ergänzen.
- Berufserfahrung ergänzen: letzte Station oder Lebenslauf hochladen.
Produkt- und Backend-Gaps
- Feld-Level-Aktualität: Es gibt
job_search_status_updated_at, aber keine Aktualität pro Präferenz- oder Qualifikationsfeld. - Explizite Negativantworten: Leere
continuing_educationbedeutet aktuell "unbekannt" oder "keine Weiterbildung". - Spezialisierungs-Erfahrungsjahre: Experiment 05 ist fachlich wichtig, aber nicht als eigenes aktuelles Applier-Feld sichtbar.
- Dokumenten-Verifikation:
UserFilespeichert Typ und Datei, aber keine Verifikation. - Active-Sourcing-Consent: Opt-in, Preview-Version und sichtbare Feldgruppen müssen persistiert werden.
- Entfernung: Exakte Standortdaten existieren intern, sollten für Unternehmen aber nur als Bucket oder gar nicht sichtbar sein.
Empfohlene neue Datenstruktur
ProfileSignalStatus
Feldstatus je Signal: missing, answered, confirmed_none, stale, verified.
signal_key · last_answered_at · last_prompted_at · source
AnonymousActiveSourcingConsent
Persistiert Opt-in, Deaktivierung, Preview-Version und sichtbare Feldgruppen.
enabled_at · disabled_at · preview_version
ApplierSpecializationExperience
Spezialisierungs-Erfahrungsjahre aus Experiment 05 als strukturiertes Signal.
area · years · source · confirmed_at