RemoteOK Jobs Scraper - Real Remote Jobs Only avatar

RemoteOK Jobs Scraper - Real Remote Jobs Only

Pricing

from $2.00 / 1,000 job returneds

Go to Apify Store
RemoteOK Jobs Scraper - Real Remote Jobs Only

RemoteOK Jobs Scraper - Real Remote Jobs Only

Scrape Remote OK into a clean JSON or CSV job dataset of genuinely remote developer jobs, with the on-site roles that leak into the feed filtered out. Parsed salary data, normalised hiring regions, seniority, and a ghost-job score flagging expired and stale job postings.

Pricing

from $2.00 / 1,000 job returneds

Rating

0.0

(0)

Developer

Dave Fergins

Dave Fergins

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Remote OK Jobs Scraper

Scrape Remote OK into a clean JSON or CSV job dataset of genuinely remote developer jobs, with the on-site roles that leak into the feed filtered out. Parsed salary data, normalised hiring regions, seniority, and a ghost-job score flagging expired and stale job postings.

What this does that a plain scraper does not

Remote OK's feed is not all remote jobs. Measured against their live API on 2026-08-15, 90 of 100 listings were not remote roles at all — a barber in Regina, a live-in nanny in Bermuda, store managers, a marine painter, a bell person — plus rows that are not job postings in any sense: Test Job Title, Title TBD, HYGPOOLOP, Looking for Job, Seeking a job.

A scraper that dumps the feed hands you all of that and calls it remote work.

This one requires positive evidence that a listing is actually remote: a blank location (the board's way of saying anywhere), an explicit remote word in any spelling including Remoto, or a country/continent-level region that states eligibility rather than an address. A named town is a desk until the board says otherwise.

The trade is deliberate and worth knowing before you buy: you get roughly 10 real remote jobs instead of 100 rows, most of which were never remote. If you want the raw feed including on-site roles, this is the wrong Actor.


What each row contains

Identitystable id across runs, posting URL, direct applyUrl where published
The roletitle, company, plain-text description, tags, employment type, seniority
Whereremote flag, the board's own location text, and normalised regions (worldwide / usa / canada / latam / uk / europe / apac / africa / middle_east)
Paymin, max, currency and period as numbers, annualised on request
Whenposted date, expiry where published, age in days
Trustfreshness 0-1, ghostRisk low/medium/high, and ghostReason explaining the verdict in plain words

The trust fields

Job boards are full of postings still published but no longer open — filled roles left up for pipeline, evergreen "talent pool" adverts, and listings nothing ever expires. Every row here carries a risk band and the reasons behind it:

{
"title": "Senior Backend Engineer",
"company": "Acme",
"freshness": 0.71,
"ageDays": 10.4,
"ghostRisk": "low",
"ghostReason": ["recent, and nothing contradicts it"]
}

Signals come from what the board actually publishes: age, its own expiry date where there is one, missing application links, and evergreen phrasing. Nothing is inferred by a model. Freshness decays on a 21-day half-life, and a posting with no date scores 0.5 rather than 1.0 — absence of evidence is not evidence of freshness.

Example input

{
"query": ["golang", "backend"],
"regions": ["usa"],
"seniority": ["senior", "lead"],
"maxAgeDays": 21,
"maxGhostRisk": "low",
"maxItems": 200
}

Everything is optional — run it empty and you get the whole board, best-first.

  • Search terms are OR-ed. ["go", "rust"] returns jobs mentioning either.
  • Worldwide jobs match every region filter, because a job open to everyone is open to you.
  • minSalary is annualised first, so hourly and monthly rates compare correctly.
  • maxItems is your cost ceiling — you are billed per job returned.

Output

One dataset item per job, ordered best-first: lowest ghost-job risk, then freshest. Export as JSON, CSV or Excel, or read it from the API like any Apify dataset.

Common uses

  • Remote developer and engineering jobs. Remote OK skews heavily technical, and every row is checked to be genuinely work-from-home rather than hybrid dressed up as remote.
  • Salary benchmarking and compensation data. salaryMin, salaryMax, salaryCurrency and salaryPeriod are numbers, not strings, and minSalary annualises before comparing — so hourly, monthly and yearly postings line up.
  • Filtering out expired and stale job postings. ghostRisk, ghostReason and freshness say which listings are probably no longer open, so you can drop them before anyone wastes an application.
  • Job market and hiring data. Run it on a schedule and track how hiring, salary ranges, seniority mix and regions move over time.
  • Building a job board, job feed or job alerts. id is stable across runs, so diffing today's dataset against yesterday's gives you genuinely new jobs rather than a board reshuffle.
  • Recruitment and talent research. Company, title, tags, seniority, employment type and normalised regions on every row.

Export as JSON, CSV or Excel, or read the dataset straight from the Apify API.

How it fetches

Remote OK publishes a public, documented, unauthenticated JSON feed and this Actor reads it — paced, budgeted, with an honest user agent. No HTML scraping, no bot-check evasion, no personal data. Job adverts only.

How to scrape Remote OK jobs with this Actor

  1. Open the Actor and press Start. With no input it returns every job Remote OK currently lists, best-first.
  2. Narrow it when you need to: search terms, hiring regions, seniority, a minimum salary, a maximum ghost-job risk, and maxItems as a hard cost ceiling.
  3. Export the dataset as JSON, CSV or Excel, read it through the Apify API, or schedule the run and attach a webhook or an integration (Google Sheets, Make, Zapier, Slack) so new Remote OK jobs arrive on their own.

How much does it cost to scrape Remote OK?

You pay per job returned, on Apify's pay-per-event model: $0.006 per job on the Free and Bronze plans, $0.003 on Silver, $0.002 on Gold and above, with no platform usage charged on top. A run that returns nothing costs nothing. A typical run returns about 10 genuinely remote jobs out of the roughly 100 rows Remote OK publishes, so a full pull is a few cents. Set maxItems to cap a run: 200 jobs cost at most $1.20, and Apify's free plan includes a monthly usage credit, so a first run costs nothing out of pocket.

All eight share one schema, one ghost-job model and one set of filters, so a query written for this board runs unchanged against any of the others.

FAQ

Does Remote OK have an official API, and is it allowed to scrape it? Remote OK publishes a public, documented, unauthenticated JSON feed and this Actor reads it — paced, budgeted, with an honest user agent. No HTML scraping, no bot-check evasion, no personal data. Job adverts only.

How often does Remote OK post new jobs, and how often should I run this? New listings appear every day. A daily schedule keeps the dataset current, and because id is stable across runs, diffing today's dataset against yesterday's yields only the genuinely new Remote OK jobs, not a reshuffle.

How do I get only fresh, still-open Remote OK jobs? Set maxGhostRisk to low and maxAgeDays to 14 or 21. Every row also carries ghostReason, the plain-language grounds for its rating, so you can apply your own rule instead.

What is a ghost job? A posting that is still published but no longer open: a filled role left up for pipeline, an evergreen "talent pool" advert, or a listing on a board that never expires anything. The ghostRisk band and freshness score flag them from what the board itself publishes — age, expiry dates, missing application links, evergreen phrasing — never from a model's guess.

Does it include salaries? Where Remote OK publishes pay, yes: salaryMin, salaryMax, salaryCurrency and salaryPeriod are parsed into numbers and the original wording stays in salaryRaw. Set salaryOnly to keep only rows with a published salary.

Do I need proxies, a login or an API key? No. Remote OK is read the way it asks to be read, and Apify runs the Actor for you; nothing to install and no credentials to manage.

Can I export Remote OK jobs to CSV, Excel or Google Sheets? Yes. Every run's dataset downloads as JSON, CSV or Excel from the Apify Console or API, and the Google Sheets integration writes rows straight into a sheet.

Want more than one board?

Remote Jobs Aggregator runs this same pipeline across six boards at once — Remote OK, Remotive, Himalayas, Arbeitnow, We Work Remotely and Jobicy — folding duplicates and recording which boards carry each job.

Measured while building it: those six boards barely overlap. Only 1 of 1,513 company+title pairs appeared on more than one. The aggregator is not about removing duplication — there is almost none — it is about getting six boards' worth of distinct jobs from one call.