Skip to content

Latest commit

 

History

History
111 lines (76 loc) · 4.86 KB

File metadata and controls

111 lines (76 loc) · 4.86 KB

CV Builder

Desktop CV and cover letter builder for the DACH job market

Version React TypeScript Electron Vite Zustand


CV Builder screenshot


What it does

Local-first desktop application for building CVs and cover letters targeting the German-speaking (DACH) job market. Integrates BYOK AI (Claude, GPT, Gemini, OpenRouter) and local models via LM Studio for document generation, refinement, and translation. Fully bilingual EN/DE with a Kanban application tracker that stores a complete CV/CL snapshot per job card. No backend, no telemetry, runs entirely offline.


Features

  • 7 visual templates — classic, editorial, dark-sidebar, accent-header, mono-grid, studio, atelier — with full font, color, and spacing control
  • Infinite canvas workspace — pan/zoom viewport housing document pages, sticky notes, analytics, and AI blocks as a spatial layout
  • BYOK AI + Local GPU — CV refinement, cover letter generation, match scoring, bilingual translation, reply coaching, and job description extraction across OpenAI, Anthropic, Google, OpenRouter, and LM Studio (local models on your own GPU)
  • Bilingual EN/DE — independent document state per language with a user-managed translation glossary that overrides AI output for preferred terms
  • Kanban application tracker — job pipeline (bookmarked → applied → interview → offer → rejected/ghosted) with full CV/CL snapshots frozen per card at time of application
  • Profile system — named career profiles storing complete editor state snapshots; switching profiles restores the full CV, cover letter, style, and section layout
  • Crash-safe storage — atomic file writes (temp file + rename) and a serialized DB write queue for the SQLite-backed tracker

Stack

React TypeScript Vite Tailwind Electron Zustand Radix UI sql.js


Status

Component Status
Core CV/CL editor Complete
7 layout templates Complete
AI integration (BYOK) Complete
LM Studio local GPU Complete
Bilingual EN/DE translation Complete
Application tracker Complete
Profile system Complete
Electron desktop build Complete
Automated tests Not present

Setup

Requires Node.js and pnpm.

pnpm install
pnpm dev                      # browser preview (localhost:5173)
pnpm electron:dev             # desktop app via Electron
pnpm electron:build:portable  # build portable .exe (Windows)
pnpm electron:build           # build full installer

AI configuration

The app requires no API keys to run. To use AI features, add your own key under Settings → AI after launching. Supported providers: OpenAI, Anthropic, Google, OpenRouter, and LM Studio (local GPU — no API credits needed).

Local AI via LM Studio

To run AI features entirely on your own hardware:

  1. Install LM Studio and load any model (e.g., Qwen3.5 35B-A3B)
  2. Start the local server (default: http://127.0.0.1:1234)
  3. In the app: Settings → AI → LM Studio (Local) — the server URL is pre-filled

Recommended context length: 32,000–40,000 tokens for all features to work.

Storage

In browser mode, data is stored in localStorage and IndexedDB. In Electron mode, data is written to ~/Documents/CV Builder/ using atomic file operations.


Docs


License

MIT — see LICENSE