A production-ready backend application built with Spring Boot, Spring AI, VectorStore, and Apache Tika. This project provides APIs for:
- Resume text extraction
- AI-based resume analysis
- ATS score calculation
- RAG-powered PDF-based chatbot
- General AI chat interface
The system integrates AI with traditional backend engineering to create a powerful resume evaluation and document-aware chatbot.
- Extracts resume text using Apache Tika
- Identifies key skills, improvements, and ratings
- Returns clean, structured JSON responses
- Compares uploaded resume with provided job description
- Generates an ATS score (0–100)
- Lists matched & missing keywords
- Provides a short summary for improvement
- Uses SimpleVectorStore to store embeddings
- Answers questions strictly from PDF content
- Uses
QuestionAnswerAdvisor+ semantic search
- Pure LLM responses using Spring AI
- Stateless, fast, and simple
- Java 21
- Spring Boot 3.5+
- Spring AI (ChatClient, Embeddings, Vector Store, Advisors)
- Apache Tika (Document parsing)
- SimpleVectorStore (JSON-based vector DB)
- Spring Security (optional)
- REST APIs
- Postman (API testing)
src/main/java/com/.../controller
└── ChatController.java
src/main/java/com/.../config
├── ChatConfig.java
├── WebConfig.java
src/main/java/com/.../advisor
└── LoggingAdvisor.java
src/main/resources
├── input-data/ # PDF files for RAG
└── output-data/ # vectorstore.json
GET /api/health
POST /api/chat
{
"message": "Hello"
}
GET /api/ask?question=What+is+Spring+AI
POST /api/rag/chat
{
"message": "What is mentioned about microservices in the PDF?"
}
POST /api/analyze
Content-Type: multipart/form-data
file = <resume.pdf>
POST /api/ats-check
Content-Type: multipart/form-data
file = <resume.pdf>
jd = "Your Job Description..."
The application automatically:
- Reads PDFs from
src/main/resources/input-data/ - Extracts text using Tika
- Splits into chunks using
TokenTextSplitter - Generates embeddings
- Saves vector DB as
vectorstore.json
This ensures fast, accurate document-based QA.
Each endpoint supports manual testing through Postman:
- Use form-data for file uploads
- Use raw JSON for chat endpoints
- Verify vector store by calling RAG endpoint
git clone <repo-url>
cd project-folder
Add your OpenAI / API provider keys.
mvn spring-boot:run
This backend demonstrates:
- AI + backend integration
- RAG architecture in production
- PDF processing & embeddings
- API design & error handling
- Vector databases in Spring Boot
Perfect for showcasing backend + AI skills on your resume.
Chandan Dhabele Java Backend Developer | Spring Boot | Microservices | AI Integrations