RemoteOK Jobs Scraper
Pricing
from $2.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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:
| Field | Description |
|---|---|
id | Remote OK job id (stable, unique β use it to de-duplicate across runs) |
slug | Remote OK URL slug |
position | Job title, e.g. "Senior Python Engineer" |
company | Hiring company name |
location | Location / region text the employer set (e.g. "United States", "Worldwide", "Philippines") β remote roles often list a region or timezone |
isRemote | Always true β every Remote OK job is remote |
tags | List of Remote OK tags (skills / role / category), e.g. ["python","backend","senior","aws"] |
salaryMin / salaryMax | Disclosed 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) |
postedAt | ISO 8601 timestamp the job was posted |
epoch | Unix timestamp the job was posted |
description | Full job description as clean plain text (HTML stripped, mojibake fixed) |
descriptionHtml | The original job description HTML (for rendering) |
applyUrl | Remote OK apply URL for the job |
url | Canonical Remote OK listing URL |
sourceTag | Which tag feed this job first surfaced under (null = the whole-board feed) |
scrapedAt | ISO 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
| Input | What 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.