← All projects

Resume analysis that ships

Resumify

Upload a resume, get scored feedback, LaTeX recommendations, and tone-aware cover letters with multi-format export, backed by Gemini and a rate-limited Next.js API.

Next.jsTypeScriptReactGoogle GeminiPDFRadix UIFramer MotionZodBun
Resumify landing: AI-powered resume optimization with upload card.
Resume analysis that ships

Problem

Job seekers bounce between parsers, AI chat tabs, and export tools. Feedback is slow, unstructured, and hard to turn into a clean application packet.

Architecture

Product flow

One loop from upload to scored feedback, LaTeX guidance, tone-aware cover letters, and multi-format export.

My responsibility

I built the product end to end: Next.js app and API routes, PDF/DOCX extraction, Gemini analysis and cover-letter generation, export paths, rate limiting, and admin metrics.

Decision

Keep inference behind typed API handlers with Zod-shaped Gemini outputs, separate extract/analyze/cover-letter routes, and configurable rate windows so a public demo cannot burn the model budget.

What could fail

Corrupt or non-resume uploads, OCR/parse failures, Gemini timeouts or quota hits, prompt leakage in logs, and abuse of free endpoints.

How I made it reliable

Mime checks and rate limiters on extract/analyze routes. Secure logging redacts secrets. Health and metrics endpoints expose dependency and performance status for operators. Structured Gemini schemas keep scores and suggestions parseable.

Result

Live at resumify-peach.vercel.app: upload → score → LaTeX guidance → cover letter → export in one loop.