This script automates the process of applying to jobs on the Lever platform. It uses Selenium to interact with web elements and fill out application forms based on predefined configurations and answers.
- Profile Selection: Dynamically select a profile from available YAML configuration files.
- Resume Upload: Automatically uploads the resume specified in the configuration.
- Form Filling: Fills out basic fields such as name, email, phone, etc., based on the selected profile.
- Custom Questions: Handles custom questions using predefined answers from a CSV file.
- Logging: Logs the status of each application attempt to a CSV file.
- Error Handling: Retries failed application submissions and logs errors for debugging.
- Python 3.x
- Selenium
- undetected-chromedriver
- webdriver-manager
- pandas
- fuzzywuzzy
- python-Levenshtein
- PyYAML
-
Install Dependencies:
pip install -m requirements.txt
-
Prepare Configuration Files:
- Place your YAML configuration files in the
config/directory. - use
configuration.yamlfile as reference to create the YAML config file. - Ensure your resume file path is correct in the YAML configuration.
- Prepare a CSV file named
answers.csvwith columnsQuestionandAnswerfor custom questions.
- Place your YAML configuration files in the
-
Job Links:
- Prepare a CSV file named
job_links.csvin thejobs/directory with columnscompany,platform,job_id, andplatform_link.
- Prepare a CSV file named
-
Run the Script:
python main.py
-
Follow the Prompts:
- Select the profile you want to use for the application.
- The script will process each job link in the
job_links.csvfile and attempt to submit the application.
- Application status logs are saved in
logs/application.csv.
- Ensure ChromeDriver is compatible with your installed version of Chrome.
- The script includes a pause for manual review before submitting the application.
- Adjust the locators in
locators/lever_locators.jsonif the web elements change on the Lever platform.