Inspiration

What it does

Inspiration

Job hunting is stressful enough without wondering whether your resume will even survive an ATS filter or catch a recruiter's eye in the few seconds they spend on it. Most resume feedback online is generic ("use more action verbs!") — I wanted something that gives specific, line-level feedback like a real editor would.

What it does

Redline lets you upload a resume (PDF, DOCX, or TXT) and get back:

  • An overall score and a separate ATS-survivability score
  • Section-by-section feedback (Education, Skills, Experience, etc.) with concrete strengths and issues
  • Actual bullet-point rewrites — before/after, with a reason for each change
  • A ranked list of top-priority fixes to tackle first

How we built it

  • Backend: Python + FastAPI, with a clean separation between file parsing (pdfplumber/python-docx), AI review logic, and API routes — each independently testable.
  • AI: Google Gemini, prompted to return structured JSON matching a strict schema, validated with Pydantic before it ever reaches the frontend — so a malformed AI response fails loudly instead of silently breaking the UI.
  • Frontend: A single-page app with drag-and-drop upload, an animated score reveal, and staggered card animations rendering the AI's structured feedback — not just a dumped wall of text.

Challenges we ran into

Getting the full pipeline working end-to-end took real debugging: a broken Tailwind CDN link silently killed our show/hide logic (all sections rendered at once instead of switching states), a couple of missing Python imports (os, json) caused the backend to crash mid-request, and our AI model string got deprecated by the provider partway through and had to be swapped. We also accidentally committed our .env file to git — GitHub's push protection caught it before it went public, so we rotated the API key immediately and cleaned up the git history before re-pushing.

Accomplishments that we're proud of

Going from a script-style idea to an actual typed API contract — the AI's output is validated against a strict schema before the frontend ever sees it, so bad AI responses fail with a clear error instead of breaking silently. Also proud of debugging a fully broken end-to-end flow systematically, including handling a real API key leak correctly under time pressure.

What we learned

How to design a prompt that reliably returns structured, parseable JSON output, why separating concerns (parsing vs. AI logic vs. routing) makes debugging dramatically easier, how to read a Python traceback to find the actual root cause, and how to respond properly to an accidental secret leak in git.

What's next for Redline

  • Support pasting resume text directly, not just file upload
  • Cache reviews to avoid re-billing the API on repeat uploads
  • A "compare two resume versions" mode to track improvement over time ## How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for AI RESUME REVIEWER

Built With

Share this project:

Updates

Submission history