RemoteOK Jobs Scraper avatar

RemoteOK Jobs Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
RemoteOK Jobs Scraper

RemoteOK Jobs Scraper

Scrape remote job listings from Remote OK (remoteok.com): position, company, tags, location, salary range, posted date and apply URL. Pull Remote OK's entire live board or filter by tags in bulk. One clean row per job, no login or API key needed.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Nicolas van Arkens

Nicolas van Arkens

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

RemoteOK Jobs Scraper πŸŒπŸ’Ό

Scrape remote job listings from Remote OK β€” position, company, tags, location, salary range, posted date and apply URL β€” as clean, structured JSON/CSV/Excel. Pull Remote OK's entire live board in one run, or target only the tags (skills, roles, categories) you care about. No login, no API key, no browser β€” one tidy row per job.

Great for building a remote-jobs board or newsletter, sourcing candidates, market/salary research, feeding an ATS or job aggregator, lead-gen for recruiters, and tracking who is hiring remotely.


What you get (fields)

Every job is one flat row with these fields:

FieldDescription
idRemote OK job id (stable, unique β€” use it to de-duplicate across runs)
slugRemote OK URL slug
positionJob title, e.g. "Senior Python Engineer"
companyHiring company name
locationLocation / region text the employer set (e.g. "United States", "Worldwide", "Philippines") β€” remote roles often list a region or timezone
isRemoteAlways true β€” every Remote OK job is remote
tagsList of Remote OK tags (skills / role / category), e.g. ["python","backend","senior","aws"]
salaryMin / salaryMaxDisclosed salary range in USD (many posts don't disclose one β†’ null)
salaryCurrency"USD" when a salary is disclosed
salaryPeriod"year" or "hour" (inferred from magnitude)
postedAtISO 8601 timestamp the job was posted
epochUnix timestamp the job was posted
descriptionFull job description as clean plain text (HTML stripped, mojibake fixed)
descriptionHtmlThe original job description HTML (for rendering)
applyUrlRemote OK apply URL for the job
urlCanonical Remote OK listing URL
sourceTagWhich tag feed this job first surfaced under (null = the whole-board feed)
scrapedAtISO 8601 timestamp of the scrape

How it works β€” bulk by design

Remote OK publishes a public JSON feed. Each feed (whole-board or per-tag) returns roughly its 100 most-recent jobs, and Remote OK ignores offset/page params β€” so depth comes from breadth: the scraper fetches one feed per tag you list, plus the whole-board feed, and merges everything, removing duplicate job ids globally. Supply a broad tag list (the default does) and you pull essentially Remote OK's entire live board (~1,000–1,200 unique jobs) in a single run. Trim the list to scrape just your niches.

You are only billed for unique jobs β€” a posting seen under five tags is charged once.


Input

InputWhat it does
Tags / keywords (tags)Remote OK tags to scrape (python, react, design, marketing, customer support, devops, sales, …). One feed per tag, merged & de-duplicated. The default list pulls the whole board; multi-word tags like customer support, web dev, content writing, front end work as written. Leave empty to scrape only the whole-board feed.
Also scrape the whole-board feed (includeFullFeed)On by default β€” also grabs the ~100 most-recently posted jobs across every category.
Minimum salary (USD) (minSalary)Optional β€” keep only jobs whose disclosed salary is at least this. Undisclosed-salary jobs are dropped when set.
Max results (maxResults)Cap on unique jobs for the whole run (billed per row). Lower it to cap cost on a test run.
Proxy (proxyConfiguration)The actor fetches directly first (cheapest) and only falls back to this proxy, rotating sessions, if a response is blocked.

Example input

{
"tags": ["python", "react", "devops", "design", "marketing", "customer support"],
"includeFullFeed": true,
"minSalary": 80000,
"maxResults": 1000
}

Grab the whole board by keeping the default tag list and setting maxResults high. Grab a single niche with, e.g., {"tags": ["golang"], "includeFullFeed": false}.


Output sample

{
"id": "1134961",
"slug": "remote-senior-product-manager-platform-delinea-1134961",
"position": "Senior Product Manager Platform",
"company": "Delinea",
"location": "Redwood City",
"isRemote": true,
"tags": ["product manager", "exec", "saas", "infosec", "cloud", "senior", "engineer"],
"salaryMin": 130000,
"salaryMax": 162000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"postedAt": "2026-07-17T08:00:42+00:00",
"epoch": 1784275242,
"description": "About Delinea:\nDelinea is a pioneer in securing human and machine identities...",
"descriptionHtml": "<p><strong>About Delinea:</strong><br />Delinea is a pioneer...</p>",
"applyUrl": "https://remoteok.com/remote-jobs/remote-senior-product-manager-platform-delinea-1134961",
"url": "https://remoteok.com/remote-jobs/remote-senior-product-manager-platform-delinea-1134961",
"sourceTag": "saas",
"scrapedAt": "2026-07-20T05:56:41.068205+00:00"
}

Use cases

  • Build or fill a remote-jobs board / newsletter β€” pull the whole board daily, de-duplicate on id, and publish.
  • Recruiting & sourcing β€” see which companies are hiring remotely for a skill, with salary bands where disclosed.
  • Salary & market research β€” analyze disclosed pay across tags and roles over time.
  • Feed an aggregator / ATS β€” clean structured rows ready to import.

FAQ

Do I need a Remote OK account or API key? No. The feed is public; the actor needs neither.

How many jobs can I get per run? Roughly Remote OK's whole live board β€” about 1,000–1,200 unique jobs β€” with the default tag list. Each individual feed is capped at ~100 by Remote OK, so more tags = more coverage.

Why don't all jobs have a salary? Many employers don't disclose one on Remote OK. Those rows have salaryMin/salaryMax = null. Use Minimum salary to keep only disclosed-salary jobs.

Can I get just one skill/category? Yes β€” set tags to that one tag and turn includeFullFeed off.

Is the description clean? Yes β€” the actor strips HTML into plain text and fixes Remote OK's text encoding quirks. The original HTML is also kept in descriptionHtml.

How is it billed? Pay-per-result: one charge per unique job returned. Duplicates across tags are never double-charged.


Attribution

Data comes from Remote OK (remoteok.com). Per Remote OK's API terms, if you republish this data please link back to the job's Remote OK URL (the url field) and credit Remote OK as the source.