An end-to-end automated recruitment system that leverages AI to streamline the hiring process. Built with LangChain, Gemini AI, and modern web technologies.
- AI-Powered Resume Screening (ATS) - Automatically evaluates resumes against job descriptions
- Adaptive Chat Interviews - Dynamic, AI-driven interviews that adapt based on candidate responses
- Automated Email Communication - Sends interview invitations and results via Gmail API
- Modern Web Interface - Professional HR dashboard and candidate interview portal
- Batch Processing - Handle multiple candidates simultaneously
- Result Storage & Analytics - JSON-based data storage with export capabilities
- Time Savings - Automate repetitive HR tasks
- Consistency - Standardized evaluation process
- Scalability - Handle large candidate pools efficiently
- Candidate Experience - Professional, interactive interview process
- Data-Driven Decisions - Comprehensive evaluation metrics
- Backend: Python, LangChain, Google Gemini 1.5 Flash
- Frontend: Flask, HTML5, CSS3, JavaScript
- APIs: Google Gmail API, Google Calendar API
- Data Storage: JSON files (extensible to databases)
- Authentication: OAuth 2.0 with Google APIs
- Python 3.8+
- Google Cloud Platform account
- Gmail API credentials
- Gemini API key
git clone https://github.com/yourusername/agentic-hr-ai.git
cd agentic-hr-aipip install -r requirements.txt- Go to Google Cloud Console
- Create a new project or select existing one
- Enable Gmail API: APIs & Services > Library > Gmail API > Enable
- Create OAuth credentials: APIs & Services > Credentials > Create Credentials > OAuth client ID
- Choose Desktop application as application type
- Download the JSON file and rename it to
credentials.json - Place it in the
backend/directory
- Get your Gemini API key from Google AI Studio
- Set environment variable:
export GOOGLE_API_KEY="your-gemini-api-key"export ADMIN_EMAIL="admin@yourcompany.com"
export FRONTEND_URL="http://localhost:5000"AgenticHR/
โโโ backend/
โ โโโ app.py # Main backend application
โ โโโ ats_evaluation.py # ATS evaluation module
โ โโโ credentials.json # Google OAuth credentials
โ โโโ candidates.csv # Sample candidate data
โ โโโ job_description.txt # Sample job description
โโโ frontend/
โ โโโ app.py # Flask web application
โโโ requirements.txt # Python dependencies
โโโ README.md # This file
โโโ .gitignore # Git ignore rules
cd backend
python app.pycd frontend
python app.pyOpen your browser and go to: http://localhost:5000/admin
- Upload a job description (
.txtfile) - Upload a candidates CSV file with columns:
name,email,resume
- View candidate status in the dashboard
- Share interview links with candidates
- Monitor interview progress
name,email,resume
John Doe,john.doe@email.com,"Detail-oriented software engineer with 3 years of experience in Python development..."
Jane Smith,jane.smith@email.com,"Full-stack developer with 4 years of experience in JavaScript, React, and Node.js..."Job Title: Junior Python Developer
Description:
We are seeking a Junior Python Developer to join our backend team...
Responsibilities:
- Develop and maintain backend services using Python and Flask
- Optimize code for performance and scalability
- Work closely with frontend developers and participate in code reviews
Requirements:
- 1+ years of experience with Python
- Familiarity with Flask and SQL
- Good communication and teamwork skills
GOOGLE_API_KEY: Your Gemini API keyADMIN_EMAIL: Email address for admin notificationsFRONTEND_URL: URL where the frontend is hosted
- Modify interview questions in
backend/app.py - Adjust ATS scoring criteria in
backend/ats_evaluation.py - Customize email templates in the backend code
- Update UI styling in
frontend/app.py
- Keep
credentials.jsonsecure and never commit it to version control - Use environment variables for sensitive data
- Implement proper authentication for production use
- Consider rate limiting for API calls
- Regular security audits of dependencies
# Terminal 1 - Backend
cd backend && python app.py
# Terminal 2 - Frontend
cd frontend && python app.py- Use a production WSGI server (Gunicorn, uWSGI)
- Set up proper SSL certificates
- Configure environment variables
- Use a production database (PostgreSQL, MongoDB)
- Set up monitoring and logging
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: Create an issue on GitHub
- Documentation: Check the code comments and this README
- Community: Join our discussions in GitHub Discussions
- Firebase integration for cloud storage
- Advanced analytics dashboard
- Multi-language support
- Mobile app for candidates
- Integration with job boards
- Advanced scheduling with calendar integration
- Video interview capabilities
- AI-powered candidate matching
- Built with LangChain
- Powered by Google Gemini
- UI inspired by modern SaaS applications
Made with โค๏ธ for modern HR teams