Resume Roaster
AI-powered resume optimization platform with spatial ATS parsing, zero-duplicate action verb rewriting, and ATS-safe PDF generation.
Executive Summary // 30-Second Recruiter Brief
Job seekers frequently encounter resume parsing failures in Applicant Tracking Systems (ATS) due to non-standard spatial layouts, repetitive action verbs, and unquantified bullet accomplishments.
Built Resume Roaster (atsroast.com) — a full-stack platform leveraging Next.js 15 App Router, TypeScript, Supabase (PostgreSQL, RLS), OpenAI API (GPT-4o structured JSON schemas), Razorpay payments, Brevo transactional emails, and Vercel Cron orchestrator.
1. Problem Formulation & Motivation
Job seekers frequently encounter resume parsing failures in Applicant Tracking Systems (ATS) due to non-standard spatial layouts, repetitive action verbs, and unquantified bullet accomplishments.
To build a production web application providing objective resume critique, spatial ATS parsing diagnosis, constrained bullet rewriting, and ATS-safe PDF export.
2. Approach & System Solution
Built Resume Roaster (atsroast.com) — a full-stack platform leveraging Next.js 15 App Router, TypeScript, Supabase (PostgreSQL, RLS), OpenAI API (GPT-4o structured JSON schemas), Razorpay payments, Brevo transactional emails, and Vercel Cron orchestrator.
3. Architecture & Execution Pipeline
Full-stack Next.js production architecture with Supabase database, OpenAI structured JSON completions, and scheduled Vercel cron jobs.
Resume Roaster — Topology
Interactive Visual Data Pipeline · Click any stage to inspect execution state
Next.js 15 interface with instant heuristic scoring and real-time bullet editor.
Execution Data Flow Sequence
6 Steps- 1User uploads a resume PDF; spatial parser extracts text and checks layout compatibility.
- 2Client-side evaluator computes instant heuristic strength scores for action verbs and metric density.
- 3User initiates AI optimization; Next.js Server Action validates user quota in Supabase.
- 4GPT-4o processes bullet points with strict JSON schemas enforcing zero duplicate action verbs.
- 5User exports ATS-optimized resume PDFs via @react-pdf/renderer.
- 6Nightly Vercel Cron executes storage bucket cleanup, aggregates trending skills, and dispatches a metrics summary to Telegram.
4. Engineering Decisions & Trade-Offs
Strict Action Verb Diversity Constraint
Vercel Cron Orchestration with Telegram Alerting
5. Implementation Snippet
export interface BulletAuditResult {
hasActionVerb: boolean
hasQuantifiedMetric: boolean
isLengthOptimal: boolean
suggestedImprovement?: string
}
export function auditBulletStrength(bullet: string): BulletAuditResult {
const clean = bullet.trim()
const hasMetric = /\d+%|\$\d+|\d+x|\b\d+\b\s*(?:users|clients|ms|s|hours|days|engineers)/i.test(clean)
const startsWithStrongVerb = /^(?:Built|Engineered|Architected|Spearheaded|Reduced|Optimized|Deployed|Designed|Automated|Scaled)\b/i.test(clean)
const wordCount = clean.split(/\s+/).length
const isLengthOptimal = wordCount >= 10 && wordCount <= 25
return {
hasActionVerb: startsWithStrongVerb,
hasQuantifiedMetric: hasMetric,
isLengthOptimal,
suggestedImprovement: !hasMetric ? "Quantify the outcome with a specific metric (e.g. %, scale, time saved)." : undefined
}
}6. Evaluation & Measured Results
Engineered as a full-stack SaaS platform deployed on Vercel with active users, Supabase backend, OpenAI structured outputs, and Razorpay payment integration.
Deployed and active at atsroast.com
Spatial PDF Parser, Zero-Duplicate Bullet Rewriter, Cover Letter Generator, PDF Builder
Automated nightly storage cleanup, trending skills analysis, and Telegram alerts
7. Limitations & Production Considerations
- •Spatial text extraction with pdf-parse is limited on complex multi-column graphic resumes with embedded canvas elements.
- •API rate limits on LLM generation require strict user quota management in Supabase.
Related Technical Essays
Next.js 16 App Router Architecture: Server Components, Streaming SSR, and Static Site Generation
The transition to React Server Components fundamentally altered how web applications manage state, bundle boundaries, and data fetching. This deep-dive examines Next.js 16 App Router mechanics, Partial Prerendering, RSC serialization contracts, and cache revalidation strategies.