Case 03
Personal project · 2026
Close resume–JD keyword gaps and export ATS-safe docs
- ATS export
- JD scan
- Local-first
Local-first resume matcher: scan a job description, close keyword gaps with accept/skip optimize, export ATS-safe PDF/DOCX, and track applications.
Built full product — scan, optimize, export, tracker
- Next.js
- JavaScript
- Gemini
- Vitest
- Playwright
01 Hook
Applicants lose interviews to keyword mismatches — not to weak experience.
02 Context
Next.js product with import, builder, job scan, optimize, tracker, and pricing surfaces — Gemini parse optional via env.
03 Problem
Generic resume tools either phone home with data or dump advice without an editable optimize loop and ATS-safe export.
04 Insight
Local-first + accept/skip keyword closes beats a black-box rewrite — the user keeps ownership of every change.
05 Exploration
Wired scan → optimize → export, application tracker, unit tests (Vitest), Playwright smoke/workflow, Vercel-ready release check.
06 Decision
Kept the core local-first; LLM providers optional in Settings so the product works without locking users to one API.
07 Solution
Shipped Resume Helper v1.0: full site map from import through tracker, with health endpoint and production docs.
08 Impact
Proof of work: public repo with release:check (typecheck + tests + build) and end-to-end workflow coverage.
Impact
Scan
JD keyword match
PDF
ATS-safe export
E2E
Playwright coverage
v1.0
Shipped product