Skip to content

An automated LinkedIn job search tool developed in Java, leveraging Google Sheets for dynamic filter management and Selenium for browser interaction.

Notifications You must be signed in to change notification settings

aljalo/LinkedIn-Job-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkedIn Job Bot 🤖

This project logs into LinkedIn and searches for jobs using information retrieved from Google Sheets.


🧠 What Does This Bot Do?

  1. Reads login credentials and filters from Google Sheets (e.g., job title, location...).
  2. Opens a Chrome browser using Selenium.
  3. Logs into LinkedIn.
  4. Searches for jobs using the specified filters.
  5. Can be modified later to automatically apply or save results.

📁 Project Structure

LinkedInJobBot/
├── src/
│   └── main/
│       ├── java/
│       │   └── com/
│       │       └── linkedinjobbot/
│       │           ├── App.java
│       │           ├── FilterData.java
│       │           ├── GoogleSheetsService.java
│       │           ├── LinkedInJobSearcher.java
│       │           ├── auth/
│       │           │   └── LinkedInAuthenticator.java
│       │           ├── driver/
│       │           │   └── WebDriverManager.java
│       │           └── filters/
│       │               ├── LinkedInJobFilterApplier.java
│       │               └── actions/
│       │                   └── ClickFilterButtonAction.java
│       └── resources/
│           └── careerpilot-sheets-c4624e233bec.json   # Google Service Account credentials file
├── pom.xml                        # Maven project settings
├── .gitignore                    # Files to ignore when uploading the project
└── README.md                     # This file


⚙️ Prerequisites

  • Java 21
  • Maven
  • Google Service Account with read permissions for Google Sheets
  • careerpilot-sheets-c4624e233bec.json file placed inside src/main/resources/
  • ChromeDriver installed on your machine (compatible with your Google Chrome version)

🚀 How to Run

# Build the project
mvn clean install

# Run the application
mvn exec:java -Dexec.mainClass="com.linkedinjobbot.App"
🛡️ Security
CRUCIAL: Ensure that your careerpilot-sheets-c4624e233bec.json file is NEVER uploaded to GitHub. It has been added to .gitignore for this reason.
Additionally, LinkedIn login credentials (email and password) should be set as environment variables (LINKEDIN_EMAIL and LINKEDIN_PASSWORD) on your local machine for enhanced security, and not hardcoded or stored in the Google Sheet you share.

📌 Notes
You can modify SPREADSHEET_ID and RANGE inside GoogleSheetsService.java to change the data source.
The application includes waits for LinkedIn page elements to load. You can further optimize these using WebDriverWait for more robust page interactions.
✨ Future Development Ideas
Saving search results to a CSV file (already implemented).
Sending notifications via Telegram or Email.
Supporting daily automated runs via Cron Job or Scheduled Task.
Analyzing job search results.
Integrating with n8n for workflow automation.
Automated job application.
CV tailoring to match job descriptions.

👨‍💻 Developed By Ali Al-Jalo

This is a personal project aimed at automating LinkedIn job applications using Java, Google Sheets, and Selenium.

Releases

No releases published

Packages

No packages published

Languages