Resume Analyzer

A project by Vishwas Singh and Kamal Sahani

Beat the bots and protect your privacy. Resume Analyzer is an intelligent tool that instantly scores your resume against any job description, highlighting missing skills while automatically masking your personal data, ensuring you put your best—and safest—foot forward.

Inspiration

The inspiration for Resume Analyzer came to us, Vishwas Singh and Kamal Sahani, from a shared and deeply frustrating experience: sending a carefully crafted resume into the digital void, only to hear nothing back.
We discovered that the culprit was often the Applicant Tracking System (ATS), which rejects over 75% of resumes before they ever reach a human.
At the same time, we were concerned about the privacy implications of uploading personal data to countless online portals.

We wanted to build a tool that solves both problems, empowering candidates to get noticed while protecting their sensitive information.

What it does

Resume Analyzer is a web platform that gives job seekers an instant advantage. Here's what it does:

  • A user uploads their resume and pastes in a job description they're targeting.
  • In real-time, the application provides an ATS match score, showing how well the resume aligns with the role.
  • It generates a list of missing keywords and skills, giving the user a clear checklist of what to add.
  • For security, it automatically finds and masks private information like phone numbers and email addresses, making the resume safe to share.
  • All of this is presented in a clean, interactive dashboard for immediate feedback.

How we built it

We built Resume Analyzer using a modern, full-stack architecture designed for speed and intelligence.

  • Frontend: Next.js (React) for a fast, responsive, and interactive user interface.
  • Backend: FastAPI (Python) manages logic and data flow efficiently.
  • AI Core: GPT OSS 20B — our backend securely sends the anonymized resume and job description to GPT OSS 20B with a carefully engineered prompt, asking it to perform a detailed analysis.

The core matching logic is based on calculating the semantic similarity between the resume vector (Vr) and the job description vector (Vj).
The ATS score is calculated using Cosine Similarity:

Score = f( (Vr ⋅ Vj) / (||Vr|| ||Vj||) )

Challenges we ran into

  • Handling the huge variety of resume formats. Resumes are unstructured, so building a reliable text parser was difficult.
  • Perfecting the privacy feature. Many iterations of complex Regex were required to accurately mask sensitive information without removing important content.

Accomplishments that we're proud of

  • Full-Stack AI Integration: Successfully built a complete, end-to-end application that integrates a powerful LLM. Managed the entire data flow—from frontend to backend—to deliver real-time, AI-driven insights.
  • Privacy-by-Design: Implemented privacy-masking as a core feature, proving our commitment to user trust.
  • Polished MVP: Created a functional Minimum Viable Product (MVP) that solves a tangible, real-world problem for job seekers, all within the hackathon's timeframe.

What we learned

  • How to effectively engineer prompts for an LLM to get reliable, structured output.
  • Deepened our understanding of frontend and backend working in harmony.
  • Thought like product developers, focusing on building a tool that is not only powerful but also intuitive and trustworthy.

What's next for Resume Analyzer

We have a clear vision for the future. Our next steps include:

  • Integrating with job boards like LinkedIn to automatically pull job descriptions.
  • Providing industry-specific resume templates.
  • Developing a feature to help users automatically rephrase their experience bullet points for maximum impact.

Built With

Share this project:

Updates