Resume Analyzer
AI-powered resume analysis — Gemini reads your PDF and coaches you to a better job.

Overview
Upload a resume PDF, get a Gemini-powered analysis: ATS score, keyword gaps, and experience critique. Beyond the scan, a section-by-section rewrite tool and a coaching chat grounded in your specific results.
Analyses persist to Supabase so users can revisit past results. Containerised with Docker, rate-limited, and shipping as a PWA.
My Role
- Built the PDF ingestion pipeline — handles multi-column layouts, unicode edge cases, and column-split sentences.
- Designed the Gemini prompt system: separate prompts for analysis, rewrite, and coaching, each tuned for consistent JSON output.
- Multi-client Gemini setup that rotates API keys to stay within rate limits.
- Built the analysis workspace — a split-pane UI with the analysis on one side and streaming chat on the other.
- Set up Supabase auth, migration-backed schema, and a middleware-protected dashboard.
Tech Stack
Challenges & Learnings
PDF parsing is messier than it sounds. Resumes use every conceivable layout — two-column designs, tables, embedded fonts — and naive extractors butcher them. The fix was custom normalisation that collapses whitespace artefacts and re-stitches lines split mid-sentence by column boundaries.
Getting Gemini to return parseable JSON was a fight. Early prompts produced markdown-fenced JSON, trailing commas, and hallucinated fields. Strict JSON-mode, a schema in the prompt, and a retry-with-correction loop that asks Gemini to fix its own broken syntax did it.