RemoteOK Jobs Scraper | Remote Tech Jobs, Salary & Stack avatar

RemoteOK Jobs Scraper | Remote Tech Jobs, Salary & Stack

Pricing

from $0.80 / 1,000 results

Go to Apify Store
RemoteOK Jobs Scraper | Remote Tech Jobs, Salary & Stack

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

TQM

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

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?

FieldDescription
titleJob title as posted
companyHiring company
jobUrlLink to the original RemoteOK posting
applyUrlDirect application link, when RemoteOK carries one
salarySalary string exactly as posted
salaryMin / salaryMaxParsed annual salary bounds
currencySalary currency (USD)
locationLocation as posted; Remote when the posting states none
tagsRemoteOK's own tags, lower-cased
techStack / skillsTechnologies detected in the title and description (the two carry the same list)
jobTypeAlways remote — RemoteOK is a remote-only board
categoryJob category, when one of RemoteOK's tags matches a known category
postedAtPublication date from the feed
descriptionPosting body, HTML stripped, truncated to 1,000 characters
jobIdStable RemoteOK id, useful as a deduplication key
scrapedAtWhen this run collected the row

How do I use RemoteOK Job Scraper?

  1. Click Try for free.
  2. Leave every field empty to get the whole current feed, or set a filter or two — techStackFilter: ["aws", "kubernetes"] is a good first try.
  3. Click Save & Start.
  4. 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

OptionTypeDefaultWhat it does
maxJobsinteger100How many postings to return. 100 is the real ceiling — see below.
techStackFilterarray(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.
categoriesarray(none)Restrict to RemoteOK categories, e.g. ["devops", "backend"].
minSalaryinteger0Drop postings below this annual USD figure. Postings with no stated salary are also dropped once this is set.
regionsarray(none)Restrict by region string, e.g. ["Europe"].
failOnZeroResultsbooleantrueFail 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 jobUrl links 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.

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.