Skip to content

Imran-2020331101/evalia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

398 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Evalia - Automated Hiring Solution

Evalia Logo

Intelligent Resume Analysis & Job Matching Platform

License: MIT Node.js React TypeScript Spring Boot

πŸš€ Overview

Evalia is a comprehensive 3-tier AI-powered platform that revolutionizes resume analysis and job matching. It combines advanced AI technologies with modern web development to provide intelligent insights, personalized career recommendations, and seamless job matching experiences.

✨ Key Features

  • πŸ€– AI-Powered Resume Analysis - Advanced parsing and skill extraction using OpenAI
  • 🎯 Intelligent Job Matching - Vector-based similarity search with industry-specific namespacing
  • πŸ“Š Career Insights - Personalized recommendations and skill gap analysis
  • πŸ”” Real-time Notifications - WebSocket-based notification system with persistent storage
  • πŸ‘₯ Multi-Role Support - Separate interfaces for job seekers and recruiters
  • πŸ—£οΈ Voice Integration - AI-powered voice interactions using Vapi
  • πŸ“ˆ Analytics Dashboard - Comprehensive analytics with Material-UI charts
  • πŸ”’ Secure Authentication - JWT-based authentication with OTP verification

πŸ—οΈ Architecture

Evalia follows a microservices architecture with clear separation of concerns:

Architecture Diagram of Evalia App

πŸ—„οΈ Data Flow

Resume Processing Pipeline

  1. Upload β†’ PDF uploaded to Cloudinary
  2. Parsing β†’ AI extracts structured data
  3. Storage β†’ MongoDB stores resume data
  4. Vectorization β†’ Pinecone stores embeddings by industry
  5. Analysis β†’ OpenAI provides insights and recommendations

Resume Processing Pipeline

Vector Database Partition

To store the vector values of the Resume we used Qdrant. For better searching efficiency we separated the table by industry. This virtual separation is done by storing industry metadata in each point.

Segmentation details of the vector database

Interview Flow

  1. join -> User joins the interview using the link
  2. Interview Agent: Monke β†’ Our interview agent
  3. Aggregation β†’ Results grouped by candidate
  4. Ranking β†’ Scored by relevance and skills match
  5. Presentation β†’ Formatted results with recommendations

Interview Process

### Video Processing Pipeline

Anti-cheating video pipeline architecture

Job Matching Flow

  1. Query β†’ User searches for opportunities
  2. Vector Search β†’ Pinecone finds similar profiles
  3. Aggregation β†’ Results grouped by candidate
  4. Ranking β†’ Scored by relevance and skills match
  5. Presentation β†’ Formatted results with recommendations

Notification System

  1. Event Trigger β†’ Microservice publishes event
  2. Processing β†’ Notification service handles event
  3. Persistence β†’ MongoDB stores notification
  4. Delivery β†’ WebSocket pushes to frontend
  5. Display β†’ Redux store updates UI

Notification Strategy

  • Persistent Notifications: Important events requiring user attention
  • Toast Notifications: Immediate feedback (using React Toastify)
  • Real-time Updates: WebSocket for live notifications

Logging

  • Winston: Structured logging across Node.js services
  • Console Logs: Vector search debugging
  • Error Handling: Specific status codes with graceful degradation within global error handling

πŸ”§ Technology Stack

Technology Stack of Evalia App

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • Java 17+
  • MongoDB
  • Maven

Environment Variables

Create .env files in each service directory and add application.json file in the auth-gateway server. follow the .env.example files for details.

Auth Server (application.properties)

server.port=8080
spring.mail.host=smtp.gmail.com
spring.mail.username=your_email
spring.mail.password=your_app_password

Installation & Setup

  1. Clone the repository
git clone https://github.com/Imran-2020331101/evalia.git
cd evalia
  1. Install dependencies for all services
cd {server-name} && npm install

# Auth Gateway (Maven)
cd ../server/auth-gateway && ./mvnw clean install
  1. Start all services in separate terminals

In each terminl run:

cd {server-name} && npm run dev

Auth Gateway

cd server/auth-gateway && ./mvnw spring-boot:run

For detailed installation guide check individual readme

πŸ“‹ API Documentation

Resume Service (Port 5000)

GET    /health                        # Health check
POST   /api/resume/upload             # Upload resume PDF
GET    /api/resume/:id                # Get resume by ID
POST   /api/resume/basic-search       # Search resumes
GET    /api/courses                   # Get skill development courses

Job Service (Port 7000)

GET    /api/jobs                      # Get all jobs
POST   /api/jobs                      # Create new job
GET    /api/jobs/:jobId               # Get job by ID
POST   /api/jobs/generate/interview-questions  # Generate interview questions
POST   /api/jobs/:jobId/shortlist     # Shortlist candidates
GET    /api/jobs/organization/:id     # Get jobs by organization

Interview Engine (Port 5000)

POST   /api/interviews/schedule       # Schedule interview
PUT    /api/interviews/:id/transcript # Update interview transcript
WebSocket: Real-time video processing # Video analysis

Auth Gateway (Port 8080)

POST   /api/auth/register             # User registration
POST   /api/auth/login                # User login
POST   /api/auth/verify-otp           # OTP verification
POST   /api/auth/resend-otp           # Resend OTP
GET    /api/auth/profile              # Get user profile

Notification Service (Port 6000)

GET    /api/notifications             # Get user notifications
POST   /api/notifications             # Create notification
WebSocket: /socket.io (Port 6001)     # Real-time notifications

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Team

  • Azwoad - Frontend Developer
  • Imran - Backend Developer

Acknowledgments

  • OpenAI for GPT models
  • Qdrant for vector database
  • Cloudinary for file storage
  • Material-UI for component library

Made with ❀️ by the Evalia Team

⭐ Star us on GitHub | πŸ“§ Contact Support

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages