Inspiration

As a new grad student applying to US summer internships, I kept hitting the same wall: every job description is different, applicant tracking systems (ATS) filter on keywords, and I never knew whether my resume actually fit a role or how to fix it. Career centers are booked for weeks. I wanted a recruiter in my pocket that gives honest, specific feedback in under a minute.

What it does

Upload your resume as a PDF and paste any job description. ResumeMatch Coach then:

  • Scores your fit (0–100) with a strict, recruiter-style verdict and summary
  • Finds ATS keywords: the ones your resume already shows, and the important ones it's missing
  • Lists strengths and gaps, with concrete, honest ways to address each gap
  • Rewrites your resume bullets for that specific job (before → after) without ever inventing experience, tools or numbers
  • Prepares you for interviews: 5 likely questions, why they're asked, and how you should answer using items from your own resume
  • "Ask the Recruiter" chat for follow-ups like "How do I explain this gap?" or "Write my cover letter opening," with your resume and the job description in context
  • Downloadable report of the full analysis ## How we built it
  • Gemini 3.8 Flash through the Google GenAI Python SDK
  • Native PDF understanding: the resume PDF goes straight to Gemini, with no text-extraction step, so layout and formatting are preserved
  • Structured output: a Pydantic schema (fit score, keywords, gaps, rewritten bullets, interview questions) enforced with Gemini's JSON response schema, so every result renders reliably in the UI
  • Prompt design: a senior-recruiter system prompt with strict honesty rules (no inflated scores, no fabricated experience)
  • Resilience: automatic retry with backoff, plus fallback across Gemini models when one is overloaded or retired
  • Gradio web app (report, bullets, interview prep and chat tabs) running on Google Colab, shared through a public link

Challenges we ran into

  • Model availability: our first model choice had been retired for new API users (404), and under hackathon load the newest model often returned "high demand" errors (503). We built a fallback chain that retries, then switches models automatically, so the app keeps working.
  • No local setup: we were on a loaner laptop with no Python, so we built and ran everything in Google Colab.
  • Honesty vs. helpfulness: LLMs love to "improve" a resume by sneaking in skills the candidate never had. We wrote strict no-fabrication rules into the prompt and added a "keywords added" field to every rewrite so users can verify each change. It's not perfect yet: in testing, one rewrite added "SQL" to a bullet that didn't mention it, so the app is a coach, and the user stays the final editor. ## Accomplishments that we're proud of
  • A working end-to-end app built within the hackathon
  • Feedback that is specific to the person: it cites real resume items instead of generic advice
  • Reliable, structured results thanks to schema-enforced JSON output
  • Tested on my own resume against a Data Science internship job description: scored 74/100 ("Good fit"), found 8 missing keywords (pandas, scikit-learn, PyTorch, dashboards, GCP, AWS, A/B testing, LLM), rewrote 5 bullets in the job's language, and generated 5 interview questions tied to my real projects, including a sharp one asking whether my 99.32% accuracy could be data leakage ## What we learned
  • How to combine Gemini's multimodal PDF input with structured output
  • Prompt engineering for honesty constraints
  • Building for real-world API limits: rate limits, overloads and model deprecations

What's next for ResumeMatch Coach

  • Batch mode: rank one resume against 10 job postings
  • Auto-generate a tailored resume PDF and cover letter
  • Track applications and the keywords each one needed
  • A Chrome extension that analyzes a job posting while you browse

Built With

Share this project:

Updates

Submission history