Inspiration

The job market is more competitive than ever, and highly qualified candidates often get rejected simply because their resumes aren't optimized for Applicant Tracking Systems (ATS). Students and early-career professionals, in particular, struggle to identify exactly why they aren't getting interviews. We wanted to build a tool that demystifies this process—bridging the gap between a candidate's current resume and their dream job by providing instant, AI-powered feedback that is usually reserved for expensive career coaches.

What it does

ResumeGap AI is a privacy-first, intelligent resume analyzer.

  1. Universal Upload: Users can upload resumes in PDF or image (PNG/JPG) formats.
  2. Privacy-First OCR: We use client-side Optical Character Recognition (Tesseract.js) to extract text directly in the browser, ensuring user data isn't unnecessarily stored on our servers.
  3. Gemini-Powered Analysis: The text is analyzed by Google's Gemini 2.5 Flash model to evaluate:
    • ATS Compatibility: How well a machine can read the resume.
    • Content Quality: Impact, clarity, and formatting.
    • Skill Gaps: Missing technical or soft skills based on industry standards.
  4. Instant Feedback: Users receive a detailed report with scores (0-100) and prioritized, actionable suggestions for improvement.

How we built it

  • Frontend: Built with Next.js 14 (App Router) and TypeScript for performance and type safety.
  • UI/UX: Designed with Tailwind CSS and shadcn/ui components for a premium, accessible, and responsive interface with dark mode support.
  • AI Engine: Integrated Google Gemini API (Gemini 2.5 Flash) for its superior context window and reasoning capabilities to analyze resumes.
  • Text Processing: Implemented Tesseract.js and PDF.js to handle complex resume layouts and extract text from flat images.
  • Deployment: Hosted on Vercel with automatic CI/CD pipelines.

Challenges we ran into

  • PDF Parsing Complexity: Resumes come in infinite formats (double columns, graphics, terrible layouts). Standard parsers often failed, so we implemented a hybrid approach using OCR for image-based PDFs to ensure we capture every word.
  • Hydration Errors: We faced tricky React hydration mismatches due to browser extensions injecting code into the DOM, which we resolved by optimizing our layout rendering strategy.
  • Prompt Engineering: getting the AI to give structured JSON output consistently while providing human-like advice took several iterations of prompt tuning.

Accomplishments that we're proud of

  • Successfully adhering to a Privacy-First architecture where files are processed in memory and not permanently stored.
  • Achieving a beautiful, professional UI that feels like a premium SaaS product.
  • The speed of analysis—Gemini 2.5 Flash is incredibly fast, returning comprehensive reports in seconds.
  • Fixing a major roadblock with API authentication and successfully migrating to the latest Gemini models during the hackathon.

What we learned

  • The importance of Edge Computing and handling heavy processing (like OCR) on the client side to reduce server costs and improve privacy.
  • How to effectively structure prompts for Large Language Models to get consistent, machine-readable data outputs.
  • Advanced debugging techniques for Next.js hydration and server-side rendering issues.

What's next for ResumeGap AI

  • LinkedIn Integration: Auto-import profiles for analysis.
  • Direct PDF Editing: AI agents that not only suggest changes but rewrite the resume lines for you in real-time.
  • Specific Job Matching: Upload a specific job description to see exactly how well you match that specific role.

Built With

Share this project:

Updates