All projects
AI side project

ResumeLens

Solo Builder · 2026
See live project Code
ResumeLens screenshot 1
ResumeLens screenshot 2
Next JSZustandPuterTypeScriptTailwind CSS

About the Project

ResumeLens compares an uploaded resume against a target job description and scores it across five dimensions (ATS compatibility, tone/style, content, structure, and skills), surfacing keyword gaps, rewrite suggestions, and likely interview questions for the role.

The hard parts were on the frontend: extracting clean text from arbitrary PDF/DOCX files entirely client-side, and iterating on prompts and response parsing until Claude's analysis came back as consistent, structured data that a typed UI can render — not free-form text. The response is validated against a typed schema and retried when the model returns malformed JSON, and every async surface has explicit loading, error, and empty states so a failed parse degrades gracefully instead of crashing. Built with React Router 7 (SSR) and Zustand; Puter handles auth, file storage, and key-value persistence, so there's no custom backend to run.

What I learned

Scoring an uploaded document against a job description reliably took more prompt and parsing iteration than expected, especially around keeping suggestions specific rather than generic across five separate dimensions.

Offloading auth, storage, and key-value persistence to Puter removed the need for a custom backend, which let the past-scores history ship as a thin client feature rather than a database-backed one.

Side project · source on GitHub
See live project Code All projects