# Changelog of RemoteOK Jobs Scraper — Remote Job Feed (`adderleydata/remoteok-jobs-scraper`) Actor

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

## Changelog

### 0.1 — first version (26 Sep 2026)

- Reads RemoteOK's public API, `remoteok.com/api`: one request returns the latest jobs RemoteOK publishes there, about a hundred, covering the last several weeks (99 jobs dated 1 Aug to 24 Sep on 26 Sep 2026). No login, no key, no HTML parsing. RemoteOK's `?tag=` parameter is never used: it did not filter reliably on 26 Sep, so every filter is applied to the one response.
- Output in the Adderley Data `job.v1` schema: the job's page on RemoteOK as `url`; the title and company name; the location as RemoteOK gives it, with city, region and country only where the text plainly states them; RemoteOK's tags as classifications; employment type from a tag that names one ("full time", "part time", "contract", "freelance", "internship" and the like); `workArrangement` `remote` for every job, because RemoteOK lists only remote jobs; the posted date and time.
- Pay: RemoteOK's two salary figures, as given, in US dollars a year — RemoteOK's convention, not something each job states. A top figure under 1,000 is not read as a year's pay. Where RemoteOK gives no figures, a range the job's text states is read from that sentence.
- Text as RemoteOK means it: the feed sends every accented letter, dash and emoji as the separate bytes that encode it, and some job texts as escaped HTML; both are read back before anything is output or filtered.
- Filters on title keywords, tags, locations (a country by name or code, a place's words, or "Worldwide" for jobs that name no place), days since posting and RemoteOK's salary.
- Incremental mode: `changeType` NEW or UPDATED; unchanged jobs skipped and not charged. A change is found by comparing the job's title, company, location, tags, salary and a hash of its text. RemoteOK's note to applicants at the end of every text, whose tag changes with the address the feed is requested from, is left out of the comparison, and so are the order of the jobs and a new date on an unchanged job. EXPIRED is never reported: the feed is a window, and a job that leaves it has not necessarily closed.
- Optional full descriptions from the same request, with email addresses, phone numbers and personal profile addresses redacted by default. `description.html` keeps each link's words and drops its address, and drops images. Logos are never returned.
- A block page, an error status or a feed that has changed shape fails the run with a message naming it; none is ever reported as an empty feed. RemoteOK's rate limit, if it ever answers 429, is waited out and asked again from the same address, at most twice.
- No recruiter names, emails or phone numbers in any field: `job.v1` has nowhere to put a person.
- 27 Sep 2026: text read from HTML decodes every character reference HTML 4 defines — `1.5&times;` reads "1.5×", `&eacute;` reads "é", `&euro;` reads "€" — where before only fifteen common ones were decoded and the rest were delivered as written. In `description.text` a list item whose words sit in their own paragraph reads "• words" on one line, list items sit one under the other, and an item that holds only a list of its own no longer adds an empty bullet. `description.html` is unchanged. In incremental mode a posting whose text or title held one of those references may be reported as UPDATED once, on its first run after this change.
- 28 Sep 2026: a run in which every row fails the `job.v1` contract now fails with a message that names the first fault, where before it finished as a success with an empty dataset. In incremental mode a posting whose row is not saved is no longer recorded as seen, so the next run offers it again instead of skipping it as unchanged.
- 28 Sep 2026: contact details in descriptions. United Kingdom phone numbers written in their own formats — "07123 456789", "01234 567890", "+44 7700 900123", or eleven digits with no spaces — are now redacted like other phone numbers, and a number written after a country code and a one-digit area code ("+61 2 9123 4567") is redacted whole, where before "+61 2" was left in front of "\[redacted]". A figure after a pound or euro sign is never taken for a phone number. Only `description.text` and `description.html` change, and no posting is reported as UPDATED because of it.
