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.
- 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
- Java 21
- Spring Boot 3.x
- Spring AI
- ChromaDB (Docker)
- Apache PDFBox
- Maven
- Upload Resume PDF
- Extract Text
- Chunk Resume into sections
- Generate Embeddings
- Store in ChromaDB
- Accept Job Description
- Semantic Search + Ranking
- Return Top Matches
POST /api/resume/embed
- Content-Type: multipart/form-data
- Field:
file
Response:
Stored 7 chunks for John AndersonGET /api/resume/search?query=java spring boot
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."
}
]
}- Java 21+
- Maven
- Docker
docker run -d --name chroma -p 8000:8000 chromadb/chroma- Document chunking and embeddings
- Vector databases
- Semantic search
- AI-powered ranking systems
- Spring AI integration
- Must-have filters (5+ years Java)
- Better scoring formula
- File-system batch loader
- Metrics dashboard
- Frontend UI
- Authentication & role-based access