# Changelog of Himalayas Remote Jobs Scraper (`logiover/himalayas-remote-jobs-scraper`) Actor

- **URL**: https://apify.com/logiover/himalayas-remote-jobs-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/himalayas-remote-jobs-scraper.md

## Changelog

### 2026-09-23

- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 20 columns returned, 85.5% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.

### 2026-09-01

- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.

### 2026-08-11

- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.

### 2026-08-05

- Fixed a run-ending failure: jobs with decimal salaries (hourly rates and currency-converted ranges) were rejected by the declared `maxSalary` output type, which aborted the run. Salary fields are now typed as numbers.
- Added the `salaryPeriod` output field (`annual` / `monthly` / `hourly`) so salary figures can be compared correctly.
- Saving a record can no longer end a run — a rejected row is isolated, reported and skipped.
- Added the optional `timeBudgetSecs` input: a deterministic wall-clock ceiling that stops cleanly and keeps all results scraped so far (`0` = no limit).
- Hardened networking: per-request timeouts, plus retry-with-backoff on transient `429` and `5xx` responses.
- Category, Seniority and Employment Type inputs are dropdowns with human-readable options, and matching is space/hyphen/underscore-insensitive.
- Added `maxPagesToScan` and opt-in `includeDescription` so runs stay fast and cheap by default.

### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.
- Declared nullable dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder.

### 2026-07-12

- Category, Seniority and Employment Type inputs are now dropdowns (`select`) with human-readable options instead of free text — no more guessing exact values.
- Category/seniority matching is now space/hyphen/underscore-insensitive, so dropdown values reliably match Himalayas' hyphenated category slugs.
- Confirmed all filters are optional: empty input `{}` returns the latest remote jobs across every category, bounded by Max Jobs / Max Pages to Scan.
- Added a dataset `fields` schema (titles + descriptions; salaries typed as numbers).

### 2026-06-28

- Health check passed — actor verified working end-to-end on Apify platform.
- Changelog refreshed for Store quality compliance.

### 2026-06-20

- Maintenance & reliability pass: re-verified end-to-end against live data and confirmed the Actor completes successfully within the 5-minute quality window on the default input.
- Refreshed the prefilled example input and tuned run defaults for faster, lower-cost runs.
