An intelligent, automated recruitment platform that streamlines the hiring process using AI-powered resume analysis, automated email communications, and integrated video interview scheduling.
- AI-Powered Resume Analysis - Intelligent evaluation of candidate skills using Google Gemini
- Automated Email Communications - Professional selection/rejection emails with personalized feedback
- Smart Interview Scheduling - Automatic Zoom meeting creation with calendar integration
- Multi-Role Support - Tailored evaluation criteria for different engineering positions
- Real-time PDF Processing - Instant resume text extraction and analysis
- Streamlit Web Interface - User-friendly, responsive web application
- Google Gemini Integration - Advanced AI for resume analysis and email generation
- Zoom API Integration - Automated video meeting creation and management
- Gmail SMTP Integration - Reliable email delivery system
- PDF Viewer Integration - In-app resume preview and download
- Session Management - Persistent state management across user interactions
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Streamlit │ │ Google │ │ Zoom │
│ Frontend │◄──►│ Gemini │ │ API │
│ │ │ AI │ │ │
└─────────────────┘ └──────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Gmail │ │ Resume │ │ Interview │
│ SMTP │ │ Analysis │ │ Scheduling │
│ │ │ Engine │ │ │
└─────────────────┘ └──────────────┘ └─────────────────┘
- Python 3.8 or higher
- Gmail account with 2FA enabled
- Google Gemini API key
- Zoom Pro account (for meeting creation)
-
Clone the repository
git clone <repository-url> cd ai-recruitment-system
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables (optional)
cp .env.example .env # Edit .env with your API keys -
Run the application
streamlit run app.py
-
Access the application
- Open your browser to
http://localhost:8501 - Configure your API keys in the sidebar
- Start processing applications!
- Open your browser to
| Service | Purpose | How to Get |
|---|---|---|
| Google Gemini | AI resume analysis | aistudio.google.com |
| Gmail App Password | Email notifications | Gmail Settings → Security → App Passwords |
| Zoom OAuth | Meeting creation | Zoom App Marketplace |
- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key
- Copy the key for use in the application
- Enable 2-Factor Authentication on your Gmail account
- Go to Google Account Settings → Security
- Generate an App Password (16-character code)
- Use this app password (NOT your regular Gmail password)
- Go to Zoom App Marketplace
- Create a new "Server-to-Server OAuth" app
- Add required scopes:
meeting:write:meetingmeeting:write:meeting:adminuser:read:admin
- Copy Account ID, Client ID, and Client Secret
The system supports evaluation for three engineering roles:
- Python, PyTorch/TensorFlow
- Machine Learning algorithms
- Deep Learning and Neural Networks
- Data preprocessing and analysis
- MLOps and model deployment
- RAG, LLM, Finetuning, and Prompt Engineering
- React/Vue.js/Angular
- HTML5, CSS3, JavaScript/TypeScript
- Responsive design
- State management
- Frontend testing
- Python/Java/Node.js
- REST APIs
- Database design and management
- System architecture
- Cloud services (AWS/GCP/Azure)
- Kubernetes, Docker, CI/CD
- Select Role - Choose target engineering position
- Upload Resume - PDF format with automatic text extraction
- Provide Email - For communication and interview scheduling
- AI Analysis - Automated skill matching and evaluation
- Receive Feedback - Instant email with results and next steps
- One-time Setup - Configure API keys and credentials
- Automated Processing - Hands-off candidate evaluation
- Review Results - AI-generated analysis and recommendations
- Interview Scheduling - Automatic Zoom meeting creation
- Communication - Automated professional email notifications
The application includes built-in testing tools:
- Email Test - Verify Gmail SMTP configuration
- Zoom Test - Validate Zoom API credentials and scopes
- PDF Processing - Real-time resume text extraction preview
- 70% Skill Match - Minimum threshold for role requirements
- Experience Weight - Values both theoretical and practical knowledge
- Project Experience - Considers real-world applications
- Transferable Skills - Recognizes similar technology experience
- Learning Indicators - Identifies continuous learning patterns
- Detailed Analysis - Specific skill matching breakdown
- Constructive Feedback - Actionable improvement suggestions
- Resource Recommendations - Learning materials for skill gaps
- Encouragement - Positive reinforcement for reapplication
ai-recruitment-system/
├── app.py # Main Streamlit application
├── requirements.txt # Python dependencies
├── README.md # This documentation
├── LICENSE # MIT license
├── .env.example # Environment template
├── docs/ # Additional documentation
│ ├── API.md # API integration details
│ ├── DEPLOYMENT.md # Deployment guide
│ └── TROUBLESHOOTING.md # Common issues and solutions
└── tests/ # Test files (future)
To add support for new engineering roles:
- Update
ROLE_REQUIREMENTSinapp.py - Add role to selectbox options
- Test with sample resumes
- Update documentation
Email content is AI-generated but can be customized by modifying the prompt instructions in:
send_selection_email()functionsend_rejection_email()function
- API Key Storage - Never commit API keys to version control
- Session Management - Secure handling of user data
- Email Security - App passwords instead of account passwords
- Data Privacy - Resume text processed in memory only
- Zoom Security - OAuth 2.0 with proper scopes
Error 535: Username and Password not accepted
Solution: Use Gmail App Password, not regular password
Invalid access token, does not contain scopes
Solution: Add required meeting scopes to your Zoom app
Could not process the PDF
Solution: Ensure PDF is not password-protected or corrupted
- Use sidebar test buttons to verify configurations
- Check Streamlit logs for detailed error messages
- Enable debug mode for additional logging
- Resume Analysis: ~5-10 seconds per resume
- Email Delivery: ~2-3 seconds per email
- Zoom Meeting Creation: ~1-2 seconds per meeting
- Concurrent Users: Supports multiple simultaneous sessions
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PEP 8 for Python code style
- Add docstrings for new functions
- Test new features with multiple scenarios
- Update documentation for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini - AI-powered resume analysis
- Streamlit - Beautiful web application framework
- Zoom - Video conferencing integration
- PyPDF2 - PDF text extraction
- Agno Framework - AI agent orchestration
For support and questions:
- Open an issue on GitHub
- Check the troubleshooting guide
- Review the API documentation
Made with ❤️ for modern recruitment teams