Multi-LLM fallback chain
Three tiers in order: Kimi K2 first (cheap and fast), GPT-4o-mini if it fails, static template if both are down. Per-tier metrics so I can see which provider actually served each request.
Tauri Desktop-App, fünf Flask-Microservices, dreistufige LLM-Fallback-Kette
Desktop application that pulls job listings, scores them against a stored profile, and generates tailored cover letters. Local-first, cross-platform via Tauri. Built as a single-developer exercise in microservice orchestration and LLM fallback.
// ziel
Manual applications take weeks. I wanted a tool that finds matching roles, scores them against a stored career profile, and writes a tailored cover letter quickly enough that I'd actually use it instead of writing one from scratch.
// umsetzung
Tauri 2.0 desktop app with a React 19 frontend on top of five separate Python/Flask services (Profile API, Job API, Career Profile, Draft API, Job-Scan). The LLM step runs a three-tier fallback chain: Kimi K2 first, GPT-4o-mini second, static template if both fail. Job sourcing pulls from JSearch and Adzuna. Matching is scored, not keyword-based.
// features
Three tiers in order: Kimi K2 first (cheap and fast), GPT-4o-mini if it fails, static template if both are down. Per-tier metrics so I can see which provider actually served each request.
Profile API, Job API, Career Profile, Draft API, and Job-Scan run as separate services. Each owns its own data and contract, so I can upgrade or rewrite one without touching the others.
Job descriptions are scored against the stored career profile rather than keyword-matched, which surfaces relevant roles even when wording differs.
Native cross-platform app via Tauri 2.0. CV, profile, and generated drafts stay on the local machine; the app only calls out for job listings and LLM completions.
// tech stack
// ergebnis
Multi-profile desktop app. Generates a tailored cover letter from a job description plus a career profile in around 30 seconds. The fallback chain keeps the app usable when one of the LLM providers is down.