Skip to content

Automated bot that applies to Linkedin jobs via Easy Apply based on your preferences

Notifications You must be signed in to change notification settings

GabeGiro/EasyApplyJobsBot

 
 

Repository files navigation

Linkedin Easy Apply Bot 🤖

A python bot to apply all Linkedin Easy Apply jobs based on your preferences.

linkedineasyapplygif

Installation 🔌

NOTE: If you need help setting up or running the bot locally join our Discord community

Run inside a Docker container (recommended)

  • Clone the repo git clone https://github.com/GabeGiro/EasyApplyJobsBot
  • Setup configs
    • In the project directory, create 'configs' directory
    • Add your configuration
  • Install Docker
  • Run docker-compose up --build -d

Run tests in a container

  • Run docker-compose up --build -d test

Debug with Dev Containers in VSCode

  • Install Dev Containers VSCode extension
  • In the VSCode's search bar find Dev Containers' command "Rebuild without cache and reopen in a container"

Run without Docker

  • clone the repo git clone https://github.com/GabeGiro/EasyApplyJobsBot
  • Make sure Python and pip is installed
  • Install dependencies with pip3 install -r requirements.txt
  • You have 2 choices
    • SIMPLE: One config.py
    • MULTIPLE SEARCHES: Multiple configurations
      • Follow the steps described in 'Add your configuration' step of the 'Docker Setup' explained above
      • Run python3 allConfigsRunner.py
  • Check Applied Jobs DATA .txt file is generate under /data folder

Debug locally in VSCode

  • in config.py
    • leave chromeDriverPath empty or add your local path to it
    • add your chromeProfilePath (instructions to find it are in the config.py)
  • under 'Run and Debug' use 'Debug EasyApply With 1 Config'
  • after the first run, add your chromeDriverPath to config.py
  • Then you might have issues with chromedriver not having the right permissions. Here is the solution for MacOS.
    • after starting the debugging at least once, you should have the chromedriver installed
    • add path to that chromedriver in config.py
    • run something like this (adjust the path to your local environment) chmod +x /Users/your_user/.wdm/drivers/chromedriver/mac_version_/version_number/chromedriver-mac-mac_version/chromedriver
    • extra step is to verify the permissions with something like: ls -l /Users/your_user/.wdm/drivers/chromedriver/mac_version/version_number/chromedriver-mac-mac_version/chromedriver

Features 💡

  • Ability to filter jobs, by easy apply, by location (Worldwide, Europe, Poland, etc.), by keyword (python, react, node), by experience, position, job type and date posted.
  • Apply based on your salary preferance (works best for job offers from States)
  • Automatically apply single page jobs in which you need to send your up-to-date CV and contact.
  • Automatically apply more than one page long offers with the requirements saved in LinkedIn like experience, legal rights, resume etc.
  • Output the results in a data txt file where you can later work on.
  • Print the links for the jobs that the bot couldn’t apply for because of extra requirements. (User can manually apply them to optimize the bot)
  • Put time breaks in between functions to prevent threshold.
  • Automatically apply for jobs.
  • Automatically run in the background.
  • Runs based on your preferences.
  • Optional follow or not follow company upon successful application.
  • Much more!

In Detail Feature Table

Category Available In the works
Supported Browsers Chrome
Headless(invisible) Browser
Login with Credentials
Filter offers based on job location
Filter offers based on keyword
Filter offers based on experience level
Filter offers based on date posted
Filter offers based on salary
Filter offers based on recent or relevent
Blacklist companies that you don't want to apply
Blacklist offer titles that you don't want to apply
Follow or unfollow companies after application
Answer skipped unanswered questions #9
Use AI to fill and answer skipped unanswered questions #12
Don't apply to jobs posted by a Hiring member #11
Output file in txt format
Output file in csv(excel) format #10

If you would like to see a specific feature developed, please open an issue or suggest it in our Discord community

Demo 🖥

banner 1 2 2022-09-11_18-08 2022-09-11_18-09

Motivation for this fork

It started out as few fixes to the out-dated functionality (due to LinkedIn's HTML changes).

Now, the main motivation is to make it very easy to use for tech savvy individuals with basic knowledge of python and Docker. The secondary motivation is to add answering to questions as part of the free functionality compared to the original repo.

Additionally, @GabeGiro is developing a user friendly, closed-source solution. If you want to be one of the first ones to try it out, join the Discord community.

Contribution

  • Fork the repository
  • Pick (or create) an issue you want to work on. Assign yourself to the issue (or ask to be assigned to)
  • Create a branch
  • Link the branch to the issue
  • When you are done, open a PR (pull request) - add @GabeGiro as a reviewer
  • We might go back and fourth few times and after your PR is approved, you will use "Squash and merge"

Frequently Asked Questions

How to install and run the bot?
To install the bot simply clone the repo, install required packages (these are dependencies making the bot run properly), enter your credentials & edit the config file based on your preferences and run the bot with the command python3 [thePlatformName].py

To run the bot you need Python (general-purpose programming language), Pip (package manager for Python), Selenium (for browser automation) and some dependencies to be installed on your device. For more information and details, you can check the installation steps explained in this README file.
Instalization is too complicated can you make it easier?
Yes, we are trying to improve the process of instalization meanwhile you can purchase and use the step by step instalization tutorials to install the bot properly on your device
How much does it cost & how can I pay?
The free version comes with an open-source license that you can change & modify. For paid versions you can visit original developer's project for more info.
Would I get banned or my account be blocked?
No, since you run the bot on your own device and the traffic is coming from your own address, the risks of getting banned from any of the websites we support is very low. This is because you run the bot on your own device, your traffic will be similar with your own actions and the bot will act humanely meaning it will perform stopping waiting and skipping actions randomly. Meanwhile we dont recommend applying more than 200 jobs per day via job apply bot.
I have an error while running the bot, how can I fix?
When you have an error related to the bot, please check the github project first. Someone else also might post a similar error. If that doesn't work kindly submit your issue.
What are the terms and rules of using these bots?
The free version comes with an open source license. You are free to modify and work in any way you want.
Linkedin pro bot will apply unanswered / additional questions?
Yes and no. It can answer a question based on Linkedin’s default value from previous applications of yours. The unanswared questions will stay unanswared but we are working on the solution for that. If you want to be one of the first ones to use this feature, join our [Discord community](https://discord.gg/ab6XPEWN)
Do you have a bot for x website?
No, we only have the [Discord community](https://discord.gg/ab6XPEWN)

Checkout the original repo

Without https://github.com/wodsuz/EasyApplyJobsBot , this repository might have never happened. Checkout his repo for a different Easy Apply experience :)

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages

  • Python 100.0%