Skip to content

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Applicant Tracking System (AI-ATS)

Overview

The AI Applicant Tracking System (AI-ATS) is a production-oriented backend project designed to simulate the software used by Human Resources (HR) departments and recruiters to manage the hiring process.

The project emphasizes backend engineering, database design, distributed systems, cloud-native development, and AI integration rather than frontend development. It serves as a comprehensive learning platform covering nearly every important backend concept used in modern software engineering.

The system allows recruiters to create job postings, manage candidates, schedule interviews, evaluate applicants, upload resumes, and leverage AI to analyze candidate-job compatibility.


Objectives

The project aims to help developers learn and practice:

  • REST API development
  • Authentication & Authorization
  • Relational database design
  • SQL optimization
  • API security
  • Backend architecture
  • Distributed systems
  • Background job processing
  • Caching
  • Object storage
  • AI integration
  • Docker deployment
  • CI/CD
  • Monitoring
  • Production-ready backend practices

Target Users

Candidate

  • Register account
  • Upload resumes
  • Apply for jobs
  • Track applications
  • Receive interview invitations
  • View application history

Recruiter

  • Create job postings
  • Review candidates
  • Schedule interviews
  • Leave interview feedback
  • Manage hiring pipeline

Hiring Manager

  • Review shortlisted candidates
  • Compare interview scores
  • Make hiring decisions
  • Generate offers

Administrator

  • Manage users
  • Manage permissions
  • Configure system settings
  • View analytics
  • Audit user activities

High-Level System Architecture

                    Client
                       │
                REST API / JWT
                       │
        ┌──────────────┴──────────────┐
        │                             │
 Authentication                  Business Logic
        │                             │
        └──────────────┬──────────────┘
                       │
                 PostgreSQL
                       │
        ┌──────────────┼──────────────┐
        │              │              │
      Redis         Object        Background
      Cache         Storage          Queue
                      │               │
                  Resume PDFs     Email / AI
                                      │
                              LLM / Embedding API

Core Modules

Authentication

  • Register
  • Login
  • JWT Authentication
  • Refresh Tokens
  • Password Reset
  • Email Verification
  • OAuth (optional)

User Management

  • Candidate Profile
  • Recruiter Profile
  • Hiring Manager Profile
  • Admin Panel
  • Role-Based Access Control (RBAC)

Company Management

  • Create companies
  • Departments
  • Offices
  • Recruiters
  • Hiring managers

Job Management

  • Create jobs
  • Edit jobs
  • Archive jobs
  • Required skills
  • Salary range
  • Employment type
  • Locations

Candidate Management

  • Candidate profiles
  • Resume versions
  • Portfolio links
  • Skills
  • Education
  • Experience
  • Certifications

Resume Management

  • Upload PDF
  • Resume versioning
  • Resume parsing
  • Extract skills
  • Extract education
  • Extract experience

Application Tracking

Pipeline example:

Saved

Applied

Screening

Interview

Technical Interview

Offer

Accepted / Rejected


Interview Module

  • Schedule interviews
  • Assign interviewers
  • Interview feedback
  • Rating system
  • Recommendation

Notification System

  • Email
  • Interview reminders
  • Offer notifications
  • Application updates

Search

Search candidates by:

  • Name
  • Skills
  • Experience
  • Education
  • Company
  • Job
  • Status

Analytics Dashboard

Examples:

  • Applications per month
  • Hiring funnel
  • Offer rate
  • Time-to-hire
  • Average interview score
  • Recruiter productivity

AI Features

Resume Parsing

Extract:

  • Skills
  • Experience
  • Education
  • Projects
  • Certifications

Candidate Matching

Compare:

Candidate Resume

Job Description

Similarity Score

Matching Explanation


Skill Gap Analysis

Example output:

Required Skills

  • Go
  • Docker
  • Kubernetes
  • PostgreSQL

Candidate Skills

  • Go
  • Docker
  • PostgreSQL

Missing

  • Kubernetes

Resume Suggestions

Generate recommendations:

  • Missing keywords
  • Weak experience descriptions
  • Resume improvements

AI Interview Assistant

Generate:

  • Technical questions
  • Behavioral questions
  • Follow-up questions
  • Evaluation rubric

Database (Initial)

Core tables

  • users
  • roles
  • companies
  • departments
  • jobs
  • candidates
  • resumes
  • resume_versions
  • applications
  • interviews
  • interview_feedback
  • offers
  • skills
  • candidate_skills
  • job_skills
  • notifications
  • audit_logs

Backend Technologies

Language

  • Go (Gin/Fiber) or FastAPI

Database

  • PostgreSQL

Cache

  • Redis

Object Storage

  • MinIO (S3 Compatible)

Queue

  • RabbitMQ
  • Redis Queue
  • Asynq (Go)
  • Celery (Python)

Authentication

  • JWT
  • Refresh Token

Documentation

  • OpenAPI / Swagger

Deployment

  • Docker
  • Docker Compose

Future

  • Kubernetes

Backend Concepts Covered

API

  • REST
  • Versioning
  • Pagination
  • Filtering
  • Sorting
  • Validation
  • Rate Limiting

Security

  • JWT
  • RBAC
  • Password hashing
  • CSRF
  • CORS
  • Input validation
  • SQL Injection prevention

Database

  • ER Modeling
  • Normalization
  • Transactions
  • Foreign Keys
  • Composite Indexes
  • Query Optimization
  • Migrations

Performance

  • Redis caching
  • Connection pooling
  • Lazy loading
  • Batch processing

Reliability

  • Logging
  • Error handling
  • Retry mechanism
  • Background workers
  • Dead letter queues

Testing

  • Unit tests
  • Integration tests
  • API tests
  • Load testing

DevOps

  • Docker
  • Docker Compose
  • CI/CD
  • Health checks
  • Monitoring
  • Metrics

Stretch Goals

  • Multi-tenancy
  • Event-driven architecture
  • Microservices
  • GraphQL API
  • WebSocket notifications
  • AI-powered recruiter assistant
  • AI chatbot for candidates
  • Resume semantic search
  • Candidate recommendation engine

Learning Outcomes

After completing this project, you should be comfortable with:

  • Designing scalable relational databases
  • Building production-ready REST APIs
  • Implementing authentication and authorization
  • Managing complex business logic
  • Working with asynchronous background jobs
  • Optimizing database performance
  • Using Redis effectively
  • Integrating AI services into backend applications
  • Deploying backend services with Docker
  • Writing maintainable, testable, and scalable backend software

This project is intended to simulate the backend architecture of a modern Applicant Tracking System (ATS), while incorporating AI capabilities commonly found in next-generation HR platforms.

About

AI-powered Applicant Tracking System

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages