Skip to content

fedimriri/TalentAI

Repository files navigation

TalentAI

TalentAI β€” AI-Powered Recruitment & ATS Platform

An intelligent recruitment platform combining Resume Parsing, ATS Scoring, and AI Matching β€” built for modern hiring workflows.

.NET 10 MongoDB Docker AI Powered MIT License


πŸ‘¨β€πŸ’» Author

Fadi Mriri β€” Cloud & DevOps Engineer

πŸ“ Tunis, Tunisia πŸ“§ fmriri2@gmail.com

LinkedIn GitHub Portfolio


πŸš€ Overview

TalentAI is an end-to-end AI-powered recruitment platform designed to automate and enhance the hiring pipeline:

  • Parse resumes into structured candidate profiles (skills, experience, education)
  • Analyze job descriptions to extract requirements automatically
  • Score candidates with an ATS engine across multiple dimensions
  • Match candidates to jobs using AI-driven semantic analysis
  • Streamline HR workflows with role-based dashboards and email notifications

✨ Features

🎯 Candidate Side

  • Resume Upload & Parsing (PDF / DOCX)
  • ATS Score Simulation
  • Resume Editing & Profile Management
  • Job Application Tracking

πŸ“‹ HR Side

  • Job Posting & Management
  • Candidate Ranking (ATS + AI Score)
  • Application Status Management (Approve / Reject / Shortlist)
  • Secure Resume Viewing
  • Filtering by Skills, Score & Experience

🧠 AI & Core Engine

Phase Module Description
3.1 Resume Parser Extracts skills, experience ranges, education from raw documents
3.2 Job Description Analyzer Identifies required skills, experience years, qualifications
3.3 Matching Algorithm Multi-dimensional scoring across skills, experience, education
3.4 ATS Scoring Weighted composite score with detailed breakdown
3.5 AI Semantic Matching Groq API (LLaMA) for intelligent context-aware matching

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        ASP.NET Core MVC                         β”‚
β”‚                     (Controllers + Views)                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Auth       β”‚  Admin        β”‚  HR           β”‚  Candidate        β”‚
β”‚  Controller β”‚  Controller   β”‚  Controller   β”‚  Controller       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                        Services Layer                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Resume   β”‚ Job      β”‚ ATS      β”‚ Matching β”‚ Email               β”‚
β”‚ Parser   β”‚ Parser   β”‚ Scoring  β”‚ Service  β”‚ Service             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                     AI Integration (Groq API)                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                MongoDB (NoSQL Data Layer)                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

Category Technology
Backend ASP.NET Core MVC (.NET 10)
Database MongoDB
AI Groq API (LLaMA models)
PDF Parsing PdfPig
DOCX Parsing OpenXML SDK
Email Gmail SMTP via MailKit
Containerization Docker & Docker Compose
DevOps CI/CD Ready, Multi-stage Docker Build

πŸ“Έ Screenshots

πŸ” Login Page
Login Page
πŸ›‘οΈ Admin Dashboard
Admin Dashboard
πŸ“‹ HR Dashboard β€” Jobs Feed
HR Dashboard
πŸ“ Create Job Listing
Add Job Page

βš™οΈ Installation

Prerequisites

  • .NET 10 SDK
  • MongoDB (local or containerized)
  • Docker (optional)

Run Locally

# Clone the repository
git clone https://github.com/fedimriri/TalentAI.git
cd TalentAI

# Restore dependencies
dotnet restore

# Run the application
dotnet run

App available at: http://localhost:5000


🐳 Run with Docker

# Build the image
docker build -t talentai .

# Run the container
docker run -p 5000:5000 talentai

Using Docker Compose (connects to external MongoDB):

docker compose up --build

Note: If your MongoDB runs in a separate compose project, TalentAI automatically joins the external mongo_default network to connect.


πŸ” Default Admin

On first startup, the app auto-seeds an admin account:

Field Value
Email admin@talentai.com
Password admin123
Role Admin

⚠️ Change these credentials in production.


βš™οΈ Configuration

All settings are in appsettings.json:

Section Purpose Key Values
MongoSettings Database connection ConnectionString, DatabaseName
AISettings AI integration GroqApiKey
EmailSettings SMTP notifications Host, Port, Username, Password, FromEmail

SMTP (Gmail)

The app sends branded HTML emails for:

  • HR account creation (purple theme)
  • Application approved (green theme)
  • Application rejected (red theme)
  • Application under review (blue theme)

πŸ“ Project Structure

TalentAI/
β”œβ”€β”€ Configurations/       # Settings: Mongo, Email, AI
β”œβ”€β”€ Controllers/          # MVC: Auth, Admin, HR, Candidate
β”œβ”€β”€ Data/                 # MongoDbContext
β”œβ”€β”€ DTOs/                 # Data Transfer Objects
β”œβ”€β”€ Models/               # User, Job, JobApplication
β”œβ”€β”€ Services/             # Core Business Logic
β”‚   β”œβ”€β”€ ResumeParserService.cs
β”‚   β”œβ”€β”€ JobParserService.cs
β”‚   β”œβ”€β”€ MatchingService.cs
β”‚   β”œβ”€β”€ AtsScoringService.cs
β”‚   β”œβ”€β”€ EmailService.cs
β”‚   └── EmailTemplateBuilder.cs
β”œβ”€β”€ Views/                # Razor Views (dark-theme UI)
β”œβ”€β”€ wwwroot/              # Static files & uploads
β”œβ”€β”€ Dockerfile            # Multi-stage production build
β”œβ”€β”€ compose.yaml          # Docker Compose config
└── Program.cs            # Entry point & DI setup

πŸ“„ License

MIT License Β© 2026 Fadi Mriri


🀝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Do not push directly to main
  2. Create a feature branch: git checkout -b feature/your-feature
  3. Submit a Pull Request with a clear description

Built with a strong focus on DevOps, scalability, and AI-driven recruitment systems.

⭐ Star this repo if you find it useful!

About

AI-powered recruitment platform with resume parsing, ATS scoring, and intelligent candidate-job matching.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors