CV Tailor: Lokale CV-Anpassung mit optionaler KI
Kaum eine Bewerbung braucht denselben Lebenslauf zweimal. CV Tailor ist meine Antwort darauf: eine Desktop-App, in der du ein Profil importierst, eine Stellenanzeige einfügst oder lädst, den Match prüfst und einen rollenspezifischen CV erzeugst – optional mit KI, und mit allen Daten lokal auf dem Rechner.
Meine Rolle
Solo-Projekt von Ende zu Ende – Produkt, UI, Domänenmodell, Desktop-Shell, Release-Pipeline und die native Rust-Schicht für KI-Tools, PDF-Export und Backups.
Funktionen
- Profile verwalten – Import aus Dateien oder URLs, Erfahrung, Fähigkeiten und Projekte bearbeiten
- Bewerbungen verfolgen – ein Arbeitsbereich pro Stelle, geführter Ablauf in drei Schritten
- Stellenanzeigen analysieren – Keywords, Anforderungen und kurze Rollen-Zusammenfassung
- Match-Scoring – Profil gegen Anzeige vergleichen (Entwurf oder KI-gestützt)
- Maßgeschneiderte CVs – sprachspezifische Versionen pro Bewerbung (Deutsch / Englisch)
- PDF-Export – aus der Desktop-App
- Backup & Restore – lokale Snapshots, JSON Export/Import, optional S3/MinIO
- Auto-Update – Produktionsbuilds prüfen GitHub Releases auf neue Versionen
Produkt-Durchlauf
Schritt 1 – Stellenanzeige einfügen oder importieren, Titel, Unternehmen und Positionstyp setzen
Schritt 2 – KI analysiert die Anzeige, während Match-Insights laden
Match-Score, Keywords, Stärken und Lücken gegenüber dem Profil
Schritt 3 – Layout wählen, Zusammenfassung und Fähigkeiten anpassen, CV-Vorschau
Technische Herausforderungen
Ein paar Teile waren echte Knacknüsse:
- Lokale KI ohne API-Keys in der App – CV Tailor ruft CLIs auf dem Rechner auf (Claude Code, Codex, Cursor Agent), statt Cloud-Credentials mitzuschiffen. Das braucht saubere Prozess-Orchestrierung, Parsing und Fallbacks, wenn kein Tool installiert ist.
- Desktop + Web aus einer Codebase – Tauri 2 für die native Shell (SQLite, PDF, Datei-Import, Updater), mit einer Vite/React-UI, die auch im Browser gegen eine lokale HTTP-Bridge oder ein headless Rust-Gateway läuft.
- Daten, die beim Nutzer bleiben – Profile, Bewerbungen und CV-Läufe liegen in lokaler SQLite über TanStack DB. Backup/Restore und optionaler MinIO-Sync mussten Historie erhalten, ohne Credentials in Backup-JSON zu schreiben.
Tech Stack
- Frontend: React, TypeScript, TanStack Router, TanStack DB, shadcn/ui
- Desktop: Tauri 2 (Rust) – SQLite, PDF-Export, Dateidialoge, Updater
- KI: Lokale CLIs + gemeinsame Rust-Runtime in
cv-tailor-native; optional headless Gateway - i18n: Deutsche und englische UI von Anfang an
Architektur (kurz)
apps/web → React-UI + Tauri-Shell
crates/native → Gemeinsame AI-, Backup- und Gateway-APIs
packages/core → Domänentypen, Schemas, Scoring
packages/db → TanStack-DB-Collections + SQLite
packages/ai → Prompt-Builder und CLI-Parser
packages/ui → Gemeinsame shadcn-Komponenten
Geräte behalten lokale SQLite. Das Gateway kann KI-Tools ausführen (und optional die gebaute Web-UI ausliefern), wenn ein Browser-Client gegen eine Maschine im Netzwerk sprechen soll.
Release
macOS- und Windows-Installer liegen auf GitHub Releases, mit signierten Auto-Updates für Produktionsbuilds. Die Builds sind für Gatekeeper/SmartScreen unsigniert – Hinweise zur Installation stehen in der README.
Fazit
CV Tailor ist das Tool, das ich für meine eigenen Bewerbungen wollte: schnelle Iteration pro Rolle, standardmäßig privat, und KI nur wenn sie wirklich hilft. Open Source unter MIT.
Quellcode und Downloads: github.com/Doderich/cv-tailor.



