FULL STACK
A shortlist-first job search app. Compare roles side by side, skills pulled from your resume.

Full-stack engineer, solo
2 weeks
JobFinder is a full-stack search app I built to treat that shortlist as the product. Users browse live listings from Adzuna, save roles, and compare two or three side by side with structured Gemini summaries - similarities, differences, a recommendation, and match scores - instead of another wall of generated blurbs. A resume upload (PDF or DOCX) fills in skills so the profile is not a blank form. The premise came from research, not a hunch: at GovTech I ran the CareersFinder study that found undecided users needed to compare options side by side.
Compare is a first-class flow, not a side feature. Filters, trending, and recommended sections exist to keep discovery useful rather than endless. An admin surface sits behind it for users, listings, and cached AI output, because a search product without ops tooling falls apart the moment the feed goes stale.
Shared Zod schemas across a pnpm monorepo kept API contracts and forms from drifting. Search and AI results are cached in MongoDB with a configurable TTL - freshness versus cost is a product knob, not an afterthought. Auth uses short-lived access tokens and refresh cookies; admin routes are guarded on purpose.
Stack in short: Next.js, TypeScript, TanStack Query, MongoDB, Gemini, Adzuna. The full codebase is on GitHub if you want the models and routes.