June 2025
CV ATS - Applicant Tracking System
Intelligent CV Matching using String Algorithms
CV ATS is an intelligent Applicant Tracking System that uses advanced string matching algorithms to efficiently match and search candidate information based on uploaded CVs. The system demonstrates practical application of algorithmic concepts in real-world recruitment scenarios.
Developed as part of the Algorithm Strategy course, this project showcases the implementation of multiple string matching algorithms with performance analysis, data encryption, and user-friendly interface for HR professionals and recruitment agencies.
String Matching Algorithms
- Knuth-Morris-Pratt (KMP): Efficient single-pattern matching with failure function preprocessing, O(n + m) complexity
- Boyer-Moore (BM): Right-to-left pattern matching with bad character heuristic for efficient large alphabet searching
- Aho-Corasick: Multi-pattern matching algorithm using trie and failure links for simultaneous keyword detection
Key Features
- Implemented PDF processing using pdfplumber for automatic CV text extraction and analysis
- Built MySQL database integration with efficient data storage and retrieval for candidate profiles
- Developed similarity scoring system with configurable keyword weighting and relevance ranking
- Created data encryption system using custom master key generation for secure candidate information
- Designed intuitive Flet-based GUI with real-time search results and performance metrics display
Technical Implementation
Backend
Python with MySQL connector for database operations
Frontend
Flet framework for cross-platform desktop GUI
Document Processing
PDFPlumber for automated text extraction from PDF CVs
Security
Custom encryption with master key generation
Algorithms
KMP, Boyer-Moore, and Aho-Corasick implementations
Database
MySQL 5.7+ for candidate data storage and indexing
System Workflow
- 1Upload: Users upload PDF CVs through the Flet interface
- 2Extract: System processes PDFs and extracts text content automatically
- 3Search: Users input keywords and select matching algorithm (KMP/Boyer-Moore)
- 4Match: System applies selected algorithm and calculates similarity scores
- 5Rank: Results displayed with similarity scores and detailed candidate information