← All projects

Lebenslauf AI

AI-powered career-application platform

Case study verified in parts
Role
Solo developer — design, backend, and interface
Team context
Personal project
Year
2026
Stack
PythonDjangoDjango REST FrameworkReactTypeScriptPostgreSQLDocker
Layered translucent sheets representing the Master Profile document pipeline of Lebenslauf AI

Exhibit views

Overview

Lebenslauf AI treats the CV as a structured system rather than a static file. One Master Profile holds a person's complete career data; from it, the platform generates job-targeted CVs and cover letters oriented toward ATS (applicant tracking systems). Documents are edited in a true A4 editor, exported as PDF, versioned, and tracked through a Kanban application workflow with KPI views.

What it does

  • Master Profile as the single structured source for all application documents
  • Job-targeted CV and cover-letter generation oriented toward ATS systems
  • A4 editor with PDF generation and document version history
  • Application workflow as a Kanban board with KPI views

Key decisions

  • Modeled the CV as structured data, not a document: the Master Profile (personal info, experience, projects, skills, education, certifications) is the single source of truth, and every tailored version stores both the profile snapshot and the AI overrides — making each version self-contained and re-renderable at any time.
  • Built the A4 editor around a measure-then-paginate pipeline: content is measured on a hidden canvas, greedily packed into true 210 × 297 mm pages with section atomicity, and rendered through a thin UnitRenderer dispatcher — the same pipeline powers the admin CV viewer, so staff see pixel-identical output.
  • Separated session state from document state with two Zustand stores (auth/session vs. CV document), keeping the editor resettable and the tailor → edit → export flow explicit.
  • Treated auth and auditability as first-class features: rotating JWT, brute-force lockout, optional TOTP two-factor auth, social login via django-allauth, per-device session management with revocation, and a staff-only admin API (metrics, user management, full CV inspection) guarded by IsAdminUser.

Difficult problem

The hardest problem was truthful A4 pagination in the browser: CSS alone cannot guarantee page breaks that respect section boundaries across templates, zoom levels, and content lengths. I solved it with a hidden measuring canvas that records real block heights, then a greedy packer that fills fixed-height A4 pages while keeping sections atomic — with template-specific height budgets for split-column layouts. The same renderer feeds the admin viewer and the print stylesheet, so the screen editor, the staff view, and the exported PDF always agree.

Lessons learned

  • Snapshot inputs at decision time: storing the profile snapshot alongside the AI overrides made every CV version reproducible without touching live data.
  • A thin dispatcher plus small render units scales better than one giant editor component — the remaining oversized orchestrator is honest technical debt I would partition next.
  • Security is a feature list, not a checkbox: lockout, 2FA, session revocation, and audit logs each arrived from thinking about abuse cases, not happy paths.
  • Designing for print from day one (exact A4 sizing, print CSS, zoom-to-fit) avoided a painful retrofit at export time.
Next project — Khairul Islam

02 Smart BPMN