# Changelog of Breezy HR Jobs Scraper — Company Job Boards (`adderleydata/breezy-jobs-scraper`) Actor

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

## Changelog

### 0.1 — first public version

- Any number of Breezy HR career portals per run, by subdomain or by any breezy.hr link — the portal, a posting or the `/json` list. One request per board returns every position's facts.
- Output in the Adderley Data `job.v1` schema: the company name the portal shows; department as category; every location the position lists, the primary first, with city, state and Breezy HR's own ISO country code; employment type from Breezy HR's position type and work arrangement from each location's remote setting; the date the position was published, in UTC.
- Pay from Breezy HR's own pay text only — `$60,000 – $70,000 / year` — as minimum, maximum, currency and period. A bare `$` is read as the dollar of the position's own country where that country uses a dollar, and is otherwise left without a currency; with descriptions on, the currency code the posting's page states for the same pay is used. `$3,500+` is a minimum. No pay entered, no salary.
- Filters on title keywords; location, country or work arrangement; department; and days since the position was published.
- Incremental mode: `changeType` of NEW, UPDATED, REAPPEARED or EXPIRED; unchanged positions skipped and not charged. Breezy HR publishes no last-modified time, so a change is found by comparing each position's facts with the last run.
- Optional full descriptions from each posting's own page — the copy Breezy HR publishes for search engines where the page carries one, the page's description section otherwise — with email addresses, phone numbers and personal profile addresses redacted by default, and link addresses and images removed from the HTML. A position that closes between the list and its page is saved without its text.
- A subdomain with no career portal fails that board's request with a message saying so, once, without retries. The other boards in the run are kept, and nothing is declared expired. A run in which every board is missing ends with an empty dataset and a message naming them.
- No recruiter names, emails or phone numbers in any field, and no company logo or office street address: the portal's list has no person fields, and `job.v1` has nowhere to put one.
