Remote Jobs Scraper - RemoteOK, Remotive & Himalayas
Pricing
Pay per usage
Remote Jobs Scraper - RemoteOK, Remotive & Himalayas
One deduplicated feed of remote jobs from RemoteOK, Remotive and Himalayas. USD-normalised salaries, contact details stripped, incremental mode. Pay per job row.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Bora Sipahi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
One run, three remote job boards, one clean feed. Remote Jobs Scraper pulls the public APIs of RemoteOK, Remotive and Himalayas, removes the same job posted on more than one board, normalises salaries to USD per year, strips recruiter e-mail addresses and phone numbers, and gives you a single JSON or CSV dataset you can filter by keyword, category, seniority, employment type, salary and location.
It is priced per job row, lower than any single-board scraper on the Store, and it needs no proxies, no browser and no login, so runs finish in seconds.
What you get
Each dataset row is one job with the same field names regardless of the board it came from:
| Field | Meaning |
|---|---|
source, sourceUrl, sourceAttribution | Which board, the listing URL, and the attribution text the board requires |
jobId | Stable id such as remoteok:1137307 |
title, companyName, companySlug, companyLogo | Basics |
categories[], parentCategories[], tags[] | The board's own taxonomy |
seniority | intern, junior, mid, senior, lead, manager, director, executive or null |
employmentType | full-time, part-time, contract, internship or null |
minSalary, maxSalary, currency, salaryPeriod | As published |
salaryUsdAnnualised | The published range converted to USD per year so you can compare boards |
locationRestrictions[], timezoneRestrictions[] | Where the employer will hire |
descriptionHtml, descriptionText, excerpt | Full description, plain text version, short summary |
applicationLink, publishedAt, expiresAt | How and when |
alsoOn[] | Other boards where the same job appears (when deduplication is on) |
scrapedAt | Run timestamp |
How to use it
- Open the Actor and press Start. The defaults return up to 100 jobs from the last 7 days across all three boards.
- To narrow the feed, set Search query (for example
react, node), pick a Seniority or Employment type, or set Minimum annual salary (USD). - Download the dataset as JSON, CSV or Excel, or read it through the API with the link on the Output tab.
- For a daily digest of only new jobs, turn on Incremental mode and add a Schedule. Every job already delivered is remembered in a named key-value store and skipped next time.
The Actor can also be called from the Apify API, the Apify MCP server or any AI agent that supports agentic payments.
Pricing
You pay for one event, job-listing, once per job row saved to the dataset. Nothing is charged for jobs that were filtered out, deduplicated or already delivered in incremental mode. Set Maximum jobs to cap the cost of a run. A full default run of 100 jobs costs under ten cents; see the Pricing tab for the exact per-row price and volume tiers.
There is no separate charge for the full description and no platform usage is passed on to you.
Input example
{"sources": ["remoteok", "remotive", "himalayas"],"searchQuery": "typescript, node","seniority": ["senior", "lead"],"employmentType": ["full-time"],"minSalary": 120000,"postedWithinDays": 14,"maxItems": 200,"deduplicate": true,"stripContactDetails": true,"incremental": false}
Output example
{"source": "himalayas","sourceUrl": "https://himalayas.app/companies/oura-health-ltd/jobs/senior-product-manager-new-experiences","sourceAttribution": "Data sourced from Himalayas (https://himalayas.app)","jobId": "himalayas:oura-health-ltd/jobs/senior-product-manager-new-experiences","title": "Senior Product Manager, New Experiences","companyName": "Oura Health Ltd","seniority": "senior","employmentType": "full-time","minSalary": 147900,"maxSalary": 203000,"currency": "USD","salaryPeriod": "annual","salaryUsdAnnualised": 203000,"locationRestrictions": ["United States"],"publishedAt": "2026-09-06T04:24:11.000Z","alsoOn": [],"scrapedAt": "2026-09-07T00:30:00.000Z"}
Where the data comes from, and the rules that come with it
- RemoteOK asks that you link back to the listing on remoteok.com with a normal (follow) link and name Remote OK as the source. The Remote OK logo is a trademark and must not be reused. The
sourceAttributionfield carries the wording. - Remotive asks for a link back to the listing and a mention of Remotive as the source, and delays its public feed by 24 hours. Remotive also asks that its jobs are not resubmitted to other job sites or used to collect sign-ups.
- Himalayas asks for a visible link back to himalayas.app and a mention that the data is sourced from Himalayas. Its feed is cached daily, so running more than once a day gives you nothing new.
- We Work Remotely is deliberately not included. Its API terms prohibit building a job search or job advertising service on the data.
Only company job postings are collected. Contact details that recruiters paste into descriptions are removed by default. Candidate profiles and any personal data are never touched.
Related Actors
- Himalayas Remote Jobs is the official single-board Actor from Himalayas itself. Use it when you want Himalayas only and every field exactly as they publish it.
- Pair this Actor with an e-mail or Slack integration to get a daily digest of new matching jobs.
FAQ
Why do I get fewer jobs than Maximum jobs? The boards publish a limited number of new jobs per day and the default only looks back 7 days. Raise Posted within (days) or clear the filters.
Why are some salaries null? Most postings do not publish a salary. When a board gives one, it is converted to USD per year with approximate exchange rates for comparison only.
Is a duplicate charged twice? No. With deduplication on, one copy is saved and charged and the other boards are listed in alsoOn.
Can I run it every hour? You can, but RemoteOK and Remotive publish a handful of jobs a day and Himalayas refreshes daily. Once or twice a day with incremental mode is the sensible setting.
Something broke? Open an issue on the Actor's Issues tab. The Actor is tested against all three boards several times a day and fixed when a board changes.