Himalayas Remote Jobs Scraper (withdrawn) avatar

Himalayas Remote Jobs Scraper (withdrawn)

Deprecated

Pricing

from $2.00 / 1,000 job returneds

Go to Apify Store
Himalayas Remote Jobs Scraper (withdrawn)

Himalayas Remote Jobs Scraper (withdrawn)

Deprecated

Himalayas Remote Jobs Scraper has been withdrawn. This Actor no longer returns data: every run stops at once with a status message saying so, writes no rows and charges nothing.

Pricing

from $2.00 / 1,000 job returneds

Rating

0.0

(0)

Developer

Dave Fergins

Dave Fergins

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

Himalayas Remote Jobs Scraper

This Actor has been withdrawn. Runs now stop before fetching anything, and nothing is charged. For remote jobs, use the RemoteOK Remote Jobs Scraper, the Jobicy Remote Jobs Scraper or the Remote Jobs Aggregator.

Scrape Himalayas remote jobs into a clean JSON or CSV dataset: about 200 jobs per default run, 700 with deeper paging. Parsed salary, normalised hiring regions, numeric timezone restrictions, real expiry dates and a ghost-job score that flags expired postings outright.

Himalayas remote jobs with expiry dates and timezones

Himalayas is one of the better remote job boards: it is the only major one that publishes an explicit expiry date and numeric timezone restrictions on every listing. This Actor uses both, and hands you a dataset you can filter and query rather than a dump you have to clean.

That changes what the trust fields mean here. On most boards "probably expired" is inferred from age; on Himalayas an expired posting is detected outright, because the board says when it closes. And "remote" on Himalayas often means "remote within UTC-5 to UTC-3" — the timezone tokens come through as data, so you can keep only the jobs someone in your timezone can actually take.


Himalayas job data: what each row contains

Identitystable id across runs, posting URL, direct applyUrl
The roletitle, company, plain-text description, tags, employment type, seniority
Wherenormalised regions (worldwide / usa / canada / latam / uk / europe / apac / africa / middle_east) plus timezone restrictions as UTC+2-style tokens
Paymin, max, currency and period as numbers — annualised on request so hourly and monthly rates compare correctly
Whenposted date, expiry date, age in days
Trustfreshness 0-1, ghostRisk low/medium/high, and ghostReason explaining the verdict in plain words

Ghost job detection: the trust fields

Job boards are full of postings that are still published but no longer open. Because Himalayas publishes a real expiry date, the risk scoring here is unusually well-grounded — an expired posting is detected outright rather than inferred from age.

{
"title": "Senior Backend Engineer",
"company": "Acme",
"regions": ["worldwide"],
"timezoneRestrictions": ["UTC-5", "UTC-4", "UTC-3"],
"salaryMin": 120000, "salaryMax": 160000,
"salaryCurrency": "USD", "salaryPeriod": "year",
"freshness": 0.71,
"ghostRisk": "low",
"ghostReason": ["recent, and nothing contradicts it"]
}

Freshness decays on a 21-day half-life. A posting with no date scores 0.5, not 1.0 — absence of evidence is not evidence of freshness.


Example input: senior Go or backend jobs for the US or Europe with a published salary

{
"query": ["golang", "backend", "platform"],
"regions": ["usa", "europe"],
"seniority": ["senior", "lead"],
"salaryOnly": true,
"maxGhostRisk": "low",
"maxPagesPerSource": 20,
"maxItems": 200
}

Every field is optional — run it empty and you get the newest Himalayas listings down to the page budget, about 200 jobs at the default 10 pages, best-first.

  • Search terms are OR-ed. ["go", "rust"] returns jobs mentioning either.
  • Worldwide jobs match every region filter, because a job open to everyone is open to you.
  • minSalary is annualised first, so hourly and monthly rates compare correctly.
  • maxItems is your cost ceiling — you are billed per job returned.
  • maxPagesPerSource controls depth. Himalayas serves 20 jobs per page and ignores any limit parameter, so 10 pages is roughly 200 jobs and 35 is roughly 700.

Output: one dataset item per Himalayas job

One dataset item per job, ordered best-first: lowest ghost-job risk, then freshest. Export as JSON, CSV or Excel, or pull it from the API like any Apify dataset.

If Himalayas itself returns no jobs — the board is down or has changed its format — the run fails with a clear status message instead of succeeding with an empty dataset, so a failed-run alert on a schedule catches it. A run whose filters match nothing still succeeds, with an empty dataset and a status line saying so. When fewer than half of the rows carry a company or a posted date, the run log prints a WARNING.

Himalayas jobs scraper pricing: a worked cost example

You pay per job returned, on Apify's pay-per-event model, and nothing for platform usage on top: $0.006 per job on the Free and Bronze plans, $0.003 on Silver, $0.002 on Gold, Platinum and Diamond. Rows dropped by your filters are never billed, and a run that returns nothing costs nothing.

RunJobs returnedFree / BronzeSilverGold and above
A default run: 10 pages, roughly 200 jobs200$1.20$0.60$0.40
A deep run: 35 pages, roughly 700 jobs700$4.20$2.10$1.40
A run capped with maxItems: 100 (at most)100$0.60$0.30$0.20
A run whose filters match nothing0$0.00$0.00$0.00

maxItems is the hard ceiling: maxItems: 200 can never cost more than $1.20 on the Free plan. Apify's free plan includes a monthly usage credit, so a first run costs nothing out of pocket.

Use cases for Himalayas job data

  • Filtering out expired and stale job postings. ghostRisk, ghostReason and freshness say which listings are probably no longer open. Himalayas publishes a real expiry date, so here that judgement is grounded rather than inferred.
  • Salary benchmarking and compensation data. salaryMin, salaryMax, salaryCurrency and salaryPeriod are numbers, not strings, and minSalary annualises before comparing — so hourly, monthly and yearly postings line up.
  • Timezone-restricted remote hiring. timezoneRestrictions and normalised regions let you keep only the jobs someone in your timezone can actually take, instead of "remote" that means "remote if you live in Berlin".
  • Remote job market and hiring data. Run it on a schedule and track how remote hiring, salary ranges, seniority mix and regions move over time.
  • Building a job board, job feed or job alerts. id is stable across runs, so diffing today's dataset against yesterday's gives you genuinely new jobs rather than a board reshuffle.
  • Recruitment and talent research. Company, title, tags, seniority, employment type and normalised regions on every row.

Export as JSON, CSV or Excel, or read the dataset straight from the Apify API.

How this Himalayas scraper fetches jobs

Himalayas publishes a public, documented, unauthenticated JSON API and this Actor reads it — paced, budgeted, with an honest user agent. No HTML scraping, no bot-check evasion, no personal data. Job adverts only.

How to scrape Himalayas jobs with this Actor

  1. Open the Actor and press Start. With no input it returns the newest Himalayas listings down to the page budget, best-first.
  2. Narrow it when you need to: search terms, hiring regions, seniority, a minimum salary, a maximum ghost-job risk, and maxItems as a hard cost ceiling. maxPagesPerSource sets the depth: 10 pages is roughly 200 jobs, 35 is roughly 700.
  3. Export the dataset as JSON, CSV or Excel, read it through the Apify API, or schedule the run and attach a webhook or an integration (Google Sheets, Make, Zapier, Slack) so new Himalayas jobs arrive on their own.

All eight share one schema, one ghost-job model and one set of filters, so a query written for this board runs unchanged against any of the others.

FAQ: scraping Himalayas jobs

Does Himalayas have an official API, and is it legal to scrape Himalayas jobs? Himalayas publishes a public, documented, unauthenticated JSON API and this Actor reads it — paced, budgeted, with an honest user agent. No HTML scraping, no bot-check evasion, no personal data. Job adverts only.

How many Himalayas jobs can one run return? 20 per page: the default 10 pages is about 200 jobs and 35 pages is about 700. Himalayas ignores any limit parameter, so maxPagesPerSource is the depth control and maxItems is the cost ceiling.

How often should I run this Himalayas scraper, and can I get only the new jobs? A daily schedule keeps the dataset current. id is stable across runs, so diffing today's dataset against yesterday's yields only the genuinely new Himalayas jobs, not a reshuffle; maxAgeDays set to 1 or 2 is the cheaper version of the same idea.

How do I get only fresh, still-open Himalayas jobs? Set maxGhostRisk to low. Himalayas publishes a real expiry date on every listing, so an expired posting is detected outright here rather than inferred from age; maxAgeDays tightens it further, and every row carries ghostReason if you would rather apply your own rule.

What is a ghost job? A posting that is still published but no longer open: a filled role left up for pipeline, an evergreen "talent pool" advert, or a listing on a board that never expires anything. The ghostRisk band and freshness score flag them from what the board itself publishes — age, expiry dates, missing application links, evergreen phrasing — never from a model's guess.

Does it include salary data? Where Himalayas publishes pay, yes: salaryMin, salaryMax, salaryCurrency and salaryPeriod are parsed into numbers and annualised on request. Set salaryOnly to keep only rows with a published salary.

Can I filter Himalayas jobs by timezone? Yes. Himalayas is the one major board that publishes numeric timezone restrictions, and they come through as UTC+2-style tokens in timezoneRestrictions, beside the normalised regions.

Do I need proxies, a login or an API key? No. Himalayas is read the way it asks to be read, and Apify runs the Actor for you; nothing to install and no credentials to manage.

Can I export Himalayas jobs to CSV, Excel or Google Sheets? Yes. Every run's dataset downloads as JSON, CSV or Excel from the Apify Console or API, and the Google Sheets integration writes rows straight into a sheet.

Is this a remote job scraper I can run as an API? Yes. Apify runs every Actor from its API as well as the Console: start a run over HTTP with the same JSON input shown above, or put it on a schedule, then read the finished dataset as JSON, CSV or Excel. The dataset is the output; there is no separate query endpoint, so a scheduled run plus a dataset read is the API.

Can an AI agent use this Himalayas scraper? Yes, through Apify's own MCP server, which exposes Store Actors as tools to Claude and other MCP clients. Nothing here is agent-specific: the agent sends the same JSON input and reads the same dataset.

How do I drop expired job listings? Set maxGhostRisk to low or medium and they are dropped before they are returned, so you do not pay for them. Himalayas publishes a real expiry date, so a posting whose date has passed is flagged outright: freshness goes to 0 and ghostReason says "board's own expiry date passed 3 days ago". Every returned row carries ghostRisk (low, medium or high), ghostReason and freshness (0-1, decaying on a 21-day half-life), so you can apply your own rule after export instead. maxAgeDays drops anything older than N days, including rows with no posted date.

What does a Himalayas job row not contain? No visa-sponsorship flag, no applicant counts, no recruiter emails or any personal data, and no company size — Himalayas does not publish them in its API, so they are not invented here. A blank seniority means the board never said; a blank salary means unpublished, not zero.

Want more than one board?

Remote Jobs Aggregator runs this same pipeline across six boards at once — Himalayas, Remote OK, Remotive, Arbeitnow, We Work Remotely and Jobicy — folding duplicates and marking which boards carry each job.

Useful thing measured while building it: those six boards barely overlap. Only 1 of 1,513 company+title pairs appeared on more than one. So the aggregator is not about removing duplication — there almost is none — it is about getting six boards' worth of distinct jobs in one query.