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.
- Universal Upload: Users can upload resumes in PDF or image (PNG/JPG) formats.
- 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.
- 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.
- 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
- gemini
- nextjs
- node.js
- react
- tailwindcss
- tesseract.js
- typescript
- vercel


Log in or sign up for Devpost to join the conversation.