Skip to content

jj004/LinkedinJobApplicationAutomation

Repository files navigation

LinkedIn Auto-Apply Bot

Setup & Usage Guide — Jayesh Jain

1. Install dependencies

pip install -r requirements.txt playwright install chromium

2. Run now (one-time)

python bot.py --now

3. OR run with daily 9 AM scheduler

python bot.py


📁 Files in this folder

File Purpose
bot.py Main automation script
config.py All your personal settings & CTC details
requirements.txt Python dependencies
dashboard.html Visual log viewer (open in browser)
answers_memory.json Auto-created — stores remembered answers
application_log.json Auto-created — log of every application
linkedin_cookies.json Auto-created — saved login session
bot_debug.log Auto-created — detailed debug log

⚙️ One-Time Setup

1. Install Python 3.10+

Download from https://python.org if not installed.

2. Install dependencies

Open a terminal in this folder and run:

pip install -r requirements.txt
playwright install chromium
OR
python -m playwright install chromium

3. Verify your resume path

Open config.py and confirm:

RESUME_PATH = r"D:\Personal\My Resumes\Resume - Jayesh Jain - 11092025.pdf"

Change it if your resume is in a different location.


🚀 Running the Bot

Option A — Run now (one-time)

python bot.py --now

Option B — Run with daily scheduler (recommended)

python bot.py

This starts the scheduler. The bot will:

  1. Run immediately on launch
  2. Then run every day at 9:00 AM IST

Leave the terminal open (or run in background).


🔐 First-Time Login

On first run, a browser window opens. Log into LinkedIn manually, then press ENTER in the terminal. Cookies are saved — you won't need to log in again unless they expire (~30 days).


❓ Unknown Field Prompts

If the bot encounters a field it doesn't recognise (e.g. "What is your notice period in days?"), it will:

  1. Pause and ask you in the terminal
  2. Remember your answer in answers_memory.json
  3. Reuse that answer automatically for all future similar questions

You can also pre-add answers to answers_memory.json manually:

{
  "what is your notice period in days?": "60",
  "do you have a degree in computer science?": "No, but I have 9 years experience"
}

📊 Viewing Your Dashboard

  1. Open dashboard.html in any browser
  2. Click Load Log File and select application_log.json
  3. See stats + searchable table of all applications

📋 Your Pre-configured Profile

Field Value
Name Jayesh Jain
Phone 08087528912
Email jayeshjain32@gmail.com
Experience 9 years
Current CTC 29.18 LPA Fixed
Expected CTC 42 LPA Fixed
Notice Period 60 days
Location Pune, India
Work Auth Authorized to work in India

⚠️ Important Notes

  • LinkedIn may detect bots — the script uses human-like delays (SLOW_MO = 50ms) and a real browser, reducing this risk
  • If LinkedIn shows a CAPTCHA, complete it manually in the open browser window
  • For External Apply jobs, the bot does a best-effort form fill; complex multi-page company portals are logged as manual_review
  • Run config.py changes take effect on the next bot run
  • To change schedule time, edit RUN_TIME = "09:00" in config.py

🛠 Customising Known Answers

Open bot.py and find the KNOWN dictionary (~line 85). Add more keyword → answer pairs:

"java":      "Yes, 9 years Java experience",
"spring":    "Yes, 7 years Spring Boot",
"aws":       "Familiar — 1 year Azure AKS equivalent",

📞 Support

For issues, check bot_debug.log for detailed error traces.

About

Python scripting project for creating a application to apply job on linkedin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors