Automated bot that applies to LinkedIn jobs using Easy Apply.
bot.mp4 |
|
# 1. Install dependencies
pip install playwright python-dotenv pyyaml python-telegram-bot
playwright install chromium
# 2. Configure
cp .env.example .env
# Edit .env with your LinkedIn credentials
# Optional: Add Telegram credentials for notifications (see TELEGRAM_SETUP.md)
# 3. Run
python3 run.pyGet instant notifications when you apply to jobs!
See TELEGRAM_SETUP.md for setup instructions.
You'll receive:
- Real-time notifications for each application
- Company name and job title
- Summary at the end
_linkedin-bot/
βββ run.py β RUN THIS FILE
βββ bot.py β Main bot logic
βββ config_classes.py β Configuration classes
βββ linkedin_selectors.py β CSS selectors
βββ config.yaml β Your job search settings
βββ .env β Your LinkedIn credentials
| File | What It Does |
|---|---|
| run.py | β Start here! Entry point to run the bot |
| bot.py | Main bot implementation (don't run directly) |
| config_classes.py | Configuration data structures |
| linkedin_selectors.py | CSS selector constants |
| config.yaml | Job search settings (edit this!) |
| .env | LinkedIn login (edit this!) |
-
Edit config.yaml:
search: job_title: "Python Developer" location: "London" date_posted: "Past 24 hours" max_applications: 10 exclude_keywords: - "senior" - "lead" - "principal" answers: salary_expectations: "50k" sponsorship: "No" # ... etc
-
Edit .env:
[email protected] LINKEDIN_PASSWORD=your_password -
Run:
python3 run.py
- Opens LinkedIn Jobs
- Searches for jobs matching your criteria
- Applies filters (Easy Apply, date posted)
- Finds all job cards in the left column
- Iterates through each job card (1 β 2 β 3...)
- For each job:
- Extracts company and job title
- Skips if job title contains excluded keywords
- Clicks the job card to select it
- Clicks Easy Apply
- Fills out the form
- Submits
- Sends Telegram notification (if configured)
- Moves to next job
Fixed job iteration - Bot now properly cycles through different jobs instead of clicking the same job repeatedly
Before: Kept clicking job #1 ten times
After: Clicks job #1, #2, #3... up to max_applications
Q: Which file do I run?
A: python3 run.py - That's it!
Q: Bot keeps clicking the same job?
A: This is now fixed! Update to latest code.
Q: Import error about 'selectors'?
A: Fixed! We renamed the file to avoid conflicts.
Just run: python3 run.py
