This project is an advanced automation tool designed to streamline the LinkedIn job application process. It utilizes Selenium for browser automation and Google Gemini AI to intelligently parse job descriptions, score relevance, and generate context-aware answers to application questions.
Major Update: Bot is now fully GUI based. No more worrying about managing text-based configurations.
-
AI-Driven Application: Uses Google Gemini (Flash model) to evaluate job descriptions against your resume and generate custom answers for specific employer questions.
-
Resume Parsing: Automatically extracts professional details from PDF resumes to build a "Source of Truth" user profile.
-
Intelligent Filtering: Scores jobs based on compatibility (0-100) and skips low-relevance positions.
-
Anti-Detection Mechanisms: Implements
undetected-chromedriver, random delays, and human-like interactions to minimize detection risk. -
Analytics Dashboard: Built-in Streamlit dashboard to visualize application success rates, status breakdowns, and geographic data.
-
Ban-Safe Mode: Enforces daily application limits to protect account integrity.
-
Python: 3.13+
-
Google Chrome: Installed locally.
-
Gemini API Key: Obtained from Google AI Studio.
Watch demo and how-to setup video on YouTube.
Prefer using PyCharm IDE for simpler setup:
-
Download PyCharm IDE
Download and install from Jetbrains.
-
Add New Python Interpreter
-
Configure Virtual Environment
Select "Generate New", type Virtualenv, and click OK.
-
Install Dependencies
Double click
run.pyto open it. When you see the notification bar (as shown below), click onsync.
-
Initialize the Script
Execute the
run.pyscript.
-
Complete Configuration
Once the Google Chrome window appears, use the GUI to complete the setup.
├── requirements.txt # Must-Be-Installed dependencies
├── run.py # Entry point: Initializes configuration & launcher
├── app/ # Main Application Logic
│ ├── ai_handler.py # AI Core: Gemini integration, Resume parsing
│ ├── config_ui.py # Configuration Server (Flask)
│ ├── dashboard.py # Main Analytics Dashboard
│ ├── scout_dashboard.py # Scout Mode Dashboard
│ ├── defaults.py # Default AI Rules and Seeds
│ ├── bot/ # Browser Automation Logic
│ ├── static/ # CSS & Images for UI
│ └── templates/ # HTML Templates for UI
├── config/ # Configuration Files
│ ├── config.yaml # Job search parameters
│ ├── secrets.yaml # Credentials (NEVER SHARE)
│ └── gemini_config.yaml # AI settings (NEVER SHARE)
├── work/ # Runtime Data (Logs, Databases, Cache, Resumes)
└── docs/ # Documentation Assets
This code comes with no warranties at all, don't blame me if your account is restricted or banned. Keep bot's use fair and reasonable. Don't abuse LinkedIn as a platform or this bot as a tool.
AI-version Linkedin EasyApply AI:
Complete revamp, additional of GUI, and modularization of logics, codebase, enhanced human-like behavior and implementation of GenAI by voidbydefault
Non-AI version EasyAplyBot:
- Grandfather, original developer: Nathan Duma
- Foster dads, maintenance and improvements after Nathan left: Micheal Dingess and voidbydefault
