RemoteOK Jobs Scraper | Remote Tech Jobs, Salary & Stack
Pricing
from $0.80 / 1,000 results
RemoteOK Jobs Scraper | Remote Tech Jobs, Salary & Stack
Scrape the whole RemoteOK board into structured rows: job title, company, salary range, tech stack, location and a link to the original posting. Reads RemoteOK's public JSON feed - no browser, no proxy, no login - so a full run takes seconds. Filter by tech stack, category, region or minimum salary.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
TQM
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
RemoteOK Job Scraper turns RemoteOK's remote-job board into clean, structured rows — job title, company, salary, tech stack, location and a link back to the original posting.
It reads RemoteOK's public JSON feed directly. No browser, no proxy, no login, which is why a full run finishes in seconds and costs a fraction of a browser-driven scraper.
What data can I extract from RemoteOK?
| Field | Description |
|---|---|
title | Job title as posted |
company | Hiring company |
jobUrl | Link to the original RemoteOK posting |
applyUrl | Direct application link, when RemoteOK carries one |
salary | Salary string exactly as posted |
salaryMin / salaryMax | Parsed annual salary bounds |
currency | Salary currency (USD) |
location | Location as posted; Remote when the posting states none |
tags | RemoteOK's own tags, lower-cased |
techStack / skills | Technologies detected in the title and description (the two carry the same list) |
jobType | Always remote — RemoteOK is a remote-only board |
category | Job category, when one of RemoteOK's tags matches a known category |
postedAt | Publication date from the feed |
description | Posting body, HTML stripped, truncated to 1,000 characters |
jobId | Stable RemoteOK id, useful as a deduplication key |
scrapedAt | When this run collected the row |
How do I use RemoteOK Job Scraper?
- Click Try for free.
- Leave every field empty to get the whole current feed, or set a filter or two —
techStackFilter: ["aws", "kubernetes"]is a good first try. - Click Save & Start.
- When the run finishes, open the Storage tab and export as JSON, CSV, Excel or feed it straight to the API.
A default run takes a few seconds and returns whatever RemoteOK is currently listing.
Input reference
| Option | Type | Default | What it does |
|---|---|---|---|
maxJobs | integer | 100 | How many postings to return. 100 is the real ceiling — see below. |
techStackFilter | array | (none) | Keep only postings mentioning these technologies, e.g. ["aws", "terraform"]. Matched on word boundaries over the title and description, so aws does not match laws. |
categories | array | (none) | Restrict to RemoteOK categories, e.g. ["devops", "backend"]. |
minSalary | integer | 0 | Drop postings below this annual USD figure. Postings with no stated salary are also dropped once this is set. |
regions | array | (none) | Restrict by region string, e.g. ["Europe"]. |
failOnZeroResults | boolean | true | Fail the run, with a reason, when it returns nothing. See below. |
Input sample
{"maxJobs": 100,"techStackFilter": ["aws", "kubernetes", "terraform"],"minSalary": 80000,"failOnZeroResults": true}
Output sample
{"source": "remoteok","jobId": "1013845","title": "Senior Platform Engineer","company": "Acme Cloud","jobUrl": "https://remoteok.com/remote-jobs/1013845","applyUrl": "https://acmecloud.example/careers/senior-platform-engineer","salary": "$120,000 - $160,000","salaryMin": 120000,"salaryMax": 160000,"currency": "USD","location": "Remote","tags": ["devops", "aws", "kubernetes"],"techStack": ["aws", "kubernetes", "terraform"],"skills": ["aws", "kubernetes", "terraform"],"jobType": "remote","category": "devops","postedAt": "2026-09-01","description": "We are looking for a senior platform engineer to own our AWS estate...","scrapedAt": "2026-09-04T09:12:44.118Z"}
How many jobs can I scrape from RemoteOK?
Roughly 100 — and that is the whole board, not a limit we imposed.
RemoteOK's feed is a single un-paginated page carrying about 100 live postings at any time. Measured on 2026-09-04 it held 99. maxJobs is capped at 100 for that reason.
If you see an actor advertising "up to 1,000 jobs" from RemoteOK, it cannot deliver them — there are not 1,000 to deliver. To build a larger dataset over time, schedule this actor daily and deduplicate on jobId; new postings appear continuously.
A run that returns nothing tells you why
With failOnZeroResults: true (the default) an empty run fails and names the cause in its status message, for example:
Read 99 postings but every one was removed by your filters (techStackFilter=99). Loosen the filters and re-run.
This is deliberate. A zero-row run that reports success is indistinguishable from a broken actor, and on pay-per-result pricing it is you paying for nothing. Set failOnZeroResults: false if you are polling on a schedule and quiet runs are expected.
How much does it cost?
This actor is cheap to run because it never opens a browser: one HTTP request to a public JSON feed, then parsing. A full-board run is a single request regardless of how many filters you apply — a narrow techStackFilter costs exactly the same as no filter at all, because filtering happens after the fetch.
The most reliable way to price your own use case is to run it once with your real input and read the run's cost from the Runs tab, then multiply by how often you intend to schedule it.
Who is this for?
- Recruiters and talent teams benchmarking remote salaries and tracking which stacks are in demand.
- Job seekers aggregating remote roles into a spreadsheet instead of refreshing a board, with direct
jobUrllinks to apply. - Market researchers measuring remote-hiring trends, salary distributions and tech-stack adoption over time.
- Lead generation — every posting names a company that is actively spending money on engineering.
- Developers who want a job feed as JSON without writing and maintaining a scraper.
FAQ
Do I need a RemoteOK account?
No. This actor reads RemoteOK's public feed. There is no login, no cookie and no account to be banned.
Will I get blocked?
Very unlikely. The actor makes a single request to a public endpoint that RemoteOK publishes for programmatic use, and it does not need a proxy.
Is it legal to scrape RemoteOK?
This actor collects only what RemoteOK publishes publicly for anyone to read, and extracts no private user data. RemoteOK's API terms do require attribution: if you republish or display these postings, link back to the original posting and name RemoteOK as the source. Every row carries jobUrl for exactly that purpose. Using this actor does not exempt you from that obligation — please read RemoteOK's API terms before publishing what you collect.
Your results may contain personal data. You should not scrape or store personal data without a legitimate reason; if you are unsure whether yours qualifies, consult your lawyers.
Can I export to Excel or Google Sheets?
Yes. Every run's dataset downloads as JSON, CSV, XML or Excel from the Storage tab, with no code required.
Can I run this on a schedule?
Yes. Use Apify Schedules to run it daily or hourly, and deduplicate on jobId to build a growing dataset of everything RemoteOK has listed.
Integrations and API
Runs can be triggered and results collected through the Apify API, the JavaScript and Python clients, or any of Apify's built-in integrations — Zapier, Make, Slack, Google Drive, GitHub and generic webhooks. Point a webhook at a run's completion event to push new remote jobs straight into your own system.
Support
Found a bug, or a field you need that we do not return? Open an issue on this actor's Issues tab and it will reach the maintainers directly.