Pulse CV Product Audit
What existed before the pivot
- A working public web app with resume + JD intake.
- Server-side LinkedIn scraping and JD cleanup.
- Provider support for Hugging Face, Gemini, and LM Studio.
- Deterministic scoring had already replaced pure LLM scoring.
- A public UI already existed and was deployable to Hugging Face Space and GitHub Pages.
What was conceptually broken
- The product still behaved like an ATS score checker.
- Flat keyword matching remained too visible in the UX and API.
- Output mixed extracted facts, inferred facts, and AI wording.
Critical Gapsstill surfaced noisy tokens rather than typed requirements.server.tsconcentrated scraping, normalization, matching, scoring, and provider work in one file.
What was worth preserving
- LinkedIn extraction improvements.
- Public deployment stack.
- File upload and pasted-text intake.
- Server-side provider abstraction.
- Existing multilingual baseline.
What needed replacement
- Flat keyword-first result model.
- Primary score-led UX.
- Missing recruiter-grade explainability.
- Missing evidence map.
- Missing JD quality review.
- Missing typed requirement schema and domain pack.