The Problem
Career fairs are high-stakes, low-information environments. Students arrive having skimmed a few company websites. Recruiters have two minutes per conversation, often for roles that span entirely different technical stacks. The mismatch between what students say and what companies actually need is visible from both sides of the table.
What if AI could do the homework? Upload your resume, tell us which companies are attending, and let the system figure out where you fit — and how to say it in 60 seconds.
What PitchPrep Does
- Resume upload and skill extraction — parse the resume, identify technical and soft skills, build a structured profile
- Company match scoring — compare the skill profile against company requirements to generate a 0–100% fit score for each employer
- Elevator pitch generation — GPT-4o-mini produces a tailored, company-specific 60-second pitch grounded in the candidate's actual experience
- Career fair card export — generate printable or shareable cards summarizing the match and pitch for each company
- Batch generation — run the entire pipeline across every attending company at once, not one at a time
Stack
- Next.js 16 — app framework, server components, API routes
- React 19 — UI layer
- TypeScript — 96.7% of the codebase; strong typing across the API surface
- Tailwind CSS — styling
- MongoDB Atlas — user accounts, stored profiles, company data
- OpenAI GPT-4o-mini — pitch generation and skill matching
- JWT authentication — session management
Team
PitchPrep was built at OU Hackathon 2026 by a team of four: Ghulam Ali Doulat, Lkhanaajav Mijiddorj, Rajeev Kumar, and Wahid Haidari. The repository is forked from Wahid Haidari's original. Each team member contributed to the design and implementation across a 24-hour sprint.
What I Learned
Building a meaningful AI product in 24 hours forces prioritization that a longer timeline doesn't. The most important decision we made was keeping the AI surface narrow: GPT-4o-mini does pitch generation, not architecture — it operates on a structured prompt we control, with parsed resume data as input. That constraint made it predictable enough to ship.
The TypeScript strictness paid off in the last few hours when we were moving fast. Strong types meant refactors were safe. That's not always appreciated in a hackathon context, but it mattered here.
I wrote a longer account of the build process in my article: Building PitchPrep at OU Hackathon 2026.