Skip to content

alhamrizvi-cloud/JobAutomationBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JobAutomationBot

      __      __    ___         __                        __  _             ____        __ 
     / /___  / /_  /   | __  __/ /_____  ____ ___  ____ _/ /_(_)___  ____  / __ )____  / /_
__  / / __ \/ __ \/ /| |/ / / / __/ __ \/ __ `__ \/ __ `/ __/ / __ \/ __ \/ __  / __ \/ __/
/ /_/ / /_/ / /_/ / ___ / /_/ / /_/ /_/ / / / / / / /_/ / /_/ / /_/ / / / / /_/ / /_/ / /_  
\____/\____/_.___/_/  |_\__,_/\__/\____/_/ /_/ /_/\__,_/\__/_/\____/_/ /_/_____/\____/\__/

πŸ”— github.com/alhamrizvi-cloud/JobAutomationBot

Automated Cybersecurity Job Application System β€” finds and applies to penetration testing, ethical hacking, and security analyst jobs across LinkedIn, Naukri, web job boards, and via email.


πŸ“ Project Structure

job_bot/
β”œβ”€β”€ main.py           ← Orchestrator + CLI entry point
β”œβ”€β”€ linkedin_bot.py   ← LinkedIn Easy Apply automation
β”œβ”€β”€ naukri_bot.py     ← Naukri.com login + auto apply
β”œβ”€β”€ email_sender.py   ← SMTP email applications with resume
β”œβ”€β”€ job_scraper.py    ← Scrape Indeed, TimesJobs, Internshala
β”œβ”€β”€ config.py         ← All settings (reads from .env)
β”œβ”€β”€ tracker.py        ← CSV-based application tracker
β”œβ”€β”€ notifier.py       ← Telegram + email notifications
β”œβ”€β”€ logger.py         ← Shared logging setup
β”œβ”€β”€ requirements.txt  ← Python dependencies
β”œβ”€β”€ .env.example      ← Credentials template
β”œβ”€β”€ .gitignore
β”œβ”€β”€ resume.pdf        ← β¬… Place YOUR resume here
β”œβ”€β”€ logs/
β”‚   └── job_bot.log
└── data/
    β”œβ”€β”€ applied_jobs.csv      ← Auto-created tracker
    └── email_targets.csv     ← Companies to email (edit this!)

⚑ Quick Setup

Step 1 β€” Install Python 3.11+

python --version   # Should be 3.11 or higher

Step 2 β€” Clone / Download the project

git clone github.com/alhamrizvi-cloud/JobAutomationBot
cd JobAutomationBot

Step 3 β€” Create a virtual environment (recommended)

python -m venv venv
source venv/bin/activate       # Linux/Mac
venv\Scripts\activate.bat      # Windows

Step 4 β€” Install dependencies

pip install -r requirements.txt
playwright install chromium

Step 5 β€” Configure credentials

cp .env.example .env

Open .env in any text editor and fill in:

  • Your name, phone, email
  • LinkedIn login credentials
  • Naukri login credentials
  • Gmail + App Password (see Gmail Setup below)
  • Telegram Bot token (optional)

Step 6 β€” Add your resume

Place your resume as resume.pdf in the job_bot/ folder.

Step 7 β€” Run!

python main.py          # Full run (all modules)
python main.py --stats  # Check stats anytime

πŸ” Gmail App Password Setup

Gmail requires an App Password (not your normal password) for SMTP.

  1. Go to https://myaccount.google.com/security
  2. Enable 2-Step Verification if not already on
  3. Go to https://myaccount.google.com/apppasswords
  4. Select App: Mail | Device: Windows Computer
  5. Click Generate
  6. Copy the 16-character password into .env as EMAIL_PASSWORD

πŸ“¬ Email Campaign Setup

Edit data/email_targets.csv (auto-created on first run):

company,contact_email,role,job_link
Infosys,hr@infosys.com,Security Analyst,https://infosys.com/careers/123
TCS,security.hiring@tcs.com,Penetration Tester,https://tcs.com/jobs/456

Then run:

python main.py --email

πŸ€– Telegram Bot Setup (Optional)

  1. Open Telegram and message @BotFather
  2. Send /newbot and follow prompts β†’ copy the Bot Token
  3. Message @userinfobot to get your Chat ID
  4. Add both to .env

You'll receive instant notifications when jobs are applied or errors occur.


πŸ• Scheduling Options

Option A β€” Python scheduler (easiest)

python main.py --schedule

Runs every day at the time set in config.py (SCHEDULE_TIME = "09:00"). Keep the terminal open or run in a screen / tmux session.

Option B β€” Linux cron job

crontab -e

Add this line to run at 9 AM every day:

0 9 * * * cd /path/to/job_bot && /path/to/venv/bin/python main.py >> logs/cron.log 2>&1

Option C β€” Windows Task Scheduler

  1. Open Task Scheduler β†’ Create Basic Task
  2. Trigger: Daily at 9:00 AM
  3. Action: Start Program
  4. Program: C:\path\to\venv\Scripts\python.exe
  5. Arguments: C:\path\to\job_bot\main.py

πŸ’» All CLI Commands

python main.py              # Run all modules
python main.py --schedule   # Schedule daily runs
python main.py --linkedin   # LinkedIn only
python main.py --naukri     # Naukri only
python main.py --email      # Email campaign only
python main.py --scrape     # Scrape + display (no apply)
python main.py --stats      # Show application statistics

πŸ“Š Application Tracker

All applications are saved to data/applied_jobs.csv:

job_title, company, platform, status, date_applied, job_link
Penetration Tester, SecureTech, LinkedIn, Applied, 2024-07-01 09:15:00, https://...
SOC Analyst, Wipro, Naukri, Applied, 2024-07-01 09:18:33, https://...

The bot automatically skips jobs you've already applied to.


βš™οΈ Configuration (config.py)

Setting Default Description
JOB_KEYWORDS 8 keywords Cybersecurity job title filters
LOCATION_FILTERS India/Mumbai/Remote Location targets
MAX_APPLICATIONS_PER_RUN 20 Safety cap per session
DELAY_BETWEEN_APPS_SEC (5, 15) Random delay range
HEADLESS_BROWSER True Set False to watch browser
SCHEDULE_TIME "09:00" Daily run time

⚠️ Important Warnings

  1. Terms of Service: LinkedIn and Naukri prohibit automated access. Use only for personal job searching and keep MAX_APPLICATIONS low.

  2. Rate Limiting: The bot includes random delays. Don't remove them.

  3. Account Safety: LinkedIn may temporarily restrict accounts if too many actions are detected. Start with MAX_APPLICATIONS_PER_RUN = 5 and increase gradually.

  4. CAPTCHA: Both platforms may show CAPTCHAs. Set HEADLESS_BROWSER = False to solve them manually when needed.

  5. Credentials: Never share your .env file or commit it to GitHub.


πŸ› Troubleshooting

"No module named playwright"

pip install playwright && playwright install chromium

LinkedIn login fails / CAPTCHA

# In config.py, set:
HEADLESS_BROWSER = False
# Then run and solve CAPTCHA manually

Gmail SMTP authentication error

  • Make sure you're using an App Password, not your Gmail password
  • Ensure 2-Step Verification is enabled on your Google account

No jobs found

  • Check your internet connection
  • The site's HTML structure may have changed β€” check logs for details

πŸ“ˆ Tips for Freshers

  • Fill your LinkedIn profile completely before running the bot
  • Upload your resume to Naukri profile manually once before using the bot
  • Add a professional photo to all platforms
  • Keep resume.pdf updated with certifications (CEH, CompTIA Security+, etc.)
  • Add CTF wins (TryHackMe, HackTheBox) to your profiles

Built with ❀️ for aspiring cybersecurity professionals
πŸ”— github.com/alhamrizvi-cloud/JobAutomationBot

About

Python-based automation bot that searches and applies to cybersecurity and penetration testing jobs from LinkedIn, Naukri, and email using a resume automatically.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages