With this tool, you can easily automate the process of applying for jobs on LinkedIn!
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
-
Install Selenium. Use
pip
to install the Selenium package:pip install selenium
-
Selenium requires a driver to interface with the chosen browser. Make sure the driver is in your path, you will need to add your
driver_path
to theconfig.json
file.I used the Firefox driver, you can download it here. You can also download drivers for Chrome, Edge, or Safari, depending on your preferred browser.
-
Clone the repository:
git clone https://github.com/Gabo-Tech/EasyApply-Linkedin.git cd EasyApply-Linkedin
-
Install the necessary packages:
pip install -r requirements.txt
-
Update the
config.json
file with your information:{ "email": "example@example.com", "password": "securePassword123!", "keywords": ["Web Developer", "JavaScript", "React"], "keywordsToAvoid": ["C++", ".NET"], "locations": ["New York", "Los Angeles", "San Francisco"], "driver_path": "/usr/local/bin/geckodriver", "sortBy": "R", "filters": { "easy_apply": true, "experience": ["Internship", "Entry level", "Associate", "Mid-Senior level", "Director", "Executive"], "jobType": ["Full-time", "Part-time", "Contract", "Internship", "Temporary"], "timePostedRange": ["Any Time", "Last Month", "Past Week", "Past 24 hours"], "workplaceType": ["Remote", "Hybrid", "On-site"], "less_than_10_applicants": true } }
-
Update the location codes in the script:
LOCATION_MAPPING = { "Canada": "101174742", "Portugal": "100364837", "Switzerland": "106693272", "United States": "103644278", "Belgium": "100565514", "Netherlands": "102890719", "DACH": "91000006", "Benelux": "91000005", "European Union": "91000000", "European Economic Area": "91000002", "Germany": "101282230", "Spain": "105646813", "United Kingdom": "101165590" }
You can find the code in the
geoId
found in the LinkedIn URL after doing a job search. These are the correct ones if you don't want to search elsewhere, but there are many more.
- Run the application:
python main.py
- Automated Job Applications: Automatically apply to jobs that match your keywords and location.
- Filter Options: Customize filters for experience level, job type, time posted, workplace type, and more.
- Logging: Keep track of errors and the companies you've applied to.
You can customize the job search and application process by editing the config.json
file:
- email: Your LinkedIn email address.
- password: Your LinkedIn password.
- keywords: Keywords for finding specific job titles (e.g., "Machine Learning Engineer", "Data Scientist").
- keywordsToAvoid: Keywords to exclude from your search.
- locations: Locations where you are currently looking for a position.
- driver_path: Path to your downloaded WebDriver.
- sortBy: Sort order for job listings.
- filters: Various filters to narrow down the job search (e.g., easy apply, experience level, job type, etc.).
Unit tests mock the Selenium WebDriver to test methods in isolation without making actual web requests.
Run the unit tests:
python unit_tests.py
End-to-end tests using pytest
and selenium
require an actual web browser to run.
Run the E2E tests:
pytest e2e_tests.py
Please feel free to comment or give suggestions/issues. Fork and submit pull requests for any enhancements or bug fixes.
This project is licensed under the MIT License - see the LICENSE file for details.