# Changelog of Ashby Jobs Scraper — Company Job Boards (`adderleydata/ashby-jobs-scraper`) Actor

- **URL**: https://apify.com/adderleydata/ashby-jobs-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/adderleydata/ashby-jobs-scraper.md

## Changelog

### 0.1 — first public version

- Any number of Ashby job boards per run, by board name or by any jobs.ashbyhq.com link — the board, one of its jobs, or its embed. One request per board, to Ashby's public job-posting API.
- Output in the Adderley Data `job.v1` schema: department and team as category and subcategory; employment type from Ashby's own field; work arrangement from Ashby's workplace type; city, region, postcode and country from the posting's structured address, with every location the posting lists in `location.raw`; published date in UTC.
- Pay from Ashby's structured compensation block, only on postings where the company shows pay: minimum, maximum, currency and period as numbers, with Ashby's summary line (`€110K – €185K • Offers Equity`) kept in `salary.raw`. Equity, commission and bonus are never read as pay, and nothing is estimated. Where the block is empty and the posting's text states a range, the range is read from that sentence (24 Sep 2026).
- A country is taken only from an address or a label that names one. A posting located in a bloc such as the European Union has no country, and a city name is never turned into one.
- Filters on title keywords, location (any listed location, its address, or the workplace type), department or team, and days since published.
- Incremental mode: `changeType` of NEW, UPDATED, REAPPEARED or EXPIRED; unchanged postings skipped and not charged. Ashby publishes no last-updated time, so an edit to a posting's wording is found by comparing a fingerprint of its words; formatting changes do not count.
- Optional full descriptions, delivered from the same request as the listing, with email addresses and phone numbers redacted by default.
- A board name Ashby does not know is reported as not found, by name, never as an empty board; the other boards in the run are still read.
- The run's output is declared for Console's Output tab, the Run API and AI agents: postings in the default dataset, the run summary in the default key-value store.
- No recruiter names, emails or phone numbers in any field, and postings a company has not listed on its board are left out.
- 24 Sep 2026: `description.html` keeps each link's words and drops its address, and drops images; personal profile addresses (linkedin.com/in/…) in the text are redacted with the other contact details. An address written as "ending in @example.com" is no longer mistaken for an email address.
- 24 Sep 2026: a board that does not exist is asked for once, not five times, and is never counted as a block. A run in which every board is missing ends with an empty dataset and a message naming them. "Poland - Remote" and other labels that put the country before a dash now give the country.
