# Changelog of ITJobs.pt Scraper \[Just 💰$1.5] — Portugal Tech Jobs (`blackfalcondata/itjobs-scraper`) Actor

- **URL**: https://apify.com/blackfalcondata/itjobs-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/blackfalcondata/itjobs-scraper.md

## Changelog

### Unreleased — 2026-08-27

#### Fixed

- Incremental mode now keeps your existing history wherever it can. A run started with a
  restricted API key previously moved to a fresh store unconditionally, which meant
  re-collecting everything once. It now uses your existing store whenever it is allowed to,
  and only starts a new one if access is genuinely refused.
- Updated the underlying crawler library. A single failed storage access could previously
  leave a run hanging until its time limit instead of failing or recovering.

### 0.1.x — 2026-08-27

#### Fixed

- A search that simply matches nothing is now a successful run with zero results instead of a
  failure. The job board leaves the results list out entirely when nothing matches, which was
  read as a broken response, so a perfectly valid but narrow search failed and advised trying
  again later, which could never help. Narrow searches now finish cleanly.
- Incremental mode now works for runs started with a restricted API key. Such a run was refused
  access to its own saved state and crashed, and because the refusal was reported as a generic
  error there was nothing to act on. It now uses a state store the run is allowed to create for
  itself.
- If saved state genuinely cannot be opened, the run now names the one setting that changes the
  outcome instead of the generic "please try again later", which could never come true for this
  failure.

### Unreleased

- Removed the non-functional details toggle. Full descriptions and published contact data remain included in the standard output.

### \[0.1.6] - 2026-05-01

#### Added — `startUrls` (multi-search-URL support)

- Paste raw search URLs from itjobs.pt — each URL becomes one search task; results
  merged and deduped by JobId across all tasks.
- Recognized format: `https://www.itjobs.pt/emprego?keywords=...&location=...`
- Detail URLs (`/oferta/...`) are explicitly rejected.
- Per-task `searchQuery` field correctly attributes the originating task in
  multi-task runs.

### \[0.1.0] - 2026-04-22

#### Added

- Initial release
- Keyword search and browse-all mode via ITJobs.pt official API
- Filters: workModel, contractType, daysOld, location, maxResults
- Full description in all records (HTML, plain text, Markdown)
- Salary fields: min, max, currency, type, formatted text
- Company contact fields: email, phone, logo, URL
- Incremental mode with change detection (NEW / UPDATED / UNCHANGED / EXPIRED)
- Compact output mode for AI-agent and MCP workflows
