Exponat-Ansichten — Generierte Platzhalter-Grafik — echte Screenshots ersetzen sie.
Exponat-Ansichten
Überblick
Lebenslauf AI behandelt den Lebenslauf als strukturiertes System statt als statische Datei. Ein Master-Profil enthält die vollständigen Karrieredaten; daraus erzeugt die Plattform jobbezogene, ATS-orientierte Lebensläufe und Anschreiben. Dokumente werden in einem echten A4-Editor bearbeitet, als PDF exportiert, versioniert und über einen Kanban-Bewerbungs-Workflow mit KPI-Ansichten verfolgt.
Was es kann
- Master-Profil als einzelne strukturierte Quelle für alle Bewerbungsdokumente
- Jobbezogene Lebenslauf- und Anschreiben-Generierung, ATS-orientiert
- A4-Editor mit PDF-Generierung und Dokumentversionshistorie
- Bewerbungs-Workflow als Kanban-Board mit KPI-Ansichten
Zentrale Entscheidungen
- Lebenslauf als strukturierte Daten modelliert, nicht als Dokument: Das Master-Profil (persönliche Daten, Erfahrung, Projekte, Skills, Ausbildung, Zertifikate) ist die einzige Quelle der Wahrheit, und jede maßgeschneiderte Version speichert sowohl den Profil-Snapshot als auch die KI-Änderungen — jede Version ist damit eigenständig und jederzeit erneut renderbar.
- A4-Editor um eine Measure-then-paginate-Pipeline gebaut: Inhalte werden auf einem versteckten Canvas vermessen, gierig auf echte 210 × 297-mm-Seiten mit Abschnitts-Atomarität verteilt und über einen schlanken UnitRenderer-Dispatcher gerendert — dieselbe Pipeline versorgt den Admin-CV-Viewer, sodass Stellen identische Ausgaben sehen.
- Session-State und Dokument-State mit zwei Zustand-Stores getrennt (Auth/Session vs. CV-Dokument) — der Editor bleibt zurücksetzbar und der Ablauf Zuschneiden → Bearbeiten → Exportieren explizit.
- Auth und Nachvollziehbarkeit als Kernfeatures behandelt: rotierende JWT, Brute-Force-Sperre, optionale TOTP-Zwei-Faktor-Authentifizierung, Social Login via django-allauth, Geräte-Sessions mit Sperrung sowie eine Admin-API nur für Staff (Metriken, Nutzerverwaltung, vollständige CV-Einsicht), abgesichert durch IsAdminUser.
Schwierigstes Problem
Das schwierigste Problem war die wahrheitsgetreue A4-Paginierung im Browser: CSS allein kann keine Seitenumbrüche garantieren, die Abschnittgrenzen über Templates, Zoomstufen und Inhaltslängen hinweg respektieren. Gelöst habe ich es mit einem versteckten Mess-Canvas, der reale Blockhöhen erfasst, und einem gierigen Packer, der A4-Seiten fester Höhe füllt und Abschnitte atomar hält — mit Template-spezifischen Höhenbudgets für mehrspaltige Layouts. Derselbe Renderer versorgt Admin-Viewer und Druck-Stylesheet, sodass Editor, Staff-Ansicht und exportiertes PDF immer übereinstimmen.
Gelernt
- Eingaben zum Entscheidungszeitpunkt per Snapshot sichern: Profil-Snapshot plus KI-Änderungen machten jede CV-Version reproduzierbar, ohne Live-Daten anzufassen.
- Ein schlanker Dispatcher plus kleine Render-Einheiten skaliert besser als eine riesige Editor-Komponente — der verbliebene übergroße Orchestrator ist ehrliche technische Schuld, die ich als Nächstes aufteilen würde.
- Sicherheit ist eine Feature-Liste, keine Checkbox: Sperre, 2FA, Session-Sperrung und Audit-Logs entstanden jeweils aus dem Nachdenken über Missbrauchsfälle, nicht über Happy Paths.
- Von Tag eins für den Druck zu entwerfen (exakte A4-Maße, Druck-CSS, Zoom-to-fit) ersparte eine schmerzhafte Nachrüstung beim Export.