A console-based Applicant Tracking System (ATS) built in Java as a mini project. It allows recruiters to post jobs and candidates to apply, with automatic skill-based match scoring.
Recruiter portal
- Add, edit, and delete jobs
- View all job listings
- View applications for a job ranked by match score
Candidate portal
- Register with name and skills
- View and edit your profile
- Browse available jobs
- Apply for jobs and see your match score instantly
- View all your past applications
Core logic
- Skill-based match score calculated as a percentage
- Missing skills shown for each application
- Duplicate application prevention
- Data persisted to text files across sessions
| Concept | Where |
|---|---|
| Abstract class | User — base class for Candidate |
| Inheritance | Candidate extends User |
| Interface | Matchable implemented by MatchingService |
| Polymorphism | getRole() overridden in Candidate |
| Encapsulation | Data held in model classes (Job, Candidate, Application) |
Requirements: Java 14 or above (uses switch expressions)
# Compile
javac Main.java
# Run
java MainNo external libraries needed. All data is saved automatically to candidates.txt, jobs.txt, and applications.txt in the same folder.
===== SKILLMATCH ATS =====
1. Recruiter Portal
2. Candidate Portal
3. Exit
--- Candidate Menu ---
1. Register
...
5. Apply for a Job
Enter Your Candidate ID: 1
Enter Job ID to apply for: 2
=== APPLICATION RESULT ===
Match Score : 66.7%
Missing Skills: [docker, kubernetes]
Main.java → entire source code (single file)
candidates.txt → auto-generated, stores candidate data
jobs.txt → auto-generated, stores job listings
applications.txt → auto-generated, stores application records
Ruchira Patil, Sakshi Borse, Vikhyatha Sheela, Sanika Gajbe
- Language: Java
- Type: Console application
- Storage: File-based (no database)
- Built as a 50-mark mini project demonstrating core Java and OOP concepts