Himalayas Remote Jobs Scraper - Salaries, Jobs Data & API avatar

Himalayas Remote Jobs Scraper - Salaries, Jobs Data & API

Pricing

from $6.15 / 1,000 results

Go to Apify Store
Himalayas Remote Jobs Scraper - Salaries, Jobs Data & API

Himalayas Remote Jobs Scraper - Salaries, Jobs Data & API

Scrape remote jobs from Himalayas.app worldwide, no API key. Get job title, company, salary range and currency, seniority, employment type, location and timezone restrictions, categories, skills tags and full description. Filter by keyword, category, seniority or country. Export JSON, CSV, Excel.

Pricing

from $6.15 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Himalayas Remote Jobs & Salary Listings Scraper

Himalayas Remote Jobs Scraper - Salaries, Jobs Data & API

Scrape remote job listings from Himalayas.app worldwide, with no API key or login. This Himalayas scraper acts as an unofficial remote jobs API: page the global feed, filter client-side (keyword, category, seniority, country, employment type, salary-only), and get one clean, structured record per job with the full description, parsed salary, company info, seniority, categories and apply URL. Export to JSON, CSV or Excel.

Ideal for building a remote job listings feed, a work-from-home jobs dataset, remote tech-jobs analytics, salary benchmarking, recruiting and lead generation.

{
"id": "5931286079",
"title": "Sr. Product Designer II - Design Systems",
"companyName": "Instacart",
"companyLogo": "https://cdn-images.himalayas.app/ka50zs3eg02zoiwsl3b8ce5cdadx",
"url": "https://himalayas.app/companies/instacart/jobs/sr-product-designer-ii-design-systems-5931286079",
"seniority": ["Senior"],
"employmentType": "Full Time",
"parentCategories": ["Design"],
"tags": ["Design-Systems", "Product-Design", "UX-Design"],
"locationRestrictions": ["Canada"],
"timezoneRestrictions": [-8, -7, -6, -5, -4, -3.5],
"isRemote": true,
"worldwide": false,
"minSalary": 171000,
"maxSalary": 180500,
"salaryPeriod": "annual",
"currency": "CAD",
"salaryText": "CAD $171,000 - $180,500/year",
"applyUrl": "https://boards.greenhouse.io/instacart/jobs/5931286079",
"companyUrl": "https://himalayas.app/companies/instacart",
"postedAt": "2026-08-14T06:23:56.000Z",
"expiresAt": "2026-10-13T06:23:56.000Z",
"ageDays": 21,
"aiJdSummary": "Instacart is hiring a Sr. Product Designer II to evolve their design system... (AI add-on)",
"aiSkills": ["Product Design", "Design Systems", "Figma", "Accessibility"]
}

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor pages through the Himalayas remote-jobs feed, applies the filters you pass as input (keyword or keywords, category, seniority, employment type, country, worldwide, salary-only, tech-only), and writes one normalized record per job to the run's dataset. Each record includes the job title, company and logo, salary range with currency and period (parsed into numbers), seniority, categories and skill tags, location and timezone restrictions, apply URL, posted and expiry dates, plus the full job description as clean text and raw HTML. Missing source values are returned as null.

Optional paid AI add-ons can write a concise summary and extract required skills and inferred seniority from each description.

Himalayas has no server-side search, so all filters run client-side as the scraper pages the global feed. Data covers remote jobs listed on himalayas.app. This actor is independent and has no affiliation with Himalayas.

Why this scraper

  • No API key, no login. Just set your filters and run.
  • Every field the feed exposes, mapped to clean names with honest nulls, plus derived fields: parsed minSalary/maxSalary/currency/salaryPeriod, ageDays, worldwide, id, and extracted emails/descriptionLinks from the description.
  • Full description in two formats: clean text (description) and raw descriptionHtml.
  • Rich, superset filtering: single or multiple keywords, one or many categories and seniority levels, employment type, country, worldwide-only, tech-only, salary-only, plus sortBy.
  • Cost controls: maxJobs, maxPagesToScan, timeBudgetSecs, free-plan cap and a spend cap.

How we compare

Named comparison against the other public Himalayas actors on Apify (job data from the same public feed). We accept a superset of their inputs and return a superset of their fields.

CapabilityThis actorinlifeprojects/himalayas-jobs-scraperlogiover/himalayas-remote-jobs-scrapershahidirfan/Himalayas-Job-Scraper
Keyword / multi-keywordYes (keyword + keywords[])keywords[]singlesingle
Category filterYes (category + categories[])nocategories[]no
Seniority (single + multi)Yesseniority[]seniority[]no
Employment typeYesYesYesno
Country / worldwide filterYes (both)country + worldwidenolocation
Tech-only filterYesfilterNonTechnono
Salary-only filterYesnonono
Sort (date / salary)Yes (sortBy)sortBynono
Start URLsYesnonostartUrl
Page / time budget capsYesnomaxPages + timeBudgetmax_pages
Completion webhookYesYesnono
Parsed salary min/max/currencyYespartialpartialpartial
Full description (text + HTML)Yes (both)textoptionaloptional
Emails + links from descriptionYesnonono
Timezone restrictionsYesYespartialno
ageDays, worldwide, id, tags derivedYesnonono
AI summary + skills add-onsYes (opt-in)nonono

If you only need a handful of raw fields, the alternatives are fine. If you want the widest field set, parsed salary, description in text and HTML, and superset filtering, this actor is built for that.

Quickstart

Open the actor, paste this into the input, and press Run.

{
"keywords": ["react", "frontend"],
"category": "Developer",
"withSalaryOnly": true,
"sortBy": "salaryDesc",
"maxJobs": 25
}

Leave all filters empty to collect the newest jobs across every category. Every input field is optional; with an empty input the actor returns the most recent remote jobs (default maxJobs is 10).

Input reference

FieldTypeRequiredDefaultDescription
maxJobsintegerno10Maximum jobs to collect. Aliases: maxItems, results_wanted, maxResultsPerKeyword. Free Apify plans are capped at 10 per run.
keywordstringno(empty)Free-text term matched against title, company, categories and description (case-insensitive).
keywordsstring[]no(empty)Multiple search terms. A job is kept if it matches ANY of them.
startUrlsarrayno(empty)Himalayas search URLs; any search/keyword/q/query parameter is applied as an extra keyword.
categoryenumno(any)Keep only jobs in this parent category.
categoriesstring[]no(any)Keep only jobs in any of these parent categories.
seniorityenumno(any)Keep only jobs that include this seniority.
senioritiesstring[]no(any)Keep only jobs that include any of these seniority levels.
employmentTypeenumno(any)Full Time, Part Time, Contractor, Intern.
countrystringno(any)Keep only jobs open to this country (worldwide jobs always kept). Alias: location.
worldwidebooleannofalseKeep only jobs open to candidates worldwide.
filterNonTechbooleannofalseKeep only tech roles (Developer, Data Science, Design, Product).
withSalaryOnlybooleannofalseKeep only jobs that publish a salary range.
sortByenumnonewestnewest, oldest, salaryDesc, salaryAsc. Non-newest sorting requires a finite maxJobs.
includeDescriptionbooleannotrueInclude full description (text + HTML), emails and links. Alias: collectDetails.
maxPagesToScanintegerno(unlimited)Safety cap on feed pages scanned. Alias: max_pages.
timeBudgetSecsintegerno(unlimited)Stop scanning after this many seconds.
webhookUrlstringno(empty)POST a small JSON completion payload here when the run finishes.
webhookSecretstringno(empty)Sent as the x-webhook-secret header on the completion webhook.
proxyConfigurationobjectnoApify ProxyProxy settings.
withJdSummarybooleannofalsePaid AI add-on. Concise summary of each description. Charged per job summarized. Paid plans only.
withSkillsbooleannofalsePaid AI add-on. Extract required skills and inferred seniority. Charged per job processed. Paid plans only.

Output reference

One dataset item per job. Types: string, number, integer, boolean, string[], number[], or null when the source value is absent.

FieldTypeDescription
idstringStable job ID derived from the job URL, or null.
titlestringJob title.
companyNamestringCompany name.
companyLogostringCompany logo URL, or null.
companySlugstringCompany slug on Himalayas.
companyUrlstringCompany page URL.
urlstringHimalayas job URL.
applyUrlstringExternal application URL.
senioritystring[]Seniority levels listed for the job.
employmentTypestringEmployment type (for example Full Time).
parentCategoriesstring[]Parent categories (for example Design).
categoriesstring[]Category tags on the listing.
tagsstring[]Alias of categories.
locationRestrictionsstring[]Allowed candidate locations/countries.
timezoneRestrictionsnumber[]Allowed UTC offsets.
remote / isRemotebooleanWhether the job is remote (always true for this feed).
worldwidebooleanWhether the job is open to candidates worldwide.
minSalaryintegerMinimum salary, or null.
maxSalaryintegerMaximum salary, or null.
salaryPeriodstringSalary period (for example annual), or null.
currencystringSalary currency (for example CAD), or null.
salaryTextstringSalary range as a formatted string, or null.
emailsstring[]Contact emails found in the description, or null.
descriptionLinksstring[]External links found in the description, or null.
excerptstringShort description excerpt.
descriptionstringFull job description as clean text.
descriptionHtmlstringFull job description as raw HTML.
postedAtstringISO 8601 posting timestamp.
expiresAtstringISO 8601 expiry timestamp, or null.
ageDaysintegerDays since the job was posted, or null.
aiJdSummarystringAI job summary (add-on), or null.
aiSkillsstring[]AI-extracted required skills (add-on), or null.
aiSenioritystringAI-inferred seniority (add-on), or null.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record shape from a live run. The long categories/tags array and description are trimmed here for readability; the real values continue.

{
"id": "5931286079",
"title": "Sr. Product Designer II - Design Systems",
"companyName": "Instacart",
"companyLogo": "https://cdn-images.himalayas.app/ka50zs3eg02zoiwsl3b8ce5cdadx",
"companyUrl": "https://himalayas.app/companies/instacart",
"url": "https://himalayas.app/companies/instacart/jobs/sr-product-designer-ii-design-systems-5931286079",
"applyUrl": "https://boards.greenhouse.io/instacart/jobs/5931286079",
"seniority": ["Senior"],
"employmentType": "Full Time",
"parentCategories": ["Design"],
"categories": ["Design-Systems", "Product-Design", "UX-Design", "[trimmed]"],
"tags": ["Design-Systems", "Product-Design", "UX-Design", "[trimmed]"],
"locationRestrictions": ["Canada"],
"timezoneRestrictions": [-8, -7, -6, -5, -4, -3.5],
"remote": true,
"isRemote": true,
"worldwide": false,
"minSalary": 171000,
"maxSalary": 180500,
"salaryPeriod": "annual",
"currency": "CAD",
"salaryText": "CAD $171,000 - $180,500/year",
"emails": null,
"descriptionLinks": null,
"excerpt": "We're transforming the grocery industry...",
"description": "We're transforming the grocery industry. [trimmed]",
"descriptionHtml": "<p>We're transforming the grocery industry. [trimmed]</p>",
"postedAt": "2026-08-14T06:23:56.000Z",
"expiresAt": "2026-10-13T06:23:56.000Z",
"ageDays": 21,
"aiJdSummary": null,
"aiSkills": null,
"aiSeniority": null,
"observedAt": "2026-09-04T08:07:26.293Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~himalayas-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keyword":"react","category":"Developer","withSalaryOnly":true,"maxJobs":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~himalayas-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"category":"Design","seniority":"Senior","maxJobs":100}'

Apify CLI:

apify call scrapers_lat/himalayas-scraper \
--input '{"employmentType":"Contractor","maxJobs":50}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per job record returned (result event). See the pricing tab for the current per-result price.
  • Add-on events. AI job summary (ai_jd_summary) and AI required skills (ai_skills) are billed separately, only for paid plans, and only when they produce usable output. Each add-on is charged after the job record has been delivered.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results and add-ons.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxJobs.

FAQ and troubleshooting

Do I need an API key or login for Himalayas? No. The actor reads the public Himalayas remote-jobs feed. Just set filters and run.

A run returned 0 records. Why? Your filters excluded everything. Loosen them (for example remove keyword or set withSalaryOnly off), or widen the category. Because Himalayas has no server-side search, narrow filters can page through many jobs before matching. Use maxPagesToScan or timeBudgetSecs to cap the scan. Zero-result runs are not charged.

How does the keyword filter work? It is a case-insensitive match against the title, company, categories and description, applied by the scraper as it pages the feed. keywords[] matches ANY of the terms.

Which jobs include a salary? Not all listings publish one. Set withSalaryOnly to keep only jobs with a salaryText and salary range. When present, salary is parsed into minSalary, maxSalary, currency and salaryPeriod.

Can I sort by salary or date? Yes. Set sortBy to salaryDesc, salaryAsc, oldest, or newest (default). Non-newest sorting requires a finite maxJobs.

What do the AI add-ons return? withJdSummary writes a short aiJdSummary; withSkills fills aiSkills and aiSeniority. Both are billed only when they produce usable output and require a paid Apify plan.

Is this an official Himalayas tool? No. This actor is independent and has no affiliation with Himalayas. It reads only publicly available job listings. Use the results in accordance with the source's terms and applicable laws.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Himalayas. Accesses only publicly available job listings. Use in accordance with the source's terms and applicable laws.