AI_Job_Agent
AI Job Application Agent
An intelligent automation agent that automatically searches for job openings on multiple platforms and applies on your behalf.
🎯 Features
- Multi-Platform Support: LinkedIn, Naukri, Hirist, and Remote job boards
- Intelligent Job Matching: Filters jobs based on your preferences
- Auto-Fill Applications: Automatically fills application forms
- AI-Powered Q&A: Answers application questions intelligently (optional)
- Application Tracking: Maintains database of applied jobs
- Duplicate Prevention: Avoids applying to the same job twice
- Stealth Mode: Human-like behavior to avoid detection
📋 Supported Platforms
- LinkedIn - Easy Apply jobs
- Naukri.com - Instant Apply jobs
- Hirist.com - Tech jobs
- Remote Job Boards - Himalayas, Remotive, etc.
🚀 Installation
Prerequisites
- Python 3.9 or higher
- Google Chrome browser
- ChromeDriver (automatically managed)
Step 1: Clone or Download
# If you have the zip file, extract it
unzip AI_Job_Agent.zip
cd AI_Job_Agent
Step 2: Create Virtual Environment (Recommended)
# Windows
python -m venv venv
venv\Scripts\activate
# Linux/Mac
python3 -m venv venv
source venv/bin/activate
Step 3: Install Dependencies
pip install -r requirements.txt
Step 4: Configure Environment Variables
# Copy the example env file
cp .env.example .env
# Edit .env file and add your credentials
# Use any text editor (notepad, vim, nano, etc.)
Step 5: Configure Your Profile
# Edit config.yaml file with your details:
# - Personal information
# - Work experience
# - Skills
# - Job preferences
# - Resume path
⚙️ Configuration
1. User Profile (config.yaml)
Edit config.yaml and update:
- Personal details (name, email, phone)
- Work experience
- Skills
- Resume path
- Job preferences (titles, locations, salary)
2. Platform Credentials (.env)
Add your login credentials in .env:
LINKEDIN_EMAIL=your.email@example.com
LINKEDIN_PASSWORD=your_password
NAUKRI_EMAIL=your.email@example.com
NAUKRI_PASSWORD=your_password
3. AI Integration (Optional)
To enable AI-powered question answering:
- Get API key from OpenAI or Google Gemini
- Add to
.env:
GEMINI_API_KEY=your_api_key
- Enable in
config.yaml:
ai_settings:
enabled: true
provider: "gemini"
📖 Usage
Basic Usage
Apply to jobs on all platforms:
python main.py
Platform-Specific
Apply only on LinkedIn:
python main.py --platform linkedin
Apply on specific platform:
python main.py --platform naukri
python main.py --platform hirist
python main.py --platform remote
Limit Applications
Apply to maximum 20 jobs:
python main.py --max-apps 20
Dry Run (Test Mode)
Test without actually applying:
python main.py --dry-run
Configure Profile Interactively
python main.py --config
📁 Project Structure
AI_Job_Agent/
├── main.py # Entry point
├── requirements.txt # Dependencies
├── config.yaml # Configuration
├── .env # Credentials (DO NOT SHARE)
├── README.md # This file
├── config/
│ ├── settings.py # Settings manager
│ ├── user_profile.py # Profile configuration
│ └── qa_bank.py # Question-answer bank
├── scrapers/
│ ├── base_scraper.py # Base scraper class
│ ├── linkedin_scraper.py
│ ├── naukri_scraper.py
│ ├── hirist_scraper.py
│ └── remote_jobs_scraper.py
├── automation/
│ ├── form_filler.py # Form auto-fill
│ ├── login_handler.py # Login automation
│ └── application_submitter.py
├── ai/
│ ├── question_answerer.py # AI Q&A
│ └── resume_tailor.py # Resume customization
├── database/
│ ├── db_manager.py # Database operations
│ └── models.py # Data models
├── utils/
│ ├── logger.py # Logging
│ └── helpers.py # Utility functions
├── data/
│ ├── jobs.db # SQLite database
│ └── logs/ # Log files
└── resumes/
└── default_resume.pdf # Your resume
⚠️ Important Considerations
Legal & Ethical
- Terms of Service: Using automation may violate platform ToS
- Rate Limiting: Respect platform limits to avoid bans
- Accuracy: Review auto-filled information for accuracy
- Authenticity: Be prepared to discuss all applications
Best Practices
- Start Slow: Begin with 10-20 applications per day
- Review Settings: Double-check configuration before running
- Monitor Logs: Check
data/logs/app.logfor issues - Update Resume: Keep your resume current
- Customize Answers: Review and update Q&A responses
Security
- Never Share .env: Keep credentials private
- Use Strong Passwords: Secure your accounts
- Regular Updates: Keep dependencies updated
- Secure Storage: Protect database files
🛠️ Troubleshooting
Issue: ChromeDriver Error
Solution: The package auto-downloads ChromeDriver, but if issues occur:
pip install --upgrade undetected-chromedriver
Issue: Login Fails
Solutions:
1. Check credentials in .env
2. Disable 2-factor authentication temporarily
3. Try manual login first to verify
4. Check for CAPTCHA requirements
Issue: No Jobs Found
Solutions:
1. Verify job search criteria in config.yaml
2. Broaden search locations or titles
3. Check platform availability
4. Review logs for errors
Issue: Application Fails
Solutions:
1. Run in non-headless mode (headless: false in config)
2. Check screenshot in data/screenshots/
3. Review error logs
4. Slow down automation (increase delays)
📊 Viewing Results
Check Applied Jobs
# View database
sqlite3 data/jobs.db "SELECT * FROM applications ORDER BY applied_at DESC LIMIT 10;"
Application Statistics
from database.db_manager import DatabaseManager
db = DatabaseManager()
count = db.get_applications_count(days=1)
print(f"Applications today: {count}")
🔄 Updates and Maintenance
Update Dependencies
pip install --upgrade -r requirements.txt
Backup Data
# Backup database
cp data/jobs.db data/jobs_backup_$(date +%Y%m%d).db
🤝 Support
For issues or questions:
- Check troubleshooting section
- Review logs in
data/logs/ - Check configuration files
- Test with
--dry-runflag
⚖️ Disclaimer
This tool is for educational purposes. Users are responsible for:
- Complying with platform Terms of Service
- Ensuring accuracy of applications
- Following local employment laws
- Maintaining professional conduct
The authors are not responsible for:
- Account suspensions
- Application rejections
- Legal issues
- Data privacy violations
📝 License
This project is provided as-is for personal use only.
🎓 Learning Resources
Version: 1.0.0
Last Updated: November 2025
Happy Job Hunting! 🎯