
Brief
A job-search SaaS that surfaces the postings a candidate would actually clear — not the firehose. NestJS API + Next.js web in a Turborepo so types and contracts stay shared.
Challenge
Job boards optimize for posting volume, not match quality. Candidates spend hours filtering through roles that don't match seniority, stack, or compensation band. The AI curation layer needs to be fast enough to feel interactive but cheap enough to run on every search.
Solution
Architected the system as a Turborepo with a NestJS API service, Next.js web client, and shared packages for schemas/types. The curation pass runs through prompt-cached LLM calls with structured-output schemas so results are parseable end-to-end.
What I built
- 01Turborepo with shared schema + type packages
- 02NestJS service architecture with Zod validation
- 03Cached LLM inference for sub-second curation
- 04Next.js App Router with RSC for the search results
Stack
- Next.js
- NestJS
- Turborepo
- TypeScript
- PostgreSQL