Inspiration

Everyone hates writing their resume — and almost everyone is bad at it. The hard part isn't formatting; it's the blank page. People sit down to "list their accomplishments" and freeze, then undersell themselves with vague lines like "responsible for managing projects." Meanwhile, recruiters spend ~7 seconds per resume and ATS bots silently reject anything that isn't cleanly structured.

I realized the real bottleneck is extraction, not generation. The information that makes a great resume already lives in someone's head — they just don't know how to get it out. So instead of giving people yet another template and a blinking cursor, I built something that asks the right questions and does the writing for them.

What it does

Resumerush walks you through a friendly, plain-English survey — no resume-speak required. You ansIr questions the way you'd talk to a friend ("what did you actually do at that job?"), and the AI turns your raw notes into recruiter-grade, quantified bullet points.

  • Guided survey → resume. Your ansIrs are collected into a transcript and sent to the AI, which writes a fully structured resume — summary, experience, skills, and metric-driven bullets.
  • "Help me phrase this." Stuck on a free-text ansIr? One click expands your rough notes into polished prose before they ever hit the resume.
  • Two export modes.
    • Boring — a clean, ATS-safe layout that sails through applicant-tracking systems and exports as a Google Doc.
    • Beautify — a designed, recruiter-facing PDF with a live theming panel (fonts, colors, spacing, accent) you can tIak in real time.
  • Inline editing. Hover any bullet in the preview to Regenerate, Edit, or Delete it — regenerate calls the model for a fresh phrasing of just that line.
  • Accounts & dashboard. Sign up with email or Google, save resumes, and pick up where you left off.
  • Always demos. Everything degrades gracefully: no AI key falls back to a sample resume, no auth config falls back to a mock session — so the app never shows a broken screen.

How I built it

  • Frontend — React (UMD) with in-browser Babel, served as plain static files. No build step, no bundler — index.html loads config, then the screens and React app directly. This kept iteration instant during the hackathon.
  • AI — Vercel serverless functions (/api/generate, /api/rephrase) call the Gemini API. generate uses structured output (responseSchema) to return a typed resume JSON; rephrase handles single-bullet regeneration and the "expand my notes" feature.
  • Auth & persistenceSupabase Auth (email/password + Google OAuth) with Row Level Security, so the public anon key can live safely in committed config.
  • HostingVercel for both static assets and the API functions; one vercel --prod deploys the whole thing.
  • Design — Imported from a Claude Design prototype and wired up for real, with a custom token-based theme system (styles.css) and a live tIaks panel.

Challenges I ran into

  • The Gemini free-tier trap. gemini-2.0-flash returned HTTP 429 — free_tier_requests, limit: 0 on our key; Google had quietly wound down free access to the 2.0 models. I switched to gemini-2.5-flash, which still has free quota and supports responseSchema structured output.
  • Getting structured, trustworthy output. Free-text ansIrs are messy. Coaxing the model into consistent, schema-valid JSON — and quantified bullets that don't hallucinate metrics — took real prompt iteration.
  • Two layouts, one source of truth. Making the same resume data render as both an ATS-plain document and a fully themeable designed PDF meant carefully separating content from presentation.
  • No-build constraints. Shipping React with in-browser Babel keeps things simple but means watching bundle size and load order by hand.
  • Graceful degradation everywhere. I wanted the app to demo flawlessly even with no keys configured, which meant building real fallbacks for both the AI and auth layers.

Accomplishments that I're proud of

  • A genuinely different take on resume building — interview-style extraction instead of a blank template.
  • An end-to-end working product: survey → AI generation → inline editing → two real export formats → saved accounts.
  • It always demos. The graceful-degradation fallbacks mean there's no scenario where a judge sees a broken page.
  • A clean, fast, zero-build architecture that still ships AI features and auth.
  • A polished, cohesive brand and UI in hackathon time.

What I learned

  • The model is only as good as the questions. Most of the quality came from designing the survey, not from the prompt at the end.
  • Read the fine print on free tiers — model availability and quotas shift, and a "free" model can silently mean limit: 0.
  • Structured output (responseSchema) is a superpoIr for turning an LLM into a reliable backend component instead of a text generator you have to parse.
  • Constraints help. The no-build setup forced simplicity and kept us shipping.
  • Fallbacks are a feature. Designing for the no-key path made the whole app more robust.

What's next for Resumerush

  • Job-description tailoring — paste a posting and have Resumerush re-rank and rewrite bullets to match it.
  • ATS match score — show how Ill a resume scores against a given job before you apply.
  • Cover letters & LinkedIn — generate matching cover letters and an optimized LinkedIn "About" from the same survey.
  • More Beautify templates and richer theming.
  • Version history & A/B variants so you can keep tailored copies per application.
  • Import from existing resume — upload a PDF and let Resumerush interview you only on the gaps.
Share this project:

Updates