CASE STUDY 05 — AI PRODUCT
TRAO Interview Prep
A full-stack preparation workspace that researches a company, extracts evidence from a job description, generates a validated interview kit, closes coverage gaps and turns the result into an editable schedule and flashcard practice flow.
OVERVIEW
From a job description to a defensible preparation plan.
TRAO starts with the role, company URL and available preparation time. It extracts requirements with exact evidence, researches the company through a bounded crawler, and separately generates technical, behavioural, system-design and company-fit questions.
The product does not treat a plausible LLM response as complete. Generated structures are schema-validated, requirement coverage is calculated in code, gap questions are added through bounded passes, and a final relational check prevents dangling IDs or inconsistent schedules.
PRODUCT WORKFLOW
One pipeline, clear stages.
PRODUCT DEPTH
Built for use after generation, too.
Evidence-backed brief
A bounded same-origin crawler ranks discovered company pages and keeps partial research failures visible.
Deterministic gap closure
Must-have requirements map to stable IDs, so coverage can be measured and missing topics targeted directly.
Smart flashcards
Practice prioritizes unseen, low-confidence and least-recently-used cards with stable deterministic ordering.
Safe regeneration
Manual, edited and pinned content survives category regeneration while untouched generated content can refresh.
Protected research
Redirects and DNS are validated, private networks are rejected in production, and fetched content is bounded.
Private workspaces
Secure HttpOnly sessions and owner-scoped queries protect every kit, mutation and practice update.
ENGINEERING
Reliability around a nondeterministic model.
- Gemini calls use timeouts, transient retries with exponential backoff and a fallback model.
- Every generated structure is Zod validated with one bounded repair attempt.
- Requirement evidence must occur verbatim in the submitted job description.
- Concurrent duplicate runs are prevented with an owner/fingerprint partial unique index.
- Async generation exposes queued, generating, complete and failed states with progress stages.
- GitHub Actions runs backend tests/build and frontend typecheck/build on every push and pull request.
TECH STACK
Full-stack, typed and deployment-ready.
Next.js App Router, React, TypeScript and Tailwind CSS
Node.js, Express, TypeScript, Zod and secure cookie-based JWT sessions
MongoDB with Mongoose, owner-scoped persistence and deduplication indexes
Gemini, Cheerio, native fetch, robots-parser and Hacker News Algolia
Vercel frontend, Render backend blueprint and MongoDB Atlas