A Python-based tool that automates job searches on LinkedIn, extracts job listings, and exports the data. Built with Selenium for browser automation and optionally integrated with a PyQt6 GUI.
linkedin_job_tracker/
├── app/
│ ├── __init__.py
│ └── main.py # Entry point: runs from CLI or GUI
│
├── services/
│ ├── __init__.py
│ └── linkdin_scraper.py # Contains the LinkedInJobScraper class
│
├── ui/
│ ├── __init__.py
│ ├── data.py # Database setup
│ └── ui.py # Optional PyQt6 GUI window & widgets
│
├── requirements.txt # Python dependencies
├── README.md # Project README (this file)
├── job_list.csv # Stores jobs
└── linkedin_cookies.json # Stores the cookies for login
- ✅ Automated LinkedIn login
- 🔎 Keyword + location-based job search
- 🧩 Search filters and scrolling
- 📄 Extraction of job listings
- 💾 Export to CSV or database
- 🎨 Optional PyQt6 GUI interface
- Install Python 3.11+
- Install Mozilla Firefox
- Download the appropriate WebDriver (e.g., ChromeDriver)
- Clone the repository
git clone https://github.com/DeathHashira/linkedin_job_tracker.git
cd linkedin_job_tracker- Set your credentials and driver path in the code
Edit values directly in the relevant Python files (e.g., login credentials, driver path) as there is no .env file used.
python -m app.mainThis command will:
- Launch the browser
- Log in to LinkedIn
- Perform search and apply filters
- Extract job information
- Export data to CSV or database
class LinkedInJobScraper:
def __init__(self, driver)
def login(self)
def search_combinations(self)
def search(self)
def filter(self)
def go_to_job_url(self)
def load_jobs(self)
def extract_jobs(self)
def export_jobs(self)All functionality is handled inside this single class using Selenium WebDriver.
Run tests using:
pytestTests ensure logic and data handling works correctly. Selenium automation is not tested in this setup.
Exported job data can be saved as:
- CSV files
- SQLite database (default)
- You can modify the
export_jobs()method for additional formats
For issues, feature requests, or contributions, please open an issue or submit a pull request.
Happy job hunting! 🚀