π€ AI-powered resume screening and candidate evaluation system with FastAPI backend and Streamlit frontend
A comprehensive solution for automated resume parsing, candidate scoring, and hiring decision support using machine learning and natural language processing.
- π Multi-format Resume Parsing - Supports PDF, DOCX, and TXT files
- π§ AI-Powered Semantic Matching - Uses sentence transformers for intelligent job-resume alignment
- π Comprehensive Candidate Scoring - Multi-dimensional evaluation with 15+ metrics
- π Red Flag Detection - Automatically identifies potential issues in resumes
- π Interactive Visualizations - Real-time charts and analytics
- β‘ RESTful API - Production-ready FastAPI backend
- π Web Interface - User-friendly Streamlit frontend
- Match Score - Semantic similarity to job description
- Skill Matching - Technical and professional skills alignment
- Experience Assessment - Years of experience extraction and evaluation
- Education Analysis - Educational background matching
- Domain Fit - Industry-specific relevance scoring
- ATS Keywords - Applicant Tracking System optimization
- Soft Skills - Leadership, communication, teamwork evaluation
- Certifications - Professional credentials detection
- Red Flags - Quality issues and inconsistencies
- Resume Readability - Content structure and clarity assessment
Backend:
- FastAPI - Modern, fast web framework
- Sentence Transformers - Semantic text embeddings
- Scikit-learn - Machine learning utilities
- PDFplumber - PDF text extraction
- Python-docx - DOCX document processing
Frontend:
- Streamlit - Interactive web applications
- Plotly - Advanced data visualizations
- Pandas - Data manipulation and analysis
Infrastructure:
- Docker & Docker Compose - Containerized deployment
- Uvicorn - ASGI server implementation
# Clone the repository
git clone <repository-url>
cd ai-resume-hiring-pro
# Run with Docker Compose
docker-compose up --build
# Access the applications
# FastAPI Backend: http://localhost:8000
# Streamlit Frontend: http://localhost:8501
# Install dependencies
pip install -r requirements.txt
# Start FastAPI backend
python -c "from main import app; import uvicorn; uvicorn.run(app, host='0.0.0.0', port=8000)"
# Start Streamlit frontend (in another terminal)
streamlit run app_streamlit.py
βββ main.py # FastAPI application entry point
βββ model.py # AI scoring algorithms and data models
βββ parser.py # Resume text extraction utilities
βββ utils.py # Analysis functions (skills, experience, etc.)
βββ app_streamlit.py # Streamlit web interface
βββ requirements.txt # Python dependencies
βββ Dockerfile # Docker container configuration
βββ docker-compose.yml # Multi-container orchestration
βββ README.md # Project documentation
POST /score
Content-Type: multipart/form-data
files: [resume1.pdf, resume2.docx, ...]
job_description: "We are hiring a Machine Learning Engineer..."
job_domain: "ai" (optional)
GET /health
Response: {"status": "ok"}
[
{
"Rank": 1,
"Candidate_Name": "john_doe_resume.pdf",
"Match_Score_pct": 87.5,
"Skill_Match_pct": 92.3,
"Experience_Match_pct": 85.0,
"Education_Match_pct": 90.0,
"Domain_Fit": "ai",
"ATS_Keywords_pct": 88.5,
"Soft_Skills_Score": 75.0,
"Certifications_and_Achievements": ["AWS Certified", "Machine Learning Certificate"],
"Red_Flags_pct": 5.0,
"Resume_Length_Readability": 82.3,
"Last_Updated": "N/A",
"Diversity_of_Skills": 85.7,
"Final_Recommendation": "Shortlist"
}
]
- Open http://localhost:8501
- Upload multiple resume files (PDF/DOCX/TXT)
- Enter job description
- Click "Score Resumes"
- View results, charts, and download CSV report
import requests
files = [('files', ('resume.pdf', open('resume.pdf', 'rb')))]
data = {'job_description': 'Python developer with 3+ years experience'}
response = requests.post('http://localhost:8000/score',
files=files, data=data)
results = response.json()
- PDF - Extracted using PDFplumber
- DOCX - Processed with python-docx
- TXT - Direct text parsing
The system recognizes these industry domains:
- fintech - Finance, banking, payments
- healthcare - Medical, clinical, pharmaceutical
- ai - Machine learning, NLP, computer vision
- software - Backend, frontend, full-stack development
Automatically detects 25+ technical skills including:
- Programming: Python, Java, C++, JavaScript
- Databases: SQL, MongoDB, PostgreSQL
- ML/AI: TensorFlow, PyTorch, Scikit-learn
- Cloud: AWS, GCP, Azure
- DevOps: Docker, Kubernetes
# Build and deploy with Docker
docker build -t ai-resume-pro .
docker run -p 8000:8000 ai-resume-pro
# Or use docker-compose for full stack
docker-compose up -d
# Optional configuration
BACKEND_URL=http://localhost:8000 # API endpoint
MODEL_NAME=all-MiniLM-L6-v2 # Sentence transformer model
- Processing Speed: ~500ms per resume
- Accuracy: 85%+ semantic matching precision
- Scalability: Handles 100+ concurrent requests
- Memory Usage: ~2GB for full ML models
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or feature requests:
- Open a GitHub issue
- Check the API documentation at http://localhost:8000/docs
- Review the demo video for usage examples
- Advanced ML models for better accuracy
- Real-time processing optimization
- Enhanced red flag detection
- Multi-language resume support
- Integration with popular ATS systems
- Bias detection and mitigation features
Built for modern recruiting teams who need intelligent, scalable resume screening solutions.