This project leverages AI, specifically GPT models, to automate job applications on LinkedIn. It intelligently applies to jobs with the "Easy Apply" option and auto-fills application forms behalf of you.
Before diving into the project, you'll need to create two essential files with the provided template:
- Text File: Contains your resume and other relevant details to fill LinkedIn's Easy Apply forms. For guidance, refer to
kodakandlasrikar99.txt
. The filename for the text file should correspond to the initial segment of your email address used on LinkedIn. For example, if your email address is [email protected], the file should be named kodakandlasrikar99.txt. - JSON File: Houses various configuration settings for the job application process. The filename for the JSON file should correspond to the initial segment of your email address used on LinkedIn. For example, if your email address is [email protected], the file should be named kodakandlasrikar99.json.
Refer to the example files in this project for guidance on creating your own. As a Machine Learning Engineer, I have crafted both the JSON and Text files specifically for applying to Machine Learning roles, aligning closely with my preferences. Feel free to use these as templates to adapt for other roles.
The JSON file is crucial for tailoring the application process to your preferences. Below is the explanation of each key:
username
: Your LinkedIn account email.password
: Your LinkedIn account password.roles1
: List of keywords for desired job titles. The bot will apply if the job title contains any of these words.not_roles1
: List of keywords to avoid in job titles. The bot will not apply to jobs with these keywords in the title.keywords
: List of skills or job roles for the LinkedIn job search.locations
: List of preferred job locations.remote
: Set totrue
orfalse
. If true, the bot searches for remote jobs.hybrid
: Set totrue
orfalse
. If true, the bot searches for hybrid jobs. If bothremote
andhybrid
are true, it searches for both types. If both are false, it considers all job types (onsite, remote, hybrid).telegram_token_id
: Your Telegram bot token for receiving updates on job applications and filled forms. To learn how to obtain the Telegram bot token ID and chat ID, refer to this Youtube video.telegram_chat_id
: Your Telegram chat ID for receiving updates.token_cookie_chatgpt
: ChatGPT cookie token. To obtain, visit ChatGPT, press F12 for developer tools, find the__Secure-next-auth.session-token
cookie, and copy its value.headless_mode_chatgpt
: Set totrue
orfalse
. If true, runs ChatGPT UI browser in headless mode. Currently, set it to false due to a known bug.model_name
: The GPT model name (e.g., "gpt-4", "gpt-3.5").gemini_api_key
: API key for Google Gemini. Obtain it here.chatgpt_timeout
: Time in seconds (default 120) to wait before retrying a request in case of an error with ChatGPT response extraction.GPT_backend_selection
: Choose between "chatgpt" and "gemini". Use "chatgpt" for ChatGPT token or "gemini" for Gemini API key.
To run this program, you need to run python3 apply.py your_first_segment_mail_address
, Here the command line argument is the initial segment of your email address used on Linkedin. For example, if your email address is [email protected], then you will have to run python3 apply.py kodakandlasrikar99
- The project uses the ChatGPT web UI for response extraction, offering a cost-effective solution.
- Choose GPT-4 if you are subscribed to ChatGPT Plus else choose GPT-3.5.
- Gemini might be a better option if ChatGPT is slow, though currently, GPT-3.5 and GPT-4 seems more accurate in answering questions in this task than Gemini. But if you find Gemini is performing well for you, please free to use it.
- This project uses Undetected-Chromedriver to keep the bot hidden and prevent it from being blocked.
If you find this AI-driven job application bot helpful or interesting, please consider giving it a star on GitHub. Your support helps to increase the visibility of the project and encourages future developments and improvements. Just click on the star icon at the top of the page – it means a lot!
This project is licensed under the Apache License.
LinkedIn may block your account if it detects automation tools being used without permission. This has happened to me several times. To mitigate this risk, the code includes sleep intervals and uses an undetected-chromedriver, aiming to reduce the chances of detection by LinkedIn. However, please be aware that LinkedIn might still detect and permanently block your account. I am not responsible for any account suspensions or bans that may occur as a result of using this tool.
Use this tool wisely and at your own risk. Happy job hunting! 🎯🤖
Disclaimer: This project is not affiliated with LinkedIn or OpenAI. Use responsibly and adhere to LinkedIn's terms of service.