DEV Community

Data Hub
Data Hub

Posted on

Show DEV: I Built an Open-Source AI Resume ATS Scanner Using FastAPI, Next.js & NLP

Hi everyone 👋

I'd like to share a project I've been building over the past few months.

AI Resume ATS Scanner & Optimizer

🔗 Live Demo:
https://ai-resume-ats-scanner.vercel.app/

🔗 GitHub:
https://github.com/dataassemblehub-cpu/resume_ats_scanner

The goal wasn't to build another resume keyword checker.

I wanted to build something closer to how modern ATS systems evaluate resumes.


Tech Stack

Frontend

  • Next.js (App Router)
  • TypeScript
  • Tailwind CSS
  • next-themes

Backend

  • FastAPI
  • Python
  • PostgreSQL
  • Supabase
  • Pydantic

AI / NLP

  • TF-IDF
  • Semantic Similarity
  • Google Gemini
  • Resume Parsing

Features

✅ Resume Upload (PDF & DOCX)

✅ Job Description Parsing

✅ Keyword Extraction

✅ Semantic Matching

✅ ATS Score (0–100)

✅ Formatting Analysis

✅ AI Resume Suggestions

✅ Scan History

✅ Authentication

✅ Export Support

✅ SEO-ready Marketing Pages


Interesting Engineering Challenges

Building a Hybrid Scoring Engine

Instead of relying solely on keyword frequency, the score combines:

  • Keyword coverage
  • Semantic similarity
  • Formatting quality
  • Resume completeness

This produced significantly more meaningful results than a traditional keyword checker.


Resume Parsing

Extracting structured data from real-world resumes was surprisingly difficult.

No two resumes are formatted the same way.

The parser had to handle:

  • PDFs
  • Word documents
  • Missing section headers
  • Different education formats
  • Multiple layouts

Production Improvements

The project now includes:

  • Route-group architecture
  • Dynamic sitemap
  • JSON-LD
  • Open Graph metadata
  • Secure authentication
  • Row Level Security
  • Backend rate limiting
  • Contact workflow
  • Scan history
  • Responsive dashboard

Repository

I'd love feedback on:

  • Architecture
  • Code quality
  • ATS scoring approach
  • Feature ideas
  • UI/UX improvements

Issues and pull requests are always welcome.

GitHub:
https://github.com/dataassemblehub-cpu/resume_ats_scanner

Live Demo:
https://ai-resume-ats-scanner.vercel.app/

If you're building AI products, FastAPI projects, or Next.js applications, I'd be happy to discuss implementation details in the comments.

Thanks for checking it out!

Top comments (0)