Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Resume Matcher / RAG System

Overview

AI Resume Matcher is a Spring Boot + Spring AI application that uses Retrieval-Augmented Generation (RAG) concepts to rank resumes against a job description. It parses PDF resumes, chunks content intelligently, generates embeddings, stores vectors in ChromaDB, and returns the best matching candidates with scores and reasoning.

Features

  • Upload PDF resumes
  • Extract text using Apache PDFBox
  • Smart section-based chunking (Summary, Skills, Experience, Projects, Education)
  • Local embeddings for semantic search
  • ChromaDB vector storage
  • Multi-resume ranking engine
  • Match score (0-100)
  • Matched skills detection
  • Relevant excerpts from resumes
  • Human-readable reasoning

Tech Stack

  • Java 21
  • Spring Boot 3.x
  • Spring AI
  • ChromaDB (Docker)
  • Apache PDFBox
  • Maven

Architecture

  1. Upload Resume PDF
  2. Extract Text
  3. Chunk Resume into sections
  4. Generate Embeddings
  5. Store in ChromaDB
  6. Accept Job Description
  7. Semantic Search + Ranking
  8. Return Top Matches

API Endpoints

1. Upload & Embed Resume

POST /api/resume/embed

  • Content-Type: multipart/form-data
  • Field: file

Response:

Stored 7 chunks for John Anderson

2. Search Resume Chunks

GET /api/resume/search?query=java spring boot

3. Match Job Description

POST /api/job/multi-match

{
  "jobDescription": "Need Java developer with Spring Boot, SQL and REST API experience"
}

Sample Response:

{
  "jobDescription": "Need Java developer with Spring Boot, SQL and REST API experience",
  "topMatches": [
    {
      "candidateName": "John Anderson",
      "resumePath": "resumes/John_Anderson_Resume.pdf",
      "matchScore": 92,
      "matchedSkills": ["Java", "Spring Boot", "SQL"],
      "relevantExcerpts": ["Built scalable microservices..."],
      "reasoning": "Strong match based on semantic relevance and matched skills."
    }
  ]
}

Local Setup

Prerequisites

  • Java 21+
  • Maven
  • Docker

Start ChromaDB

docker run -d --name chroma -p 8000:8000 chromadb/chroma

Learning Outcomes

  • Document chunking and embeddings
  • Vector databases
  • Semantic search
  • AI-powered ranking systems
  • Spring AI integration

Future Improvements

  • Must-have filters (5+ years Java)
  • Better scoring formula
  • File-system batch loader
  • Metrics dashboard
  • Frontend UI
  • Authentication & role-based access

About

AI Resume Matcher is a Spring Boot + Spring AI application that uses Retrieval-Augmented Generation (RAG) concepts to rank resumes against a job description. It parses PDF resumes, chunks content intelligently, generates embeddings, stores vectors in ChromaDB, and returns the best matching candidates with scores and reasoning.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages