Streamline your hiring process with automated resume screening and interview scheduling
Transform your recruitment workflow from hours to minutes:
- Upload Resume β AI extracts and analyzes skills
- Smart Matching β Compares against job requirements
- Auto-Decision β Qualifies or rejects with feedback
- Instant Scheduling β Creates Jitsi meeting + sends email invite
- π Smart Resume Parsing - Extracts skills from PDF resumes using PyPDF2
- π§ Intelligent Matching - Compares candidate skills against predefined job requirements
- β‘ Auto-Scheduling - Generates unique Jitsi meeting links for qualified candidates
- π§ Email Automation - Sends professional interview invitations via SMTP
- π Skill Gap Analysis - Shows missing skills for rejected candidates
- π― Multi-Role Support - Configurable for different job positions
graph LR
A[PDF Upload] --> B[PyPDF2 Parser]
B --> C[Text Extraction]
C --> D[Skill Matching Engine]
D --> E{Meets Requirements?}
E -->|Yes| F[Jitsi Link Generator]
E -->|No| G[Skill Gap Report]
F --> H[SMTP Email Service]
H --> I[Interview Scheduled β
]
G --> J[Rejection with Feedback β]
1. Resume Parser (resume_parser.py
)
# Extracts text from PDF and normalizes for matching
def extract_text_from_pdf(pdf_file):
return PyPDF2.PdfReader(pdf_file).extract_text().lower()
2. Skill Matching Engine (config.py
)
# Predefined job requirements with mandatory vs optional skills
JOB_ROLES = {
"Data Scientist": {
"mandatory_skills": ["python", "machine learning", "statistics"],
"preferred_skills": ["sql", "tensorflow", "aws"]
}
}
3. Interview Scheduler (jitsi_scheduler.py
)
# Generates unique meeting rooms and schedules 24h ahead
def create_jitsi_meeting():
room_id = generate_unique_id()
return f"https://meet.jit.si/{room_id}"
4. Email Service (email_sender.py
)
# SMTP integration with Gmail App Passwords
def send_interview_email(candidate_email, meeting_link, datetime):
# Professional email template with meeting details
- Python 3.8+
- Gmail account with App Password enabled
# 1. Clone and setup
git clone https://github.com/SimranShaikh20/AI-Powered-Recruitment-Assistant.git
cd AI-Powered-Recruitment-Assistant
pip install -r requirements.txt
# 2. Configure Gmail App Password (required for email sending)
# Visit: https://myaccount.google.com/apppasswords
# Generate 16-character password for "Mail" app
# 3. Run the application
streamlit run app.py
- Enable 2-Step Verification: Google Security Settings
- Generate App Password: App Passwords
- Select "Mail" β "Other (Custom name)"
- Copy the 16-character password
- Use App Password (not your regular Gmail password) in the application
AI-Powered-Recruitment-Assistant/
βββ app.py # Main Streamlit UI
βββ requirements.txt # Dependencies
βββ utils/
β βββ config.py # Job roles & skill requirements
β βββ resume_parser.py # PDF text extraction
β βββ jitsi_scheduler.py # Meeting link generation
β βββ email_sender.py # SMTP email automation
βββ Documentation/
βββ SRS.docx # System requirements
Add new job roles in utils/config.py
:
JOB_ROLES = {
"Your New Role": {
"mandatory_skills": ["skill1", "skill2"],
"preferred_skills": ["skill3", "skill4"],
"minimum_score": 70 # Percentage threshold
}
}
- Frontend: Streamlit (Interactive web interface)
- PDF Processing: PyPDF2 (Resume text extraction)
- Video Conferencing: Jitsi Meet (Open-source, no signup required)
- Email Service: SMTP with Gmail (Automated notifications)
- Deployment: Streamlit Cloud (Free hosting)
- HR Departments: Automate initial resume screening
- Startups: Quick candidate evaluation without complex ATS
- Recruitment Agencies: Bulk resume processing
- Technical Interviews: Skill-based filtering for developers
- Fork the repository
- Create feature branch (
git checkout -b feature/new-feature
) - Commit changes (
git commit -m 'Add new feature'
) - Push to branch (
git push origin feature/new-feature
) - Open Pull Request
This project is open source and available under the MIT License.
Simran Shaikh - GitHub Profile
β Star this repo if you found it helpful!