Skip to main content

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
MockMate, screenshot
01/03MockMate
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

  1. 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.

  2. 02 · Day one, a written spec

    MockMate's product requirements document on GitHub, dated 27 May 2026, opening with the problem statement.

    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.