Vexaloom Labs

Himalayas Remote Job Finder with Salary & Tech Stack

Search Himalayas remote job listings by keyword or company and get salary range, employment type, tech stack and job page link for each role.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to scrape. `searchJobs` runs a keyword search with filters. `browseAll` walks the newest-updated feed. `byCompany` returns a company's open roles. `byJobUrls` checks specific job URLs.
searchQuerystringoptionalFree-text keyword search (mode=searchJobs). Leave blank to page through the newest searchable listings. Himalayas caps keyword searches at 5,000 results.
companySlugstringoptionalCanonical company slug or Himalayas company URL, e.g. `stripe` or `https://himalayas.app/companies/stripe`. Comma-separate several slugs, e.g. `stripe,vercel`.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to scrape. `searchJobs` runs a keyword search with filters. `browseAll` walks the newest-updated feed. `byCompany` returns a company's open roles. `byJobUrls` checks specific job URLs.
searchQuerystringoptionalFree-text keyword search (mode=searchJobs). Leave blank to page through the newest searchable listings. Himalayas caps keyword searches at 5,000 results.
companySlugstringoptionalCanonical company slug or Himalayas company URL, e.g. `stripe` or `https://himalayas.app/companies/stripe`. Comma-separate several slugs, e.g. `stripe,vercel`.
jobUrlsarrayoptionalHimalayas job page URLs, e.g. `https://himalayas.app/companies/stripe/jobs/senior-engineer`. Closed or invalid URLs are skipped.
countrystringoptionalOnly jobs open to this country. Leave blank for any country. Worldwide jobs are included unless Exclude worldwide is on.
worldwidebooleanoptionalOnly jobs with no country restrictions. Overrides the country filter.
excludeWorldwidebooleanoptionalWhen a country is set, exclude jobs that are open worldwide. Requires country.
seniorityarrayoptionalKeep jobs at any of these seniority levels. Leave empty for all levels.
employmentTypestringoptionalKeep jobs of this employment type. Leave blank for all types.
timezonestringoptionalKeep jobs that accept this UTC offset, e.g. `-5`, `UTC-5` or `UTC+05:30`. Leave blank for any timezone.
categoriesarrayoptionalKeep jobs whose categories, parent categories or tech tags contain any of these terms (case-insensitive), e.g. `python`, `react`, `developer`.
minSalaryintegeroptionalAnnualised salary floor. Hourly, weekly and monthly pay is converted to a yearly figure before comparison. Use salaryCurrency to compare in a specific currency.
maxSalaryintegeroptionalAnnualised salary ceiling. Jobs whose annualised range starts above this value are excluded.
salaryCurrencystringoptionalOnly compare and keep jobs paid in this currency. Leave blank to compare each listing in its own currency (no conversion is applied).
sortBystringoptionalSearch result order. Browse mode always uses newest-updated order.
includeSkillsbooleanoptionalFetch each job's required skills from Himalayas job details. Adds one lookup per job; the public anonymous limit is 30 lookups per minute and 200 per day, so large runs keep base records and stop enrichment at the limit.
includeCompanyTechStackbooleanoptionalFetch the employer's company-level tech stack once per company. Many companies do not publish one, so this field is often absent. Shares the same anonymous lookup limit.
maxItemsintegeroptionalHard cap on the number of job records emitted (1–5000).

Download the published input schema

View complete JSON
{
  "description": "Search Himalayas remote jobs by keyword, browse the newest feed, pull a company's openings, or resolve specific job URLs. Salary, pay period, seniority and optional skills/company tech stack are returned for each role.",
  "properties": {
    "categories": {
      "default": [],
      "description": "Keep jobs whose categories, parent categories or tech tags contain any of these terms (case-insensitive), e.g. `python`, `react`, `developer`.",
      "editor": "stringList",
      "prefill": [],
      "title": "Categories / tech tags",
      "type": "array"
    },
    "companySlug": {
      "description": "Canonical company slug or Himalayas company URL, e.g. `stripe` or `https://himalayas.app/companies/stripe`. Comma-separate several slugs, e.g. `stripe,vercel`.",
      "editor": "textfield",
      "title": "Company slug(s) (mode=byCompany)",
      "type": "string"
    },
    "country": {
      "default": "",
      "description": "Only jobs open to this country. Leave blank for any country. Worldwide jobs are included unless Exclude worldwide is on.",
      "editor": "select",
      "enum": [
        "",
        "AD",
        "AE",
        "AF",
        "AG",
        "AI",
        "AL",
        "AM",
        "AO",
        "AQ",
        "AR",
        "AS",
        "AT",
        "AU",
        "AW",
        "AX",
        "AZ",
        "BA",
        "BB",
        "BD",
        "BE",
        "BF",
        "BG",
        "BH",
        "BI",
        "BJ",
        "BL",
        "BM",
        "BN",
        "BO",
        "BQ",
        "BR",
        "BS",
        "BT",
        "BV",
        "BW",
        "BY",
        "BZ",
        "CA",
        "CC",
        "CD",
        "CF",
        "CG",
        "CH",
        "CI",
        "CK",
        "CL",
        "CM",
        "CN",
        "CO",
        "CR",
        "CU",
        "CV",
        "CW",
        "CX",
        "CY",
        "CZ",
        "DE",
        "DJ",
        "DK",
        "DM",
        "DO",
        "DZ",
        "EC",
        "EE",
        "EG",
        "EH",
        "ER",
        "ES",
        "ET",
        "FI",
        "FJ",
        "FK",
        "FM",
        "FO",
        "FR",
        "GA",
        "GB",
        "GD",
        "GE",
        "GF",
        "GG",
        "GH",
        "GI",
        "GL",
        "GM",
        "GN",
        "GP",
        "GQ",
        "GR",
        "GS",
        "GT",
        "GU",
        "GW",
        "GY",
        "HK",
        "HM",
        "HN",
        "HR",
        "HT",
        "HU",
        "ID",
        "IE",
        "IL",
        "IM",
        "IN",
        "IO",
        "IQ",
        "IR",
        "IS",
        "IT",
        "JE",
        "JM",
        "JO",
        "JP",
        "KE",
        "KG",
        "KH",
        "KI",
        "KM",
        "KN",
        "KP",
        "KR",
        "KW",
        "KY",
        "KZ",
        "LA",
        "LB",
        "LC",
        "LI",
        "LK",
        "LR",
        "LS",
        "LT",
        "LU",
        "LV",
        "LY",
        "MA",
        "MC",
        "MD",
        "ME",
        "MF",
        "MG",
        "MH",
        "MK",
        "ML",
        "MM",
        "MN",
        "MO",
        "MP",
        "MQ",
        "MR",
        "MS",
        "MT",
        "MU",
        "MV",
        "MW",
        "MX",
        "MY",
        "MZ",
        "NA",
        "NC",
        "NE",
        "NF",
        "NG",
        "NI",
        "NL",
        "NO",
        "NP",
        "NR",
        "NU",
        "NZ",
        "OM",
        "PA",
        "PE",
        "PF",
        "PG",
        "PH",
        "PK",
        "PL",
        "PM",
        "PN",
        "PR",
        "PS",
        "PT",
        "PW",
        "PY",
        "QA",
        "RE",
        "RO",
        "RS",
        "RU",
        "RW",
        "SA",
        "SB",
        "SC",
        "SD",
        "SE",
        "SG",
        "SH",
        "SI",
        "SJ",
        "SK",
        "SL",
        "SM",
        "SN",
        "SO",
        "SR",
        "SS",
        "ST",
        "SV",
        "SX",
        "SY",
        "SZ",
        "TC",
        "TD",
        "TF",
        "TG",
        "TH",
        "TJ",
        "TK",
        "TL",
        "TM",
        "TN",
        "TO",
        "TR",
        "TT",
        "TV",
        "TW",
        "TZ",
        "UA",
        "UG",
        "UM",
        "US",
        "UY",
        "UZ",
        "VA",
        "VC",
        "VE",
        "VG",
        "VI",
        "VN",
        "VU",
        "WF",
        "WS",
        "YE",
        "YT",
        "ZA",
        "ZM",
        "ZW"
      ],
      "enumTitles": [
        "Any country",
        "Andorra",
        "United Arab Emirates",
        "Afghanistan",
        "Antigua and Barbuda",
        "Anguilla",
        "Albania",
        "Armenia",
        "Angola",
        "Antarctica",
        "Argentina",
        "American Samoa",
        "Austria",
        "Australia",
        "Aruba",
        "Åland Islands",
        "Azerbaijan",
        "Bosnia and Herzegovina",
        "Barbados",
        "Bangladesh",
        "Belgium",
        "Burkina Faso",
        "Bulgaria",
        "Bahrain",
        "Burundi",
        "Benin",
        "Saint Barthélemy",
        "Bermuda",
        "Brunei Darussalam",
        "Bolivia, Plurinational State of",
        "Bonaire, Sint Eustatius and Saba",
        "Brazil",
        "Bahamas",
        "Bhutan",
        "Bouvet Island",
        "Botswana",
        "Belarus",
        "Belize",
        "Canada",
        "Cocos (Keeling) Islands",
        "Congo, The Democratic Republic of the",
        "Central African Republic",
        "Congo",
        "Switzerland",
        "Côte d'Ivoire",
        "Cook Islands",
        "Chile",
        "Cameroon",
        "China",
        "Colombia",
        "Costa Rica",
        "Cuba",
        "Cabo Verde",
        "Curaçao",
        "Christmas Island",
        "Cyprus",
        "Czechia",
        "Germany",
        "Djibouti",
        "Denmark",
        "Dominica",
        "Dominican Republic",
        "Algeria",
        "Ecuador",
        "Estonia",
        "Egypt",
        "Western Sahara",
        "Eritrea",
        "Spain",
        "Ethiopia",
        "Finland",
        "Fiji",
        "Falkland Islands (Malvinas)",
        "Micronesia, Federated States of",
        "Faroe Islands",
        "France",
        "Gabon",
        "United Kingdom",
        "Grenada",
        "Georgia",
        "French Guiana",
        "Guernsey",
        "Ghana",
        "Gibraltar",
        "Greenland",
        "Gambia",
        "Guinea",
        "Guadeloupe",
        "Equatorial Guinea",
        "Greece",
        "South Georgia and the South Sandwich Islands",
        "Guatemala",
        "Guam",
        "Guinea-Bissau",
        "Guyana",
        "Hong Kong",
        "Heard Island and McDonald Islands",
        "Honduras",
        "Croatia",
        "Haiti",
        "Hungary",
        "Indonesia",
        "Ireland",
        "Israel",
        "Isle of Man",
        "India",
        "British Indian Ocean Territory",
        "Iraq",
        "Iran, Islamic Republic of",
        "Iceland",
        "Italy",
        "Jersey",
        "Jamaica",
        "Jordan",
        "Japan",
        "Kenya",
        "Kyrgyzstan",
        "Cambodia",
        "Kiribati",
        "Comoros",
        "Saint Kitts and Nevis",
        "Korea, Democratic People's Republic of",
        "Korea, Republic of",
        "Kuwait",
        "Cayman Islands",
        "Kazakhstan",
        "Lao People's Democratic Republic",
        "Lebanon",
        "Saint Lucia",
        "Liechtenstein",
        "Sri Lanka",
        "Liberia",
        "Lesotho",
        "Lithuania",
        "Luxembourg",
        "Latvia",
        "Libya",
        "Morocco",
        "Monaco",
        "Moldova, Republic of",
        "Montenegro",
        "Saint Martin (French part)",
        "Madagascar",
        "Marshall Islands",
        "North Macedonia",
        "Mali",
        "Myanmar",
        "Mongolia",
        "Macao",
        "Northern Mariana Islands",
        "Martinique",
        "Mauritania",
        "Montserrat",
        "Malta",
        "Mauritius",
        "Maldives",
        "Malawi",
        "Mexico",
        "Malaysia",
        "Mozambique",
        "Namibia",
        "New Caledonia",
        "Niger",
        "Norfolk Island",
        "Nigeria",
        "Nicaragua",
        "Netherlands",
        "Norway",
        "Nepal",
        "Nauru",
        "Niue",
        "New Zealand",
        "Oman",
        "Panama",
        "Peru",
        "French Polynesia",
        "Papua New Guinea",
        "Philippines",
        "Pakistan",
        "Poland",
        "Saint Pierre and Miquelon",
        "Pitcairn",
        "Puerto Rico",
        "Palestine, State of",
        "Portugal",
        "Palau",
        "Paraguay",
        "Qatar",
        "Réunion",
        "Romania",
        "Serbia",
        "Russian Federation",
        "Rwanda",
        "Saudi Arabia",
        "Solomon Islands",
        "Seychelles",
        "Sudan",
        "Sweden",
        "Singapore",
        "Saint Helena, Ascension and Tristan da Cunha",
        "Slovenia",
        "Svalbard and Jan Mayen",
        "Slovakia",
        "Sierra Leone",
        "San Marino",
        "Senegal",
        "Somalia",
        "Suriname",
        "South Sudan",
        "Sao Tome and Principe",
        "El Salvador",
        "Sint Maarten (Dutch part)",
        "Syrian Arab Republic",
        "Eswatini",
        "Turks and Caicos Islands",
        "Chad",
        "French Southern Territories",
        "Togo",
        "Thailand",
        "Tajikistan",
        "Tokelau",
        "Timor-Leste",
        "Turkmenistan",
        "Tunisia",
        "Tonga",
        "Türkiye",
        "Trinidad and Tobago",
        "Tuvalu",
        "Taiwan, Province of China",
        "Tanzania, United Republic of",
        "Ukraine",
        "Uganda",
        "United States Minor Outlying Islands",
        "United States",
        "Uruguay",
        "Uzbekistan",
        "Holy See (Vatican City State)",
        "Saint Vincent and the Grenadines",
        "Venezuela, Bolivarian Republic of",
        "Virgin Islands, British",
        "Virgin Islands, U.S.",
        "Viet Nam",
        "Vanuatu",
        "Wallis and Futuna",
        "Samoa",
        "Yemen",
        "Mayotte",
        "South Africa",
        "Zambia",
        "Zimbabwe"
      ],
      "prefill": "",
      "title": "Country",
      "type": "string"
    },
    "employmentType": {
      "default": "",
      "description": "Keep jobs of this employment type. Leave blank for all types.",
      "editor": "select",
      "enum": [
        "",
        "full-time",
        "part-time",
        "contract",
        "temporary",
        "internship",
        "volunteer",
        "other"
      ],
      "enumTitles": [
        "Any type",
        "Full-time",
        "Part-time",
        "Contract",
        "Temporary",
        "Internship",
        "Volunteer",
        "Other"
      ],
      "prefill": "",
      "title": "Employment type",
      "type": "string"
    },
    "excludeWorldwide": {
      "default": false,
      "description": "When a country is set, exclude jobs that are open worldwide. Requires country.",
      "prefill": false,
      "title": "Exclude worldwide",
      "type": "boolean"
    },
    "includeCompanyTechStack": {
      "default": false,
      "description": "Fetch the employer's company-level tech stack once per company. Many companies do not publish one, so this field is often absent. Shares the same anonymous lookup limit.",
      "prefill": false,
      "title": "Include company tech stack",
      "type": "boolean"
    },
    "includeSkills": {
      "default": false,
      "description": "Fetch each job's required skills from Himalayas job details. Adds one lookup per job; the public anonymous limit is 30 lookups per minute and 200 per day, so large runs keep base records and stop enrichment at the limit.",
      "prefill": false,
      "title": "Include job skills",
      "type": "boolean"
    },
    "jobUrls": {
      "default": [],
      "description": "Himalayas job page URLs, e.g. `https://himalayas.app/companies/stripe/jobs/senior-engineer`. Closed or invalid URLs are skipped.",
      "editor": "stringList",
      "prefill": [],
      "title": "Job URLs (mode=byJobUrls)",
      "type": "array"
    },
    "maxItems": {
      "default": 20,
      "description": "Hard cap on the number of job records emitted (1–5000).",
      "maximum": 5000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max items",
      "type": "integer"
    },
    "maxSalary": {
      "description": "Annualised salary ceiling. Jobs whose annualised range starts above this value are excluded.",
      "maximum": 10000000,
      "minimum": 0,
      "title": "Maximum salary (annualised)",
      "type": "integer"
    },
    "minSalary": {
      "description": "Annualised salary floor. Hourly, weekly and monthly pay is converted to a yearly figure before comparison. Use salaryCurrency to compare in a specific currency.",
      "maximum": 10000000,
      "minimum": 0,
      "title": "Minimum salary (annualised)",
      "type": "integer"
    },
    "mode": {
      "default": "searchJobs",
      "description": "What to scrape. `searchJobs` runs a keyword search with filters. `browseAll` walks the newest-updated feed. `byCompany` returns a company's open roles. `byJobUrls` checks specific job URLs.",
      "editor": "select",
      "enum": [
        "searchJobs",
        "browseAll",
        "byCompany",
        "byJobUrls"
      ],
      "enumTitles": [
        "Search jobs (keyword + filters)",
        "Browse newest jobs (full feed)",
        "All jobs for company slug(s)",
        "Resolve specific job URLs"
      ],
      "prefill": "searchJobs",
      "title": "Mode",
      "type": "string"
    },
    "salaryCurrency": {
      "default": "",
      "description": "Only compare and keep jobs paid in this currency. Leave blank to compare each listing in its own currency (no conversion is applied).",
      "editor": "select",
      "enum": [
        "",
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD",
        "NZD",
        "JPY",
        "CHF",
        "CNY",
        "HKD",
        "SGD",
        "SEK",
        "KRW",
        "NOK",
        "INR",
        "MXN",
        "TWD",
        "ZAR",
        "BRL",
        "IDR",
        "PHP",
        "THB",
        "CLP",
        "CZK",
        "DKK",
        "HUF",
        "ILS",
        "TRY",
        "PLN"
      ],
      "enumTitles": [
        "Any currency",
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD",
        "NZD",
        "JPY",
        "CHF",
        "CNY",
        "HKD",
        "SGD",
        "SEK",
        "KRW",
        "NOK",
        "INR",
        "MXN",
        "TWD",
        "ZAR",
        "BRL",
        "IDR",
        "PHP",
        "THB",
        "CLP",
        "CZK",
        "DKK",
        "HUF",
        "ILS",
        "TRY",
        "PLN"
      ],
      "prefill": "",
      "title": "Salary currency",
      "type": "string"
    },
    "searchQuery": {
      "description": "Free-text keyword search (mode=searchJobs). Leave blank to page through the newest searchable listings. Himalayas caps keyword searches at 5,000 results.",
      "editor": "textfield",
      "prefill": "software engineer",
      "title": "Search query",
      "type": "string"
    },
    "seniority": {
      "default": [],
      "description": "Keep jobs at any of these seniority levels. Leave empty for all levels.",
      "editor": "stringList",
      "prefill": [],
      "title": "Seniority",
      "type": "array"
    },
    "sortBy": {
      "default": "recent",
      "description": "Search result order. Browse mode always uses newest-updated order.",
      "editor": "select",
      "enum": [
        "relevant",
        "recent",
        "salaryAsc",
        "salaryDesc",
        "nameAToZ",
        "nameZToA",
        "jobs"
      ],
      "enumTitles": [
        "Relevance",
        "Most recent",
        "Salary low to high",
        "Salary high to low",
        "Company A to Z",
        "Company Z to A",
        "Number of open roles"
      ],
      "prefill": "recent",
      "title": "Sort order",
      "type": "string"
    },
    "timezone": {
      "description": "Keep jobs that accept this UTC offset, e.g. `-5`, `UTC-5` or `UTC+05:30`. Leave blank for any timezone.",
      "editor": "textfield",
      "title": "Timezone offset",
      "type": "string"
    },
    "worldwide": {
      "default": false,
      "description": "Only jobs with no country restrictions. Overrides the country filter.",
      "prefill": false,
      "title": "Worldwide only",
      "type": "boolean"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Himalayas Remote Job Finder Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
jobsstringoptionalDataset containing all scraped Himalayas remote job records.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Remote job listings from Himalayas with salary range and pay period, annualised pay, seniority, employment type, location and timezone restrictions, tech tags and optional job skills or company tech stack.",
  "properties": {
    "jobs": {
      "description": "Dataset containing all scraped Himalayas remote job records.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Remote jobs",
      "type": "string"
    }
  },
  "title": "Himalayas Remote Job Finder Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Jobs",
      "transformation": {
        "fields": [
          "title",
          "company",
          "employmentType",
          "seniority",
          "salaryMin",
          "salaryMax",
          "salaryPeriod",
          "salaryCurrency",
          "salaryAnnualMin",
          "salaryAnnualMax",
          "location",
          "skills",
          "postedAt",
          "jobUrl"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Himalayas Remote Job Finder with Salary & Tech Stack

Himalayas is a remote-first job board with roles from startups and established companies around the world. This actor turns its public listings into structured records: search by keyword, walk the newest jobs, pull a company's open roles, or resolve specific job URLs. When an employer publishes pay, each record carries the salary range, its pay period and an annualised comparison; every record also includes seniority, employment type, location and timezone restrictions, and optional job skills or company tech stack. No account, API key or proxy is required.

What this actor does

  • Four modes: searchJobs, browseAll, byCompany, byJobUrls
  • Remote-work filters: country, worldwide-only, exclude worldwide, seniority, employment type, timezone and sort order
  • Salary done properly: raw minimum/maximum plus salaryPeriod and annualised salaryAnnualMin / salaryAnnualMax
  • Optional enrichment: per-job required skills and per-company tech stack
  • Clean records: empty fields are omitted, so a record never contains a null or placeholder value
  • URL-safe identity: every record has a stable jobGuid and a clean listing jobUrl; applyUrl is the link Himalayas publishes for applications

Output per job

Field Description
jobId Job slug from the listing URL
jobGuid Canonical Himalayas listing URL; globally unique across companies
jobUrl Clean link to the job on Himalayas
applyUrl Application link exactly as Himalayas publishes it
source Always "Himalayas"
title Job title
company Hiring company name
companySlug Canonical company slug
companyUrl Company profile on Himalayas
companyLogo Company logo image URL, when published
location First five accepted countries, or "Worldwide"
locationRestrictions Full list of countries the job is open to; omitted when the job is open worldwide
worldwide true when the job has no country restriction
remotePolicy Always "remote"
salaryMin / salaryMax Published pay range in the listing's own salaryPeriod
salaryPeriod annual, monthly, fortnightly, weekly or hourly
salaryAnnualMin / salaryAnnualMax Pay converted to a yearly figure for comparison
salaryCurrency Currency code for the published pay range, when provided
employmentType full-time, part-time, contract, temporary, internship, volunteer or other
seniority Seniority levels the role targets
techStack Himalayas job tags, including role and technology tags
categories Broader parent categories, e.g. Developer, Data Science, Design
skills Required skills, when Include job skills is on
companyTechStack Company-level tools, when Include company tech stack is on and published
companyTechStackCategories Company tech stack grouped by category, when available
timezoneRestrictions UTC offsets the job accepts, e.g. UTC-5, UTC+05:30; omitted when the job accepts any timezone
postedAt When Himalayas last updated the listing
expiresAt Latest date the listing stays open
excerpt Short plain-text summary
description Full job description HTML
recordType Always "job"
scrapedAt When the record was scraped

Input

Field Type Default Description
mode string (required) searchJobs searchJobs keyword search; browseAll newest-updated feed; byCompany company openings; byJobUrls specific URLs
searchQuery string – Keyword search, e.g. "data engineer" (mode=searchJobs)
companySlug string – Company slug or URL; comma-separate several, e.g. "stripe,vercel" (mode=byCompany)
jobUrls array [] Himalayas job URLs to resolve (mode=byJobUrls)
country string "" (any) Only jobs open to this country; worldwide jobs are included unless excluded
worldwide boolean false Only jobs with no country restriction; overrides country
excludeWorldwide boolean false With a country set, exclude jobs open worldwide
seniority array [] Entry-level, Mid-level, Senior, Manager, Director, Executive
employmentType string "" (any) full-time, part-time, contract, temporary, internship, volunteer, other
timezone string – Accepted UTC offset, e.g. -5, UTC-5, UTC+05:30
categories array [] Match categories, parent categories or tech tags, e.g. "python", "developer"
minSalary integer – Annualised salary floor
maxSalary integer – Annualised salary ceiling
salaryCurrency string "" (any) Compare only jobs paid in this currency
sortBy string recent relevant, recent, salaryAsc, salaryDesc, nameAToZ, nameZToA, jobs (browse mode is always newest-updated)
includeSkills boolean false Fetch per-job required skills; one extra lookup per job (Himalayas' anonymous limit is 30/minute and 200/day)
includeCompanyTechStack boolean false Fetch the employer's company-level tech stack once per company; shares the same lookup limit
maxItems integer 20 (prefill 3) Hard cap on emitted job records (1–5000)

Example: senior Python roles with a salary floor

{
  "mode": "searchJobs",
  "searchQuery": "python",
  "seniority": ["Senior"],
  "employmentType": "full-time",
  "minSalary": 120000,
  "salaryCurrency": "USD",
  "includeSkills": true,
  "maxItems": 50
}

Example: newest worldwide jobs

{
  "mode": "browseAll",
  "worldwide": true,
  "maxItems": 200
}

Example: all open roles at two companies

{
  "mode": "byCompany",
  "companySlug": "stripe,vercel",
  "maxItems": 100
}

Example: resolve specific job URLs

{
  "mode": "byJobUrls",
  "jobUrls": [
    "https://himalayas.app/companies/sola-payments/jobs/senior-data-platform-engineer"
  ],
  "includeSkills": true
}

Use cases

  • Remote job boards — build a fresh feed with salary, seniority and location restrictions
  • Salary research — compare annualised pay across roles, countries and currencies
  • Recruiting and sourcing — monitor a target company's open roles and required skills
  • Tech hiring analytics — track which technologies appear in remote job postings
  • Job alerts — run on a schedule and filter by country, seniority, employment type or keyword
  • Data enrichment — resolve a list of known Himalayas job URLs into structured records

FAQ

Do I need a Himalayas account, API key or proxy? No. The actor reads Himalayas' public job listings. There is no login, key or proxy setup.

Why are salary fields missing on some jobs? Many employers do not publish pay on Himalayas. When a listing has no salary figures, all salary fields are omitted. The actor never fills them with estimates.

What is the difference between salaryMin and salaryAnnualMin? salaryMin and salaryMax are the published numbers in salaryPeriod — which may be hourly, monthly or annual. salaryAnnualMin and salaryAnnualMax convert those numbers to a yearly figure so different listings can be compared. For example, 50 USD/hour becomes 104,000 USD/year.

Does the salary filter convert between currencies? No. The filter compares annualised numbers in the listing's own currency. Set salaryCurrency to compare only jobs paid in one currency, for example USD. Always read salaryCurrency alongside the figures. Jobs without a published salary are excluded whenever a salary floor, ceiling or currency filter is set.

Why did I get at most 5,000 results for a keyword? Himalayas caps keyword searches at 5,000 results. Use browseAll to walk the full newest-updated feed, or add country, seniority or employment filters to narrow the search. The run status tells you when the cap was reached.

How do I collect every listing on Himalayas? Use browseAll with a high maxItems. The actor follows Himalayas' cursor and never repeats a job; the feed currently holds more than 130,000 live listings. searchJobs and byCompany send country, worldwide, seniority, employment type, timezone and sort filters to Himalayas. browseAll applies country, seniority, employment type, timezone, salary and category filters in the actor, so a narrow filter can scan many pages; maxItems counts matches, not scanned jobs.

Why are skills missing when I turn on Include job skills? Not every listing exposes a skill list, and Himalayas' public lookup limit allows 30 job/company lookups per minute and 200 per day without an account. The actor stops enrichment when that limit is reached and keeps the base records. For a large run, split it into smaller runs, run enrichment on a shortlist, or leave enrichment off.

Why is companyTechStack missing? Company tech stacks are optional on Himalayas and many employers do not publish one. When a company has no stack, the field is omitted.

Why was one of my job URLs skipped? A URL is skipped when it is not a Himalayas /companies/<slug>/jobs/<job> link, when the job no longer exists, or when it has closed. Salary and category filters also apply in this mode, so a resolved job that does not match is skipped too; the status message reports how many URLs were closed or invalid.

Is this actor affiliated with Himalayas? No. It is an independent actor that reads Himalayas' public job data and links back to the original listings. Himalayas is the source of the data.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build cNQtmjcIwQjWeE4SR. Documentation is regenerated from the default published build; private drafts are not included.