Skip to content

ShashankBejjanki1241/ApexHire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ ApexHire - AI Resume Screener

License: MIT Python Streamlit spaCy

An intelligent, end-to-end system that automatically reads, analyzes, scores, and ranks resumes based on job descriptions. Built with Python and Natural Language Processing (NLP), this system mimics what a human recruiter doesβ€”but faster and more consistently.

⚑ Quick Start (5 Minutes)

1. Setup

git clone https://github.com/ShashankBejjanki1241/ApexHire.git
cd ApexHire
python setup.py

2. Launch Web Interface

streamlit run app/main.py

3. Use the System

  • Upload Resume: Go to "πŸ“„ Resume Analysis" and upload your resume
  • Add Job: Go to "πŸ’Ό Job Matching" and enter job details
  • Get Results: View match scores and recommendations

🎯 Perfect For

Use Case Description
Job Seekers Test your resume against job descriptions
Recruiters Screen multiple candidates efficiently
HR Teams Standardize resume evaluation
Career Coaches Help clients improve resumes

πŸ› οΈ Features

  • πŸ“„ Resume Parsing: Supports PDF, DOCX, and TXT formats
  • 🧹 Text Preprocessing: Cleans and tokenizes text data
  • 🧠 Skill Extraction: Extracts technical and soft skills
  • πŸ“Š Relevance Scoring: Matches resumes against job descriptions
  • 🌐 Web Interface: Streamlit-based user interface
  • πŸ“ˆ Ranking System: Ranks candidates by relevance score
  • πŸ” Semantic Analysis: Advanced NLP for better matching
  • πŸ“‹ Detailed Reports: Comprehensive analysis output

πŸ› οΈ Tech Stack

  • Python 3.8+
  • spaCy - Natural Language Processing
  • pdfplumber - PDF text extraction
  • python-docx - DOCX file handling
  • pandas & numpy - Data processing
  • scikit-learn - Machine learning utilities
  • Streamlit - Web application framework
  • NLTK - Natural Language Toolkit

πŸš€ Usage Options

🌐 Web Interface (Recommended)

streamlit run app/main.py

Features:

  • Easy-to-use dashboard
  • Real-time analysis
  • Interactive visualizations
  • Step-by-step guidance

πŸ’» Command Line

# Single file analysis
python cli.py --resume resume.pdf --job job.txt

# Batch processing
python cli.py --batch --resumes data/resumes/ --jobs data/jobs/

# Launch web interface
python cli.py --web

πŸ”§ Programmatic API

from src.main_pipeline import ResumeScreener

screener = ResumeScreener()
result = screener.analyze_resume("resume.pdf")
match = screener.match_resume_to_job("resume.pdf", job_description)

πŸ“ Project Structure

ApexHire/
β”œβ”€β”€ πŸ“ src/                     # Core AI modules
β”‚   β”œβ”€β”€ main_pipeline.py        # Main orchestration
β”‚   β”œβ”€β”€ parser.py               # Resume parsing
β”‚   β”œβ”€β”€ preprocess.py           # Text preprocessing
β”‚   β”œβ”€β”€ scorer.py               # Scoring algorithms
β”‚   β”œβ”€β”€ skills_extractor.py     # Skill extraction
β”‚   β”œβ”€β”€ resume_analyzer.py      # Resume analysis
β”‚   β”œβ”€β”€ performance_monitor.py  # Performance tracking
β”‚   └── utils.py                # Utility functions
β”œβ”€β”€ πŸ“ api/                     # FastAPI REST API
β”‚   └── main.py                 # API endpoints
β”œβ”€β”€ πŸ“ app/                     # Web interface
β”‚   β”œβ”€β”€ main.py                 # Streamlit app
β”‚   └── components/             # UI components
β”œβ”€β”€ πŸ“ config/                  # Configuration
β”‚   └── settings.py             # Centralized settings
β”œβ”€β”€ πŸ“ docker/                  # Docker configuration
β”‚   β”œβ”€β”€ Dockerfile              # Container definition
β”‚   └── docker-compose.yml      # Multi-service setup
β”œβ”€β”€ πŸ“ docs/                    # Documentation
β”‚   β”œβ”€β”€ api/                    # API documentation
β”‚   β”œβ”€β”€ deployment/             # Deployment guides
β”‚   β”œβ”€β”€ development/            # Development guides
β”‚   β”œβ”€β”€ USER_GUIDE.md          # User guide
β”‚   └── API.md                 # API reference
β”œβ”€β”€ πŸ“ tests/                   # Test suite
β”‚   β”œβ”€β”€ test_parser.py          # Parser tests
β”‚   β”œβ”€β”€ test_performance.py     # Performance tests
β”‚   └── test_api.py            # API tests
β”œβ”€β”€ πŸ“ data/                    # Sample data
β”‚   β”œβ”€β”€ resumes/               # Resume files
β”‚   └── job_descriptions/      # Job descriptions
β”œβ”€β”€ πŸ“ output/                  # Analysis results
β”œβ”€β”€ πŸ“ logs/                    # Application logs
β”œβ”€β”€ πŸ“„ cli.py                   # Command-line interface
β”œβ”€β”€ πŸ“„ requirements.txt         # Dependencies
β”œβ”€β”€ πŸ“„ setup.py                 # Installation script
└── πŸ“„ README.md                # This file

πŸ“‹ See PROJECT_STRUCTURE.md for detailed organization

πŸ“Š Example Results

🎯 RESUME ANALYSIS RESULTS
==========================================
πŸ“„ Resume: example_resume.pdf
πŸ“Š Text Length: 12,176 characters
πŸ”§ Technical Skills: python, aws, sql, git, react
🀝 Soft Skills: agile, scrum, leadership

πŸ“Š JOB MATCH SCORES:
----------------------------------------
iOS Developer: 0.453 (45.3%)
Full Stack Developer: 0.447 (44.7%)
Python Developer: 0.470 (47.0%)

πŸ“‹ File Requirements

Resume Files

  • Formats: PDF, DOCX, TXT
  • Size: Maximum 10MB
  • Content: Readable text (not scanned images)
  • Language: English (for best results)

Job Descriptions

  • Format: Plain text (.txt)
  • Content: Clear requirements and responsibilities
  • Length: Detailed descriptions work better

πŸ”§ Configuration

The system can be customized by modifying:

  • Scoring weights in src/config/settings.py
  • Skill lists in src/skills_extractor.py
  • Text preprocessing in src/preprocess.py

πŸ“š Documentation

🀝 Contributing

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

πŸ“„ License

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

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

Shashank B

πŸ™ Acknowledgments

  • spaCy for excellent NLP capabilities
  • pdfplumber for reliable PDF parsing
  • python-docx for DOCX file handling
  • pandas and numpy for data processing
  • Streamlit for web interface framework

⭐ Star this repository if you find it helpful!

πŸ”„ Fork and contribute to make it even better!

πŸ“§ Contact the author for collaboration opportunities!

About

AI-Powered Resume Screening Platform with ATS Optimization, FastAPI REST API, and Real-time Performance Monitoring

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages