Join LinkedIn jobs to their company pages with Python
Description and use
A Python automation recipe that captures LinkedIn job postings, enriches them with verified company profiles via Apify Actors, stores results in SQLite, and outputs a reproducible JSONL file.
Problem
LinkedIn job postings often list only an abbreviated employer name or an agency, making it hard to attach reliable company metadata such as industry, size, or employee count.
Outcome
The workflow captures up to ten jobs and enriches them with verified company data, producing a byte‑for‑byte identical JSONL export on subsequent runs. It handles failures gracefully by saving jobs before company lookups and reusing existing data.
Workflow
- Download the provided Python scripts and input JSON from the gist.
- Create a Python 3.11 virtual environment and activate it.
- Run the test script to validate imports and error handling:
python test_linkedin_hiring_feed.py. - Execute the capture command to fetch jobs:
python linkedin_hiring_feed.py capture linkedin-hiring-input.json berlin-hiring. - Run the enrich command to lookup company profiles:
python linkedin_hiring_feed.py enrich berlin-hiring. - Inspect the resulting
hiring.sqlite3,hiring-feed.jsonl, andruns/folder for data and receipts. - Repeat capture and enrich on later days; the script will skip already stored jobs and pending company URLs.
- Use the
job_idfield as a key when importing the JSONL into a spreadsheet or database.
Evidence
The first capture stored three jobs, including their complete public descriptions. Enrichment attached three company profiles.
The resulting JSONL file matched byte for byte.
- Record date: 2026-09-15T19:45:55.131Z