Automate searching for jobs and submitting applications on LinkedIn using OpenAI.
Full Demo Videos
demo-full-part1.mov
demo-full-part2.mov
- Installation
- Usage (How to run the LinkedIn AI GUI App)
- Searching for Jobs
- Submitting Job Applications
- Generating Custom Cover Letters
- Viewing and Managing your Saved Jobs DB
- Contributing
- License
With over 88% of companies using AI in their recruitment processes in 2024 and applicants requiring hundreds of applications per offer, leveraging AI for your job search has become essential to keep up.
Your application is most likely being read by an AI tool—so why not have it written by one too?
LinkedIn AI streamlines your job search process, allowing you to find relevant job postings efficiently.
It leverages LinkedIn's advanced search filters and SouperScraper
to search through the hundreds of applications and pinpoint opportunities that match your criteria, saving you time and effort.
LinkedIn AI automates the repetitive and time-consuming task of filling out job applications.
Using your resume and previously provided answers stored in your Jobs DB, the AI can answer application questions accurately, making the submission process faster and more consistent.
LinkedIn AI automates cover letter writing and editing to tailor your application to address the specific requirements of each job.
Using your resume, previous answers, and example cover letters you provide the AI can generate a custom cover letter for each job based on the posting's details and, if available, the hiring manager's name.
LinkedIn AI provides an intuitive interface to view and manage your saved jobs. You can filter, update, and organize your job applications, ensuring you stay on top of your job search and never miss an opportunity.
Additionally, LinkedIn AI collects Hiring Manager information with each job listing. Future updates will include features for custom message sending and automatic connection requests, enhancing your networking capabilities directly through the application.
LinkedIn AI can be installed from PyPi or from source.
pip3 install linkedin-ai
git clone https://github.com/LucasFaudman/linkedin-ai.git
cd linkedin-ai
python3 -m venv .venv
source .venv/bin/activate
pip3 install -e .
IMPORTANT: After installing
linkedin-ai
, you will still need to download the correct Chromedriver AND setup your OpenAI API Key.
Download the appropriate ChromeDriver for your Chrome version using getchromedriver.py (command below) or manually from the ChromeDriver website.
To find your Chrome version, go to
chrome://settings/help
in your browser.
getchromedriver
Instructions to setup your OpenAI API key can be found at this link
Once you have the path to your chromedriver and OpenAI API Key you are ready to use LinkedIn AI.
Run the command below to open the LinkedIn AI App:
linkedin-ai
This will use the default config path
./linkedin-ai-config.json
To specify a custom config path use the --config/-c
argument:
linkedin-ai --config /path/to/custom/config.json
Startup command, manual login (auto login can be enable in settings), and post-login initialization:
LinkedIn AI supports all LinkedIn Search Filters and Job Collections.
NOTE: Available filters may differ based on the Search Term. Click the
Update Filter Options
button to refresh the filters in the UI.
Any jobs you are not interested in can be removed by selecting them and clicking Remove Selected Items
.
NOTE: This will prevent these jobs from being written to your Jobs DB.
The first filter Easy Apply
determines if the job application can be completed natively through LinkedIn.
IMPORTANT: All jobs can be searched for, stored in the Jobs DB, scraped, opened, etc, but currently ONLY
Easy Apply
applications can be submitted by the AI.
LinkedIn AI uses your Resume and your answers to previous job applications questions stored in the Jobs DB as the context to answer future questions about related topics.
In the Settings
tab you can select the path you to your Resume as a plaintext .txt
file.
IMPORTANT: Anything in this file will be considered by the AI on every question while questions in the DB will only be considered when relevant to the current question.
If you have a PDF convert it or copy it with CTRL+A
, CTRL+C
, echo 'CTRL+V' > resume.txt
. (Might add auto .pdf
->.txt
with PikePDF or similar in future if it’s requested.)
At first, the AI will frequently respond with ANSWER UNKOWN
since it does not have enough context in the DB yet to answer tough questions about things not in your resume.
When this happens you will be prompted to provide the answer, and next time the AI sees a similar question, your related answers will be used to determine the answer.
Any questions you have already answered in previous job applications on LinkedIn will automatically be added to your DB for future use.
IMPORTANT: Begin by first doing applications with
Ask for Answer When Needed
andVerify AI Provided Answers
both checked. Once you are satisfied with the accuracy of the AI answers, then you can allow it to run fully autonomously by uncheckingVerify AI Provided Answers
.
Determine the level of autonomy given to LinkedIn AI and when it should stop to ask you to approve, edit, or enter an answer.
Automation Option | Checked | Unchecked |
---|---|---|
Ask for Answer When Needed |
Ask you for the answer when the AI is selects ANSWER UNKNOWN . Save the answer you provided, question, and choices, in the DB for future context. |
Sets job status to needs answer , save progress on LinkedIn, and continue with next application. Answer is NOT saved in the DB. |
Verify AI Provided Answers |
Always ask you to verify/edit AI answers before submitting, even when the AI selects an answer it thinks is correct. Keep this enabled until you are satisfied with AI answers. | Use the AI provided answers to fill out the application, without asking you each time. Answers are saved to the DB to avoid wasting tokens on repeat questions. |
Ask for Answer When Needed |
Verify AI Provided Answers |
AI Selects an Answer | AI Selects ANSWER UNKNOWN |
Action |
---|---|---|---|---|
Checked | Checked | Ask you before submitting to approve or edit the answer. | Ask you before submitting to enter or select the answer. | |
Unchecked | Checked | Ask you before submitting to approve or edit the answer. | Skip question, set job status to needs answer , save progress for later, and begin next application. |
|
Checked | Unchecked | Submit the answer without asking. | Ask you before submitting to enter or select the answer. | |
Unchecked | Unchecked | Submit the answer without asking | Skip question, set job status to needs answer , save progress for later, and begin next application. |
Feature is currently enabled and working, but UI improvements coming soon. Docs will be finished once UI is stable.
The Default Cover Letter Path
setting is the file that will either be used as:
- A generic cover letter to upload to all jobs that request a cover letter.
- An example cover letter for the AI to use to understand your writing style.
Determines how LinkedIn AI will handle jobs that ask for cover letters.
Cover Letter Option | When an Job Asks for a Cover Letter |
---|---|
Skip Cover Letters |
Save application and sets job status to needs cover letter |
Use Default Cover Letter for all jobs |
Upload the file at Default Cover Letter Path |
Generate Custom Cover Letter for each job |
AI will use Default Cover Letter Path as an example of how you write, then write a custom cover letter based on the job description, hiring manager's name, your Resume .txt file, and your answers in the Db |
NOTE: When using
Generate Custom Cover Letter for each job
the file atDefault Cover Letter Path
can include any number cover letter examples as long as it is clear to the AI where each one begins and ends.
Feature is currently enabled and working, but UI improvements coming soon. Docs will be finished once UI is stable.
Contributions welcome! Whether you're interested in fixing bugs, adding new features, improving documentation, or sharing ideas, any input is valuable.
-
Fork the Repository: Start by forking the repository on GitHub. This will create a copy of the project in your own GitHub account.
-
Clone the Repository: Clone the forked repository to your local machine.
git clone https://github.com/LucasFaudman/linkedin-ai.git cd linkedin-ai
-
Create a Branch: Create a new branch for your changes.
git checkout -b my-feature-branch
-
Make Changes: Make your changes in the code, documentation, or both.
-
Commit Changes: Commit your changes with a descriptive commit message.
git add . git commit -m "Description of the changes"
-
Push Changes: Push your changes to your forked repository.
git push origin my-feature-branch
-
Create a Pull Request: Go to the original repository and create a pull request from your branch. Provide a detailed description of your changes and any relevant information.
If you encounter any bugs, have suggestions, or need help, please open an issue on GitHub. Make sure to provide as much detail as possible, including steps to reproduce the issue, error messages, and screenshots if applicable.
See LICENSE for details.