This project is an AI-powered CV and project case study report evaluator. It compares candidate submissions against scoring rubrics using Retrieval-Augmented Generation (RAG) techniques. The system leverages LLM to automate and enhance the evaluation process for recruitment or assessment scenarios.
- NestJS: Backend framework
- ChromaDB: Vector database for document retrieval
- PostgreSQL: Relational database for persistent storage
- Redis: Queue management for asynchronous tasks
- Gemini 2.5 Flash Lite: Google Gemini model for AI evaluation
$ npm install# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod- Copy
.env.exampleto.envand fill in your Gemini API key:
cp .env.example .env
# Edit .env and set GEMINI_API_KEY=<your-gemini-api-key>- Start the application using Docker Compose:
docker compose up --buildThe app will be available at http://localhost:3000
Upload internal documents (job description, case study, scoring rubric). Form fields:
job_description: PDF filecase_study: PDF filescoring_rubric: PDF file Returns: Document IDs for uploaded files.
Upload candidate documents (CV and project report). Form fields:
cv: PDF fileproject_report: PDF file Returns: Document IDs for uploaded files.
Evaluate a candidate using uploaded document IDs and other data. Body: JSON with evaluation request data. Returns: Evaluation result.
Get the result of a specific evaluation by ID. Returns: Evaluation result data.
# unit tests
$ npm run test
# test coverage
$ npm run test:cov