AI Resume Generator
An AI-powered resume optimization platform that generates targeted resume variations, evaluates them through six specialized AI agents, and compiles publication-ready PDFs via LaTeX.

The Problem
Writing a resume that lands interviews isn't about listing experience — it's about framing that experience to match what a specific company and role demands. Most job seekers send the same generic resume everywhere, missing critical keywords, misjudging tone, and failing ATS filters before a human ever reads it. Tailoring a resume manually for every application is effective but unsustainably time-consuming.
How It Works
Users start with a base resume containing their complete work history, skills, and projects. When targeting a specific position, they provide company and job details — or let the system scrape and research the company automatically via Tavily web search. The platform then analyzes the gap between the candidate's profile and the target role, and generates a tailored resume variation using GPT-4o with structured outputs via the Instructor framework.


Dashboard — overview of resumes, recent activity, and quick actions
The AI rewriting engine operates with strict constraints: it preserves all factual data — titles, dates, company names — while enhancing descriptions with power verbs, quantified impact metrics, and STAR-method framing. It injects relevant keywords from the job description and adapts tone based on detected company archetype: Enterprise/FinTech gets a 'Balanced Tech Lead' voice emphasizing reliability and governance, AI/Big Tech gets a 'Bold Innovator' tone highlighting research and vision, Startups get direct impact-driven language, and Creative companies get user-centric storytelling.


Global profile — base resume data shared across all variations


Profile detail — editing work experience, skills, and projects


Creating a new resume profile
Resume Generation & Variations
Each base resume can spawn multiple targeted variations — one per company or role. The platform tracks all generated versions with snapshots, letting users compare how the same experience is framed differently for different audiences.


Generated variations — multiple tailored versions from a single base resume


Viewing a specific resume variation with section-by-section content


Live PDF preview — LaTeX-compiled resume ready for download


Archived resumes — version history and past variations
Six-Agent Evaluation System
Every generated resume is evaluated by six specialized AI agents, each examining the document from a different professional perspective. An ATS Scanner checks keyword density and format compatibility. A Hiring Manager evaluates role fit and career trajectory. A Senior Engineer peer-reviews technical credibility. A Recruiter assesses first-impression quality. An HR Specialist checks for consistency and red flags. And a Visual Recruiter uses GPT-4o's vision capabilities to perform a 6-second visual scan of the rendered PDF — evaluating layout hierarchy, typography, and visual balance the way a real recruiter would.


AI evaluation — six agents scoring the resume from different perspectives
Each agent produces a scored assessment with specific positives, negatives, and actionable suggestions. The resume is only marked 'ready' when all six agents score above 85. Users can then apply AI-powered fixes — either conservative edits that preserve the original structure or aggressive rewrites — and re-evaluate iteratively until every perspective is satisfied.


Evaluation results — per-agent scores with detailed feedback


AI-powered improvement suggestions with actionable fixes
LaTeX PDF Generation
Resumes compile to publication-quality PDFs through a dedicated LaTeX service. The template engine supports eight typeface families, custom section ordering and naming, clickable hyperlinks, and automatic date formatting. Users can also drop into a CodeMirror editor to customize the LaTeX source directly. The compilation service runs in a separate Docker container to isolate the TeX runtime from the main application.
Application Tracking & Analytics
Beyond resume generation, the platform tracks job applications through a pipeline — Draft, Applied, Interviewing, Accepted, Rejected — with metadata for salary ranges, interview rounds, and contact persons. An analytics dashboard visualizes application statistics, pipeline funnels, activity heatmaps, and cumulative API cost tracking across OpenAI and Tavily usage.


Application board — tracking job applications and their status


Kanban pipeline — drag-and-drop application stage management


Application detail — salary, interview rounds, contacts, and notes
Structured AI Outputs
A core technical decision was rejecting the common pattern of asking an LLM for free-form text and parsing the result with regex. Instead, every AI interaction uses the Instructor framework — a library that wraps OpenAI's function calling API with Zod schema validation. Each expected output shape is defined as a Zod schema at compile time, and Instructor guarantees the LLM response conforms to that schema or retries. This means the resume generation endpoint returns a fully typed ResumeData object, not a string that might contain a JSON blob.
The evaluation system takes this further with six independent agent calls, each bound to its own output schema — score (0–100), status enum, positives array, negatives array, and suggestions array. The Visual Recruiter agent uses GPT-4o's multimodal capabilities: the resume is first compiled to PDF, rendered as a 150 DPI PNG, and sent as an image input alongside the text prompt, allowing the model to evaluate visual hierarchy and layout in addition to content.
LaTeX Compilation Pipeline
PDF generation runs through a dedicated Node.js/Express microservice that wraps pdflatex. The main application generates LaTeX source from structured resume data using a template engine with placeholder substitution (<<key>> syntax), LaTeX special character escaping, and conditional section rendering based on visibility toggles. The generated .tex file is sent to the compilation service, which writes it to a temporary directory, runs pdflatex, and streams the resulting PDF binary back.
The template system supports eight font families via the psnfss package, dynamic section ordering through a configurable structure prompt, custom section titles, automatic date formatting (ISO to human-readable), and nested bullet point generation from delimited strings. Hyperlinks for email, phone, LinkedIn, and GitHub are embedded as clickable \href elements. The service runs in its own Docker container with a full TeX Live installation, isolating the ~2GB TeX runtime from the lean application image.
Document Parsing & Import
Users can bootstrap their profile by uploading an existing resume in PDF, DOCX, or plain text format. The system extracts raw text using pdf-parse for PDFs and mammoth for Word documents, normalizes whitespace, and then passes the extracted text through GPT-4o with a structured schema to parse it into the application's ResumeData format — automatically populating work experience, education, skills, and projects from an unstructured document.
Architecture & Infrastructure
The full stack runs on Next.js 16 with TypeScript, using Prisma as the ORM against PostgreSQL. The database schema models resumes, resume sections (experience, education, skills, projects, awards, custom sections), variations with JSON snapshots, evaluations with per-agent scores, and API usage tracking for cost analytics. SWR handles client-side data fetching with automatic revalidation.
The frontend uses Tailwind CSS for styling, Framer Motion for animations, Radix UI primitives for accessible components, Recharts for analytics visualizations, @dnd-kit for drag-and-drop in the kanban board, and CodeMirror for the LaTeX editor. State management uses React Context providers — one for resume data with auto-save tracking, and one for the application pipeline.
The entire platform is containerized with Docker Compose across three services: the Next.js application, PostgreSQL 15 on Alpine, and the LaTeX compilation service. The application image uses multi-stage builds to separate the build environment from the production runtime. Prisma migrations run automatically on container startup.
Proving the System
This isn't a theoretical tool — I'm actively using it to land my own internships. Every application I send goes through the full pipeline: company research, targeted generation, six-agent evaluation, iterative fixes, and LaTeX compilation. The system is its own proof of concept — if the resumes it produces get me interviews, the methodology works. That process is currently underway.
Technical Highlights
- -Six specialized AI evaluation agents scoring resumes from ATS, hiring manager, engineer, recruiter, HR, and visual perspectives
- -GPT-4o with Instructor + Zod for guaranteed structured outputs — no fragile parsing
- -Company archetype detection adapting resume tone (Enterprise, Big Tech, Startup, Creative)
- -LaTeX PDF compilation service with 8 typefaces, custom sections, and clickable hyperlinks
- -Multimodal visual evaluation using GPT-4o vision on rendered PDF screenshots
- -Application tracking pipeline with analytics dashboard and API cost monitoring
- -Resume variation management with version snapshots and evaluation history
- -Tavily web search integration for automated company research
- -Dockerized three-service architecture (Next.js + PostgreSQL + LaTeX compiler)