LinkedInWebScraper
LinkedInWebScraper is a production-minded Python library and scheduled job runner for collecting LinkedIn job listings, normalizing the data, persisting run history, and exporting reusable datasets.
Highlights
- Canonical package namespace under
linkedin_web_scraper - Typed programmatic config for single scrapes and TOML runtime config for CLI and scheduled runs
- Managed artifacts under
artifacts/jobs,artifacts/logs, andartifacts/state - SQLite-backed persistence through a clean application storage port
- Package CLI with
scrape once,scrape daily,export, and--dry-run - Optional OpenAI enrichment built on the current Responses API
- Runnable examples under
examples/ - Auto release automation that waits for green CI and Docs runs on
main
Install
pip install LinkedInWebScraper
pip install LinkedInWebScraper[openai]
pip install -e .[dev]
Quickstart
from linkedin_web_scraper import (
JobScraperConfig,
LinkedInJobScraper,
RemoteType,
configure_logging,
)
logger = configure_logging(filename="example.log")
config = JobScraperConfig(
position="Data Analyst",
location="San Francisco",
remote=RemoteType.REMOTE,
)
jobs = LinkedInJobScraper(logger=logger, config=config).run()
print(jobs.head())
Examples
Run the example scripts from examples/:
python examples/example.py
python examples/example_advanced_config.py
python examples/example_openai.py
The OpenAI example requires OPENAI_API_KEY in the environment.
CLI Runtime
linkedin-webscraper scrape once --dry-run
linkedin-webscraper scrape daily
linkedin-webscraper export --run-id <run-id>
Use runtime.example.toml as the template for a real runtime.toml. The root runtime scripts remain available for the daily and once workflows:
python main.py
python process_ds_jobs.py
Docs
- Getting Started
- Configuration
- Runtime and Deployment
- Release and Automation
- Validation
- API Reference
Development
Run the local gate before risky pushes or merges:
python -m tox -e preflight
For a faster smoke-only path:
python -m tox -e smoke
The detailed validation matrix and release flow live in docs/development/validation.md and docs/development/release-and-automation.md.
License
This project is licensed under the MIT License.
Release files for LinkedInWebScraper 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| linkedinwebscraper-1.1.1.tar.gz | 55.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| linkedinwebscraper-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:107.8 kB
Release files / linkedinwebscraper-1.1.1.tar.gz
| Download URL | linkedinwebscraper-1.1.1.tar.gz |
|---|---|
| Size | 55.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ad0b214a1e577608d7c44db4d2f07d6742f8c383b3cdd15631c0979feb2faae
|
|
BLAKE2b-256 checksum How to use checksums |
53835343f06660b813a7c9025a4a6533122dbdbd1e9022f36edfd1a1f1422c96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 22, 2026.
Transparency logRelease files / linkedinwebscraper-1.1.1-py3-none-any.whl
| Download URL | linkedinwebscraper-1.1.1-py3-none-any.whl |
|---|---|
| Size | 52.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e00c939d39ca729656acbd9a46e02de4c0a73e236efdd2433ff7ce56262fdf8e
|
|
BLAKE2b-256 checksum How to use checksums |
67241ab919241a73e0711338ed6faa984bf7adf5a62475168c5bafe1c6e3abfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 22, 2026.
Transparency log