Job seekers often save links everywhere, read job descriptions repeatedly, and still do not know which roles are worth applying to first. I wanted one workspace that connects the CV, job source, and next action.
How I fixed it
I built CV upload and parsing, multi-source job scraping, manual job input, match scoring, and AI suggestions. The app stores jobs, CV data, and matches in Neon through Drizzle, with Clerk handling auth.
What it can do
✓CV PDF upload and parsing
✓Multi-source job scraping
✓Manual job capture
✓CV-to-job match score
✓AI CV improvement suggestions
✓Application pipeline tracking
The stack that shipped it
Next.js gave the project one place for UI and API routes. Cheerio handled stable sources, Groq handled CV and suggestion tasks, and Drizzle kept the database layer readable.
What changed
The app turns scattered job hunting into a more deliberate workflow: collect roles, compare fit, improve the CV, then track progress.
What I learned
The hardest part was not the AI prompt, but making the messy edges of public job sources fail gracefully and still giving users a useful fallback.