Skip to content

FaithEX1331/AI-Resume-Screening-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– AI Resume Screener

Intelligent resume screening powered by keyword & skill matching

Live Demo Backend License

Next.js Spring Boot MongoDB Java


πŸ“Έ Overview

AI Resume Screener is a full-stack web application that helps recruiters efficiently screen and rank candidates by automatically analyzing resumes against job descriptions. Resumes are scored using a multi-factor AI matching algorithm, and candidates are notified via automated email at each stage of the process.


✨ Features

Feature Description
🧠 AI Resume Matching Multi-factor scoring: skills (50pts), keywords (30pts), depth (10pts), experience (±10pts)
πŸ“€ Bulk Resume Upload Upload multiple PDFs at once with real-time progress tracking
πŸ“§ Email Notifications Automated HTML emails on submission, approval, and rejection via Brevo SMTP
πŸ”’ JWT Authentication Secure recruiter login with BCrypt passwords and Bearer token authorization
πŸ“„ Resume Text Preview In-app scrollable preview dialog with download option
πŸ“‹ Pagination & Filtering 10 results/page with ellipsis navigation, resets on filter change

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js (React 19)
  • Styling: Tailwind CSS
  • HTTP Client: Axios
  • Deployment: Vercel

Backend

  • Framework: Spring Boot 3.5 (Java 21)
  • Database: MongoDB Atlas
  • PDF Parsing: Apache PDFBox
  • Email: Brevo SMTP
  • Security: Spring Security + JWT
  • Deployment: Railway

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Next.js Frontend  β”‚  HTTP   β”‚  Spring Boot Backend  β”‚  ODM    β”‚  MongoDB Atlas  β”‚
β”‚      (Vercel)       β”‚ ──────► β”‚      (Railway)        β”‚ ──────► β”‚  resume_matcher β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                          β”‚
                                          β”‚ SMTP
                                          β–Ό
                                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                 β”‚  Brevo Email   β”‚
                                 β”‚    Service     β”‚
                                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Getting Started

Prerequisites

  • Java 17+
  • Node.js 18+
  • MongoDB (local or Atlas)
  • Maven

1. Clone the repository

git clone https://github.com/FaithEX1331/AI-Resume-Screening-App.git
cd AI-Resume-Screening-App

2. Backend Setup

cd backend

Create a .env or set the following environment variables:

MONGODB_URI=mongodb://localhost:27017/resume_matcher
MONGODB_DATABASE=resume_matcher
JWT_SECRET=your_jwt_secret_here
JWT_EXPIRATION_MS=86400000
MAIL_API_KEY=your_brevo_smtp_key
CORS_ORIGIN=http://localhost:3000
UPLOAD_DIR=uploads
RECRUITER_NAME=HR Team

Run the backend:

./mvnw spring-boot:run

3. Frontend Setup

cd ai-resume-screener

Create a .env.local file:

NEXT_PUBLIC_API_URL=http://localhost:8080/api

Run the frontend:

npm install
npm run dev

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


πŸ“ Project Structure

AI-Resume-Screening-App/
β”œβ”€β”€ ai-resume-screener/          # Next.js Frontend
β”‚   └── src/
β”‚       β”œβ”€β”€ pages/
β”‚       β”‚   β”œβ”€β”€ ApplicantPage.jsx
β”‚       β”‚   └── DashboardPage.jsx
β”‚       └── services/
β”‚           └── apiClient.js
β”‚
└── backend/                     # Spring Boot Backend
    └── src/main/java/com/ai/screener/backend/
        β”œβ”€β”€ service/
        β”‚   β”œβ”€β”€ MatchingService.java
        β”‚   β”œβ”€β”€ EmailService.java
        β”‚   └── AuthService.java
        β”œβ”€β”€ security/
        β”‚   β”œβ”€β”€ JwtUtil.java
        β”‚   β”œβ”€β”€ JwtFilter.java
        β”‚   └── SecurityConfig.java
        └── resources/
            └── application.yaml

🌐 Deployment

Service Platform URL
Frontend Vercel https://ai-resume-screening-app-orpin.vercel.app
Backend Railway https://ai-resume-screening-app-production.up.railway.app
Database MongoDB Atlas Cluster: resume-screener

πŸ“¬ API Endpoints

Method Endpoint Description
POST /api/auth/login Recruiter login
POST /api/resumes/upload Upload single resume
POST /api/resumes/bulk-upload Upload multiple resumes
GET /api/resumes Get all resumes (paginated)
PUT /api/resumes/:id/status Update resume status
DELETE /api/resumes/:id Delete a resume

🀝 Contributing

Contributions are welcome! Please open an issue first to discuss what you'd like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

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


Made with ❀️ by FaithEX1331

About

AI-powered recruitment platform for resume screening, candidate scoring, and hiring automation built with Next.js, Spring Boot & MongoDB.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors