Pooled Job Scraper
pooled-job-scraper is published on PyPI and provides a CLI for scraping business careers pages, extracting listings, and generating a unique delta against the April 2026 baseline dataset.
PyPI package:
Platform Links
How They Fit Together
jobpool.liveis the open data pool and hydration surface.
Use this scraper to discover and normalize job listings, then review unique delta rows before promoting data into the pool workflow.mewannajob.comis the consumer-facing experience for browsing and using listings data.
Data prepared through the pool process ultimately supports downstream job discovery use cases there.
Documentation Surfaces
- Public pool context and hydration navigation: jobpool.live
- Hydration docs in this repository:
pool/hydration/docs/ - Scraper implementation in this repository:
scripts/generic_job_listings_scraper.py
Install
Windows
py -m pip install --upgrade pooled-job-scraper
WSL / Linux / macOS
python3 -m pip install --upgrade pooled-job-scraper
Usage
job-scraper \
--business-url https://mossyhonda.hireology.careers/ \
--company-name "Mossy Honda" \
--output output/mossy-scraped.csv \
--unique-output output/mossy-unique.csv
Live Progress + Rate Controls
The CLI now shows a live status bar with:
- percent complete
- ETA
- observed request rate (req/s)
- derived safe request rate from observed site limits (
429,Retry-After, andX-RateLimit-*headers)
During runs, a persistent prompt stays active until completion:
rate-control>
Supported prompt commands:
rate <rps>(example:rate 1.2)delay <seconds>(example:delay 0.8)auto(return to adaptive pacing)status(show current derived limits/rate)help
Disable the interactive prompt when needed:
job-scraper \
--business-url https://mossyhonda.hireology.careers/ \
--company-name "Mossy Honda" \
--no-control-prompt \
--output output/mossy-scraped.csv \
--unique-output output/mossy-unique.csv
Field Enrichment + Limits
The scraper now enriches records when source pages are sparse:
- Derives
job_summarywhen absent. - Derives
job_posted_datefrom available text/URL patterns, with ingest date fallback. - Derives
job_industriesfrom curated company+industry hints, baseline company patterns, and keyword hints. - Applies sensible per-column word caps for listing-style data quality.
Default Cache Behavior
By default, unique rows are posted to:
https://jobpool.live/api/scrape-cache
job-scraper \
--business-url https://mossyhonda.hireology.careers/ \
--company-name "Mossy Honda" \
--output output/mossy-scraped.csv \
--unique-output output/mossy-unique.csv
The scraper infers user_name from local environment or git config and sends:
user_namerequest_timestampsource_business_urlslistings(standard listing fields plus any additional discovered fields)
Disable Cache Submission
Use the only cache-related flag when you need to skip cache persistence:
job-scraper \
--business-url https://mossyhonda.hireology.careers/ \
--company-name "Mossy Honda" \
--disable-cache \
--output output/mossy-scraped.csv \
--unique-output output/mossy-unique.csv
Cache API
POST /api/scrape-cachestores a scrape request payload.GET /api/scrape-cache?limit=25&user_name=<name>returns recent cached submissions.GET /api/scrape-cache?leaderboard=1&leaderboard_limit=20returns GitHub user leaderboard data withpreprod_recordsandprod_records.
Publishing Flow
Publishing is automated through:
.github/workflows/publish-pypi.yml
Behavior:
- Triggers on push/merge to
main. - Builds distributions from
pyproject.toml. - Checks whether the current version already exists on PyPI.
- Publishes only when the version is new.
- Skips cleanly when that version already exists.
To release a new version:
- Bump
project.versioninpyproject.toml. - Merge to
main. - Wait for the publish workflow to complete.
Metadata
Release files for pooled-job-scraper 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pooled_job_scraper-0.1.3.tar.gz | 22.0 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pooled_job_scraper-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.8 kB
Release files / pooled_job_scraper-0.1.3.tar.gz
| Download URL | pooled_job_scraper-0.1.3.tar.gz |
|---|---|
| Size | 22.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a6e3a90893ae3af62945ea6b3548e74bd50bf33acb5928929fe6251eee96ddce
|
|
BLAKE2b-256 checksum How to use checksums |
00722af62eb451f36f983f896b60a92712b3b5e22589cc9b6ecd6e9bf869c8c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 22, 2026.
Transparency logRelease files / pooled_job_scraper-0.1.3-py3-none-any.whl
| Download URL | pooled_job_scraper-0.1.3-py3-none-any.whl |
|---|---|
| Size | 20.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4df86025f59a95ac36b5eee8621ba1e1a14c3afb5e8ab91a6c67b71d659954ed
|
|
BLAKE2b-256 checksum How to use checksums |
570032e306b2ef3a096bfd4744e9a2ed12330c8a61a4656a2d039909031c4200
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 22, 2026.
Transparency logSecurity for pooled-job-scraper 0.1.3
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pooled_job_scraper-0.1.3.tar.gz
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 Apr 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.