Himalayas Remote Jobs Scraper

Scrape public Himalayas remote job listings with companies, salaries, locations, tags, descriptions, and application links.

Data fields

FieldTypeDescription
jobIdtextJob ID exported in the dataset view.
titletextTitle exported in the dataset view.
companyNametextCompany exported in the dataset view.
companyUrllinkCompany URL exported in the dataset view.
jobUrllinkJob URL exported in the dataset view.
applicationUrllinkApplication URL exported in the dataset view.
locationtextLocation exported in the dataset view.
countrytextCountry exported in the dataset view.

Input preview

startUrlsStart URLs
searchQuerySearch query
locationLocation keyword
countryCountry path
categoryCategory or skill path
senioritySeniority path

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Scrape public remote job listings from Himalayas.app and export structured records with companies, salaries, locations, tags, descriptions, and apply links.

What does Himalayas Remote Jobs Scraper do?

Himalayas Remote Jobs Scraper helps you collect remote job listings from Himalayas.app into a clean Apify dataset.

Use it to monitor new roles, build lead lists, enrich job-board data, or analyze hiring demand across remote-first companies.

The actor can start from a Himalayas URL or build a search from keywords and filters.

It returns one row per job listing.

Each row is designed for CSV, Excel, JSON, API, webhook, and database workflows.

Who is it for?

Recruiters use it to discover companies hiring for remote roles.

Job-board operators use it to backfill and monitor listings.

Labor-market analysts use it to track salary ranges and remote hiring patterns.

Sales teams use it to identify teams with active hiring signals.

Developers use it to connect Himalayas job data to internal tools.

Why use this actor?

✅ No manual copy-paste from job pages.

✅ Structured salary fields when Himalayas publishes salary ranges.

✅ Public job URLs and company URLs included.

✅ Works with search, category, country, seniority, and job-type paths.

✅ Saves results directly to Apify datasets.

✅ Easy to schedule for recurring monitoring.

What data can you extract?

Field Description
jobId Himalayas job slug or public identifier
title Job title
companyName Hiring company name
companyUrl Public Himalayas company page
jobUrl Public Himalayas job page
applicationUrl Himalayas application link when available
location Applicant location or country requirement
country Country/location requirement when published
remoteRegion Remote region derived from location data
salaryText Human-readable salary range
salaryMin Minimum salary value when available
salaryMax Maximum salary value when available
currency Salary currency code
salaryCurrency Salary currency code alias
salaryPeriod Salary period such as month or year
employmentType Full-time, contractor, part-time, or similar
seniority Public seniority/experience description when available
categoryTags Main category tags shown on the job page
categories Main tags and categories
tags Broader public tags found on the job page
postedAt Public posting date
validThrough Public expiration date when provided
descriptionText Plain-text job description
applyUrl Backward-compatible alias for the application link
scrapedAt Timestamp of extraction

Quick start

  1. Open the actor on Apify.

  2. Enter a searchQuery, such as sales or data engineer.

  3. Set maxItems to a small value for your first run.

  4. Keep includeDetails enabled if you want salaries and descriptions.

  5. Start the run.

  6. Download results from the Dataset tab.

Input example

{
  "searchQuery": "sales",
  "maxItems": 20,
  "includeDetails": true
}

Input recipes

Search sales roles:

{
  "searchQuery": "sales",
  "maxItems": 25,
  "includeDetails": true
}

Search engineering roles:

{
  "category": "engineering",
  "maxItems": 50,
  "includeDetails": true
}

Search remote roles by country path:

{
  "country": "united-states",
  "searchQuery": "customer support",
  "maxItems": 50,
  "includeDetails": true
}

Start URL examples

You can also provide direct Himalayas URLs:

{
  "startUrls": [
    { "url": "https://himalayas.app/jobs?search=sales" },
    { "url": "https://himalayas.app/jobs/engineering" }
  ],
  "maxItems": 100,
  "includeDetails": true
}

Use start URLs when you already know the exact Himalayas search, category, or company jobs page you want to monitor.

Input settings

startUrls

Optional list of Himalayas URLs to crawl.

If this field is provided, the actor starts from those pages.

searchQuery

Keyword query used on Himalayas job search.

Examples: sales, frontend, data analyst, product manager.

location

Optional free-text location keyword.

Examples: Europe, Canada, United States, Worldwide.

country

Optional country path.

Examples: united-states, canada, united-kingdom.

category

Optional category or skill path.

Examples: engineering, sales, marketing-advertising-pr, project-management.

seniority

Optional seniority path.

Examples: entry-level, mid-level, senior, manager, director, executive.

jobType

Optional job type path.

Examples: full-time, part-time, contractor.

maxItems

Maximum number of jobs to save.

Start with 25 for a smoke test.

includeDetails

Enable this to include description text, salary details, company URLs, and posting dates.

Disable it only when you need a fast URL-only discovery run.

Output example

{
  "title": "Preconstruction Project Coordinator | South Africa",
  "companyName": "HireHawk",
  "companyUrl": "https://himalayas.app/companies/hirehawk",
  "jobUrl": "https://himalayas.app/companies/hirehawk/jobs/preconstruction-project-coordinator-south-africa",
  "location": "South Africa",
  "salaryText": "USD 1600 - 2000 / month",
  "salaryMin": 1600,
  "salaryMax": 2000,
  "salaryCurrency": "USD",
  "salaryPeriod": "MONTH",
  "employmentType": "Contractor",
  "postedAt": "2026-07-06T08:12:46.000Z",
  "applyUrl": "https://himalayas.app/companies/hirehawk/jobs/preconstruction-project-coordinator-south-africa"
}

Tips for best results

Use a narrow search query when you want highly relevant listings.

Use a category path when you want broad coverage in one job family.

Use maxItems to control run size and cost.

Schedule the actor daily if you monitor new openings.

Export to CSV when sharing with recruiting or sales teams.

Use JSON when sending results into an internal pipeline.

Common use cases

Track remote engineering jobs.

Monitor hiring by companies in a target market.

Build a salary benchmark for remote roles.

Find companies hiring remote sales teams.

Create a daily new-postings alert.

Enrich CRM accounts with active hiring signals.

Analyze which countries receive the most remote roles.

Integrations

Send new jobs to Slack using Apify webhooks.

Export datasets to Google Sheets with Make or Zapier.

Load job records into Airtable for recruiting operations.

Send company hiring signals to HubSpot or Salesforce.

Store historical runs in BigQuery, Snowflake, or PostgreSQL.

Trigger downstream enrichment actors after each run.

API usage

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/himalayas-remote-jobs-scraper').call({
  searchQuery: 'sales',
  maxItems: 25,
  includeDetails: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('fetch_cat/himalayas-remote-jobs-scraper').call(run_input={
    'searchQuery': 'sales',
    'maxItems': 25,
    'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~himalayas-remote-jobs-scraper/runs?token=MY-APIFY-TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"searchQuery":"sales","maxItems":25,"includeDetails":true}'

MCP usage

Use this actor from Claude Desktop, Claude Code, or any MCP-compatible client through the Apify MCP server.

MCP URL format:

https://mcp.apify.com/?tools=fetch_cat/himalayas-remote-jobs-scraper

Claude Code setup:

claude mcp add apify https://mcp.apify.com/?tools=fetch_cat/himalayas-remote-jobs-scraper

Claude Desktop JSON config:

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/himalayas-remote-jobs-scraper"
    }
  }
}

Example prompts:

  • "Find 25 remote sales jobs on Himalayas and summarize salary ranges."
  • "Scrape remote engineering jobs and group them by company."
  • "Collect 50 customer support jobs and export the dataset as CSV."

Scheduling

You can schedule this actor to run every day, every week, or at a custom interval.

Scheduling is useful when you monitor fresh job postings.

Use a stable search query and compare new dataset rows between runs.

Data quality notes

Some job pages do not publish salary data.

Some jobs are restricted to a specific country.

Some jobs may expire after the actor collects them.

The actor returns null for fields that are not publicly available.

Troubleshooting

Why did I get fewer jobs than maxItems?

The selected query or filter may have fewer public results available at run time.

Try a broader query or remove a restrictive filter.

Why is salary missing for some jobs?

Not every Himalayas listing publishes salary data.

When salary is absent, the salary fields are returned as null.

Why does applyUrl point to Himalayas?

Himalayas sometimes routes applications through its own job detail page.

The job URL is still the correct public page for the opening.

Limits

This actor only extracts public information available without logging in.

It does not apply to jobs for you.

It does not bypass access controls.

It does not guarantee that a job remains open after scraping.

Legality and responsible use

This actor is intended for publicly available job listing data.

Respect Himalayas.app terms, applicable laws, and personal data rules in your jurisdiction.

Avoid collecting or storing data you do not need.

Use reasonable run sizes and schedules.

Support

If a run fails or output looks incomplete, include:

  • The input JSON you used.
  • The expected output, such as the job title or company you expected to see.
  • The actual output you received, including an empty dataset if applicable.
  • A reproducible public URL from Himalayas, when your report is about a specific search or job page.
  • The Apify run ID and any relevant log message.

Small reproducible inputs make issues easier to diagnose.

Common questions

Questions and answers reused from the canonical actor README.

Can I scrape Himalayas remote jobs without an account?

Yes. This actor collects public job listing and job detail data visible on Himalayas without logging in.

Can I filter by country or category?

Yes. Use country, category, searchQuery, or direct startUrls to target the jobs you need.