Skip to content

abimnyud/nest-ai-cv-evaluator

Repository files navigation

Description

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.

Tech Stack

  • 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

Project setup

$ npm install

Compile and run the project

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Running with Docker Compose

  1. Copy .env.example to .env and fill in your Gemini API key:
cp .env.example .env
# Edit .env and set GEMINI_API_KEY=<your-gemini-api-key>
  1. Start the application using Docker Compose:
docker compose up --build

The app will be available at http://localhost:3000

API Endpoints

1. POST /upload/internal-documents

Upload internal documents (job description, case study, scoring rubric). Form fields:

  • job_description: PDF file
  • case_study: PDF file
  • scoring_rubric: PDF file Returns: Document IDs for uploaded files.

2. POST /upload

Upload candidate documents (CV and project report). Form fields:

  • cv: PDF file
  • project_report: PDF file Returns: Document IDs for uploaded files.

3. POST /evaluation/evaluate

Evaluate a candidate using uploaded document IDs and other data. Body: JSON with evaluation request data. Returns: Evaluation result.

5. GET /evaluation/result/:id

Get the result of a specific evaluation by ID. Returns: Evaluation result data.

Run tests

# unit tests
$ npm run test

# test coverage
$ npm run test:cov

About

NestJS LLM CV and Case Study Project Evaluator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published