Himalayas Remote Jobs Scraper (Worldwide)
Pricing
from $1.00 / 1,000 results
Himalayas Remote Jobs Scraper (Worldwide)
Scrape 100,000+ worldwide remote job listings from Himalayas with real numeric salary, seniority, location and timezone restrictions, and incremental mode.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Axery
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrapes worldwide remote job listings from himalayas.app over plain HTTP — no browser, no login, no cookies. It reads Himalayas' official public JSON feed, which currently carries over 100,000 listings.
What makes this different
Salary that is already numeric — and honestly labelled. Most job boards publish salary as a display string you cannot sort. Himalayas publishes real numbers, and this Actor passes them through with the currency and period attached, plus a readable raw for consistency with the other Actors in the suite:
"salary": {"min": 135000, "max": 165000, "currency": "USD","period": "year", "is_estimated": false,"raw": "USD 135,000 - USD 165,000 per year"}
is_estimated is false here because these are advertiser-disclosed figures, not bands the board modelled. Watch the period and currency: the feed mixes USD/year with GBP/year and USD/hour freely, so never compare the numbers without reading those two fields.
Location restrictions, not just "remote". Every listing is remote, so a remote: true flag would carry no information. What actually matters is where you may live — location_restrictions holds that, and is null when the role is genuinely open worldwide.
Cursor pagination, as the API asks. The feed's own response says offset pagination is deprecated and will be removed. This Actor pages by nextCursor, so it will not break when that happens.
Incremental mode. Turn on incremental and you get only listings not seen before — and are charged only for those rows. A daily monitor costs full price once, then a fraction per day.
One schema across boards. Same record shape as the SEEK and JobStreet Actors, with a source-prefixed job_id. Merge them into one dataset and dedupe without writing a normalizer.
Input
| Field | Type | Notes |
|---|---|---|
queries | array | Keywords matched against title, company, excerpt and category tags. Empty = newest listings. |
categories | array | Himalayas category tags, e.g. Software-Engineering. Run once unfiltered to discover them. |
seniority | array | Entry-level, Mid-level, Senior, Manager, Director, Executive. |
salaryMin | integer | Compares raw numbers only — see the currency warning above. |
maxItems | integer | Per query. 0 = unlimited, which means the whole 100k+ feed. |
includeDescription | boolean | Off gives a much smaller dataset. |
incremental | boolean | Only listings not seen in previous runs. |
proxyConfiguration | object | Datacenter is enough — the feed is published openly. |
Known limits
- Filters are client-side. The feed takes no query parameters, so keyword, category, seniority and salary filters are applied while pages stream in. A narrow filter reads many pages to fill
maxItems. That is expected behaviour, not an error, andRUN_COVERAGErecords it. - Currencies and periods are mixed.
salaryMincompares raw numbers without conversion. Filter onsalary.currencyandsalary.periodyourself if you need a like-for-like comparison. - Salary is present on roughly half of listings. A null
salary.minusually means the advertiser disclosed nothing, not a parse failure. - No numeric job id. Himalayas keys listings by URL slug, so
source_job_idiscompany-slug/job-slug. It is stable, which is what deduplication needs.
Sister Actors
| Actor | Covers |
|---|---|
| SEEK Jobs Scraper | Australia, New Zealand |
| JobStreet & JobsDB Jobs Scraper | Indonesia, Malaysia, Singapore, Philippines, Thailand, Hong Kong |
| Remote OK Jobs Scraper | Remote OK's public feed — read its README first, the feed has known quality problems |
Local development
pip install -r requirements.txtpython test_local.py --max 20 --out sample_output.jsonpython test_local.py engineer --seniority Senior --salary-min 100000 --max 10
sample_output.json in this folder is real output from a live run, kept so the schema can be reviewed without running anything.