# Changelog of Werkzoeken.nl Scraper \[Just 💰$0.9] — Dutch Job Listings (`blackfalcondata/werkzoeken-scraper`) Actor

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

## Changelog

### 2026-09-27

- Fixed: with `includeDetails` on, vacancies came back without their description (`description`, `descriptionMarkdown`, `descriptionHtml` empty) and without company profile data since around 2026-09-26. Werkzoeken.nl started blocking the page variant the actor read; it now reads the one the site still serves, and falls back to the old one if that changes back.
- Fixed: salaries on results without detail pages were off by a factor of 1,000 — "€ 5.000 - € 6.500 p/m" came out as `salaryMin` 5 and `salaryMax` 6.5. They now read 5000 and 6500. If you use incremental mode, affected vacancies show up once as updated.

### 2026-09-22

- Fixed: runs delivered zero results from 2026-09-18 onwards. Werkzoeken.nl rebuilt its results feed and every vacancy card changed shape, so nothing could be read off the search pages — and because the site also dropped the result-count marker the actor checks, the empty runs reported themselves as "no results found" instead of failing. Both the search cards and the vacancy detail pages are read again, and a search that links to vacancies the actor cannot read now fails loudly instead of returning an empty set. `experienceLevel` is the one field the site itself stopped publishing; it comes back empty until they restore it.

### 2026-08-27

- Fixed: a search URL containing a `vacancyid` no longer fails once that vacancy is taken down. Werkzoeken.nl answers "gone" for the whole search when the pinned vacancy disappears, even though the rest of your filters still work — so the run now drops the vacancy reference and runs your search anyway, and tells you to remove it from the URL. Scheduled runs that had been failing daily on this recover on their own. A URL pointing at a single vacancy page is still reported as gone, because that one really is.

### 2026-08-19

- Clearer failure when a start URL has been taken down: if every URL in `startUrls` returns "gone" from werkzoeken.nl, the run now says so and names the dead URLs in the log, instead of asking you to try again later. Retrying that input can never succeed, so scheduled runs no longer keep re-running a URL that will not come back. Pinning `startUrls` to a single `vacancyid` is the usual cause — use a search URL or the `query` input instead.

### 2026-07-16

- Faster runs on narrow searches: pagination now stops at the last page that holds results instead of walking the full page budget. Runs without a `maxResults` limit no longer spend time fetching pages that were never there. Same results, fewer requests.

### 2026-05-14

- Fixed: `maxPages` no longer silently caps `maxResults`. When you request more results than the default page budget allows, the actor now extends pagination automatically.

### 0.1.x — 2026-04-14

- Added: `descriptionHtml`, `descriptionMarkdown` output fields (triple-format descriptions for RAG/LLM pipelines)
- Added: `contentHash` output field (SHA-256 hash of content-identifying fields, for change detection and dedup)

### 0.1.x — 2026-04-14

- Added: cross-run repost detection (`isRepost`, `repostOfId`, `repostDetectedAt`)
- Added: `skipReposts` input to exclude detected reposts from output

### 0.1.7 - 2026-04-11

- Detail and company enrichment fetches now use independent network connections,
  so a blocked search request no longer slows down the enrichment phase.
- Memory allocation increased for runs fetching more than 25 results, preventing
  out-of-memory failures during full enrichment (details + company profiles).

### 0.1.6 - 2026-04-11

- README input examples updated: now shows a basic search and an incremental
  tracking example with only the relevant fields — no more verbose default dumps.

### 0.1.5 - 2026-04-11

- Actor renamed to **Werkzoeken.nl Scraper** — "Jobs" was redundant given the
  site name already means "job search".

### 0.1.4 - 2026-04-11

- Fixed `publishDate` for listings older than 30 days. Werkzoeken.nl reports
  these as "30+ dagen geleden" — the date is now correctly computed as 30 days
  before the scrape time instead of returning `null`.

### 0.1.3 - 2026-04-10

- Switched to views-only dataset schema format, matching the standard used
  across all other actors in the portfolio.

### 0.1.2 - 2026-04-10

- Search results across multiple pages are now fetched in parallel, roughly
  doubling speed on queries that span several pages.
- Start price updated to $0.005 per run.

### 0.1.1 - 2026-04-10

- Incremental mode verified end-to-end: `changeType`, `firstSeenAt`,
  `lastSeenAt`, `previousSeenAt`, and `trackedHash` all transition correctly
  across runs sharing the same `stateKey`.

### 0.1.0 - 2026-04-10

- Initial release. Scrapes Werkzoeken.nl job listings with salary ranges,
  benefits, company profiles, and full descriptions. Supports keyword search,
  location and contract-type filters, detail enrichment, and incremental
  monitoring via `stateKey`.
