Inspiration

Many qualified candidates get rejected before a human ever sees their resume - not because they lack skills, but because their resume doesn’t align with how Applicant Tracking Systems (ATS) parse job descriptions. This problem is invisible and frustrating: applicants rarely know what went wrong.

SkillSync was inspired by this gap. We wanted to build a tool that makes ATS behaviour transparent, helping users understand exactly which technical skills are missing and how they can improve their resume instead of guessing.

What it does

SkillSync analyses a resume against a job description from an ATS perspective. It: . Uses Gemini 3 to extract only technical skills from a job description . Compares those skills with the uploaded resume . Calculates an ATS-style match score . Clearly shows matched vs missing keywords . Generates AI-powered, actionable suggestions to improve the resume The focus is not just scoring, but guiding users on how to fix gaps.

How we built it

SkillSync is built with a clean, modular architecture:

Backend :

. FastAPI for a lightweight, high-performance API . Google Gemini 3 API (gemini-3-flash-preview) for: . Technical keyword extraction . Resume improvement suggestions . Deterministic Python logic for keyword matching to ensure reliability and explainability

Frontend :

. HTML, CSS, JavaScript . PDF.js for extracting resume text from PDFs . Chart.js for visualizing match scores and keyword distribution

Workflow

. User uploads a resume . User pastes a job description . Gemini 3 extracts technical skills . Backend compares resume and JD . Results and suggestions are displayed instantly

Challenges we ran into

Filtering non-technical words from job descriptions :

Job descriptions contain a lot of filler text. Prompt design had to be carefully tuned so Gemini extracted only meaningful technical skills.

Ensuring consistent AI output :

We enforced strict JSON-only responses from Gemini to avoid breaking the frontend.

Model and API changes :

Earlier models caused compatibility issues. Migrating to Gemini 3 Flash ensured stability, speed, and compliance with hackathon requirements.

Frontend–backend synchronization :

Making sure AI responses were displayed clearly and correctly required careful debugging.

Accomplishments that we're proud of :

. Successfully built a working end-to-end AI application . Integrated the latest Gemini 3 API in a meaningful way . Created a tool that solves a real, practical hiring problem . Delivered clear, explainable AI output instead of black-box results . Built a product that is both resume-worthy and hackathon-ready

What we learned :

. AI works best when combined with clear constraints and deterministic logic . Prompt engineering is crucial for production-quality AI systems . Clear UX is essential when presenting AI-generated insights . Stability and model selection matter as much as raw capability . Real-world AI projects require careful error handling and validation

What's next for SkillSync :

. Section-wise resume suggestions (Skills, Projects, Experience) . Semantic matching using embeddings instead of exact keyword matching . Multi-role comparison for a single resume . Hosted public version with user accounts . Downloadable resume improvement checklist SkillSync can grow into a full AI-powered career optimization platform.

Built With

Share this project:

Updates