Giter Club home page Giter Club logo

linuxuser255 / linkedin-application-bot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aminblm/linkedin-application-bot

0.0 0.0 0.0 207 KB

A python bot to apply all Linkedin Easy Apply jobs based on your preferences. The code contained within was updated using Python 3.12

Home Page: https://www.linkedin.com/pulse/open-source-project-1-linkedin-application-bot-your-amin-sa8af/

License: GNU General Public License v3.0

Python 99.73% Dockerfile 0.27%
automation bots linkedin python3 selinium

linkedin-application-bot's Introduction

LinkedIn Application Bot πŸ€–

linkedineasyapplygif

A Python bot that AUTOMATES all LinkedIn Easy Apply jobs based on your preferences.

  • Python 3.12 used in this fork
  • Two options are avalible to use this bot, either with entering password or without, fully secure no credentials are stored.
  • Export all results and offers as txt file
  • Fully customizable job preferences
  • Can be used for many job search websites such as Linkedin, Glassdoor, AngelCo, Greenhouse, Monster, GLobalLogic and Djinni.

End Goal: what's this suppossed to do ?

1. Launch just one selenium browser instance & auto logged into your account using your firefox profile

2. have linkedin.py search and apply for all jobs based on your config.py specs

3. Have it iterate/repeate this process untill all jobs have been applied to

4. and all non fast apply jobs have had their urls logged in /data/urlData.txt


TO DO - Fixes and Changes

In order of most to least important

  • Follow PEP 8 Syle Guide coding conventions:
  • Change all Variable and Function names to lower case: linkedin.py & utils.py
  • Document code: Implement Type Hints & reStructuredText markup and doctrings
  • linkedin.py - document
  • utils.py - Apply Type Hints only
  • Sort out the Firefox Profile config
  • **Auto login with the test.py script:**Resoved by creating a env dir and a .env file containing firefox_profile_root_dir = r""
  • Refactor and clean up the Linkedin Class block of code in linkedin.py
  • **If possible, AUTO LOGIN using firefox profile in the .env file linkedin.py script if possible**
  • Then search for and apply to jobs
  • Fix the find_element "xpath" issues.
  • Eliminate launching a new browser/login session with each iteration: Using Firefox profile resolves this
  • Your Firefox profile can be viewed: navigate to: about:profiles in the URL
  • Conduct all searches and applications within one browser session.
  • Forget Chrome, Just use firefox, it's easier to automate.
  • ---
  • Use email & password to login. The Firefox browser user profile way is not working.
  • This means you need to augment the code to only login once and
  • then use the same session to conduct all searches and applications.
  • If you can refactor & use less code, then do so.

Goals:

The following process needs to take place:

  • The first iteration of this bot will log you in, use the job search criteria specified in config.py, then search for, and apply to, one job.

  • The second iteration of this code will use the current browser, and logged-in session, skiping the login process that occurs in step one. The bot will then continue to crawl/search for, and apply to, the next job, based on the defined criteria you specified in config.py

  • Step two will repeat until all jobs, whithin the specified parameters have been applied to.

  • Maybe add support to other major job seeking websites:

  • Indeed

  • Glassdoor

  • AngelCo And possibly Greenhouse, Monster, GLobalLogic, and djinni.


Installation πŸ”Œ

  • clone the repo git clone https://github.com/LinuxUser255/linkedin-application-bot.git
  • Make sure Python and pip is installed
  • Install dependencies with pip3 install -r requirements.yaml
  • Either create firefox Profile and put its path on line 8 of config.py or enter your linkedin credentials line 11 and 12 of config.py.
  • Modify config.py according to your demands.
  • Run python3 linkedin.py
  • Check Applied Jobs DATA .txt file is generate under /data folder
  • Selenium Documentation

Features πŸ’‘

  • Ability to filter jobs, by easy apply, by location, keyword, by experience, position, job type and date posted.
  • See config.py, this is where you set job filtering
  • 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, 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, due to extra requirements.
  • Put time breaks in between functions to prevent threshold.
  • Automatically apply for jobs.
  • Automatically run in the background.
  • Compatible with Firefox and Chrome.
  • Runs based on your preferences.
  • Optional follow or not follow company upon successful application.
  • Much more!

Tests πŸ”¦

There is test script that can be run to test the dependencies, and functionality of the bot.

  1. Located in the repo's parent directory is a script named test.py. this will check if Python, pip, selenium, dotenv and Firefox are correctly installed on your system.
  2. Run python3 test.py (or click the green arrow on the line if __name__ == "__main__":), this will output if the Selenium and gecko driver is able to retrieve data from a website. If it returns an error make sure you have correctly installed selenium and gecko drive
  3. It will also try to log in to your Linkedin account based on the path you defined in the .env file. If its giving an error make sure the path exists and you created firefox profile, logged in manually to your Linkedin account once. Here is the result you should get after running test files, test1

How to Set up (long old way) πŸ› 

This tutorial briefly explains how to set up LinkedIn Easy Apply jobs bot. With few modifications you can make your own bot or try my other bots for other platforms.

  1. Install Firefox or Chrome. I was using Firefox for this so I will continue the usage of it on Firefox browser. Process would be similar on Chrome too.
  2. Install Python.
  3. Download Geckodriver put it in Python’s installation folder.
  4. Install pip, python get-pip.py
  5. Install selenium pip install selenium
  6. Clone the code
  7. Create a profile on Firefox, about:profiles
  8. place your profile filepath inside the firefox_profile_root_dir = r"" located in /env/.env
  9. Launch new profile, go Linkedin.com and log in your account
  10. Copy the root folder of your new profile, to do that type about:profiles on your Firefox search bar, copy the root folder C:---\your-profile-name.
  11. Paste the root folder on the config.py if the firefoxProfileRootDir file
  12. Modify/adapt the code and run in config.py to preferences.
  13. After each run check the jobs that the bot didn’t apply automatically, apply them manually by saving your preferences
  14. Next time the bot will apply for more jobs based on your saved preferences on Linkedin.
  15. Feel free to contact me for any update/request or question.

Demo πŸ–₯

banner 1

Future Implementations

  • See the TO DO list above

linkedin-application-bot's People

Contributors

linuxuser255 avatar aminblm avatar cheseremtitus24 avatar thesaldave avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.