All notable changes to this Actor are documented here.
- Implemented the real InfoJobs.net scraping pipeline:
src/client.py
(curl-cffi, rotating chrome131/firefox133 impersonation, retry
with exponential backoff), src/parser.py (double-JSON
window.__INITIAL_PROPS__ extraction + row building),
src/scraper.py (bounded page loop, run-wide dedupe by job code,
per-page fault isolation), and src/provinces.py (54-entry Spain
province-id table, generated from a live capture).
src/models.py: ActorInput resolves province against the static
table (case-insensitive name or numeric id passthrough); ResultRow
matches spec.md's Output Shape table field-for-field.
- Live-confirmed the
provinceIds query parameter for province
filtering via a probe against the unfiltered baseline (design.md
Decision 4).
- Synced
.actor/dataset_schema.json and .actor/pay_per_event.json
(actor-start $0.01, result-emitted $0.0025/row); wrote the real
Store-listing README.md and promo.json.
- 70 tests across
test_models/test_parser/test_client/
test_scraper/test_main; ruff check and pyright both clean.