Work 04 · Full-Stack
MockMate
Paste a job description. Get a tailored interview. Get graded like a hiring panel would.
- Role
- Personal project
- Scope
- Full-stack
- Year
- 2026 – now
- Built with
- Next.js, TypeScript, Prisma, Shadcn/UI

- Product
- Live
- Interview engine
- Gemini
- Validated grading output
- Zod
Overview
A full-stack AI interview platform. Paste a job description, answer tailored technical questions from an AI interviewer, and receive a structured graded report. Built with Next.js, Google Gemini and Prisma.
The challenge
Interview prep tools ask you to read, not do. The real problem was designing an AI pipeline that ingests any job description, generates role-specific technical questions, and grades answers the way a hiring panel would, with depth, clarity, and gap analysis, not just correct or incorrect.
Design
Palette
- Background#FFFFFF
- Text#0A0A0A
- Surface#F5F5F5
- Border#E5E5E5
Type
- Text
- Geist
- Code
- Geist Mono
Engineering
Approach
Next.js App Router for full-stack delivery in one repo. Google Gemini via the Vercel AI SDK for streaming question generation and answer grading, with grading in a Next.js API route so the whole product lives in one repo and one deploy. Prisma for a typed data layer. PDF.js to parse uploaded resumes. PostHog to see where users drop off.
How it was built
Built an AI pipeline: JD upload, Gemini parses role requirements, generates targeted questions, streams answers, and grading runs in a Next.js API route with structured Zod-validated output. Two decisions worth calling out. First, I split the AI into two separate flows, a live interview conversation and a separate grading pass. If I had merged them into one prompt, the feedback came out inconsistent, because the model was doing two jobs at once. Second, answers persist to the database before any AI runs. If a Gemini call fails, the user's work is still there instead of vanishing mid-interview.
Built with
Next.js, TypeScript, Prisma, Shadcn/UI
The Making
01 · Brief
No grand plan. I wanted to build something, and since I was preparing for interviews myself, it became a place to practise them.
02 · Day one, a written spec

It started as a product requirements document on 27 May 2026, before any code: the problem, the scope and the open questions, closed one by one.