# Changelog of Remote Jobs Aggregator — 6 Public Feeds (`dataloft/remote-jobs-aggregator`) Actor

- **URL**: https://apify.com/dataloft/remote-jobs-aggregator/changelog.md
- **Full Actor documentation**: https://apify.com/dataloft/remote-jobs-aggregator.md

## Changelog

### 0.3 — 2026-09-05

- Fail visibly on unavailable monitoring history or unresolved delivery; use non-overlapping runs per watchlist.
- Budget-aware SDK result-event delivery and explicit charge/delivery reconciliation.
- Purposeful, bounded public example inputs and corrected default API input.
- Source-dependent limitations and Actor-start fee disclosed.
- Remote: grouped title filters; currency/period and lower/upper salary thresholds; confirmed-identity dedupe with source provenance.
- Working Nomads disabled pending verified redistribution permission; six active feeds remain.

### 0.2 — 2026-09-02

#### Monitoring mode (only new jobs since last run)

- New input **`onlyNewJobs`**. When on, every posting delivered is remembered in a *named*
  key-value store and skipped on later runs. Skipped postings are neither saved to the dataset
  nor charged for, so a scheduled task costs only what actually changed.
- New input **`seenStoreName`** overrides the store name (default
  `dataloft-seen-remote-jobs-aggregator`), so several watchlists can run without sharing history.
- A posting is matched on its board-native id *and* on its normalised apply URL, so a role that
  reappears under a new id on the same URL is still recognised.
- Per-board and whole-run log lines report `scanned N, new M, previously seen K`; the same counts
  land in `RUN_SUMMARY` under `monitoring`.
- `RUN_SUMMARY.duplicatesRemoved` no longer counts monitoring skips as duplicates.
- The set is written back at the end of the run and also on `migrating` / `aborting`, so an
  interrupted run does not force the next one to re-deliver everything.

#### Cost and platform settings

- Memory is now declared: default **512 MB**, minimum 256 MB, maximum 1024 MB. This actor is a
  pure-HTTP JSON API client, so the previous 4 GB default was quadrupling the platform cost of
  every run for no benefit.

#### Schema fixes

- The dataset overview view showed `atsPlatform`, a field this actor never populates — every row
  had an empty "ATS" column. Replaced with `sourceBoard`, the board a posting actually came from.
- `changelog` declared in `.actor/actor.json`.

#### Not changed

- No input aliases here: this actor's target list is a fixed set of seven boards
  (`sources`), not a list of companies or URLs, so there is nothing for `companies` /
  `startUrls` to alias onto.
