
RemoteOK Job Scraper
hipersoft/remoteok-scraper
Scrape remote job listings from RemoteOK: position, company, tags, location, salary range, and full job description. One request, complete records.
Total users
2Monthly users
1Total runs
126Per job scraped
$0.001Last rebuilt
Oct 26, 2026Overview
Scrape remote job listings from RemoteOK (remoteok.com) with rich, structured data: position, company, tags, location, salary range, and the full job description — all in a single pass. Fast, reliable, no login or API key.

Features
- 🌍 Remote-first jobs — the latest openings across dev, design, marketing, ops, finance and more
- 🏷️ Tags — every job's skill/category tags, ideal for filtering and analysis
- 💰 Salary — structured min/max (USD) when the listing provides it
- 📄 Full descriptions included — the complete job description comes with every record, no extra step
- 🔎 Flexible filters — by keyword, tag, location, and salary range
- ⚡ Fast & cheap — clean structured JSON via RemoteOK's public API
Input
{
"searchQueries": ["react", "senior"],
"tags": ["dev", "engineer"],
"location": "United States",
"salaryMin": 80000,
"maxItems": 100
}
| Field | Description |
|---|---|
searchQueries |
Keywords matched against title, company, tags, location (blank = all) |
tags |
RemoteOK tags; a job matches if it has any of them |
location |
Location substring filter |
salaryMin |
Only jobs whose salary reaches at least this (USD) |
salaryMax |
Only jobs whose minimum salary is at or below this (USD) |
maxItems |
Max jobs to return |
All fields are optional — run with no input to get the latest remote jobs.
Output

{
"type": "job",
"id": "1134655",
"slug": "remote-senior-react-engineer-acme-1134655",
"position": "Senior React Engineer",
"company": "Acme Inc",
"companyLogo": "https://remoteok.com/assets/…/logo.png",
"location": "Worldwide",
"remote": true,
"tags": ["dev", "react", "engineer", "senior"],
"salary": { "currency": "USD", "min": 100000, "max": 140000 },
"salaryText": "$100,000 - $140,000",
"postedDate": "2026-07-09T15:04:15+00:00",
"postedEpoch": 1783609455,
"description": "Full job description text…",
"applyUrl": "https://remoteok.com/remote-jobs/…",
"url": "https://remoteok.com/remote-jobs/…",
"source": "Remote OK"
}
Output schema
| Field | Type | Description |
|---|---|---|
type |
string | Record type (e.g. job). |
id |
string | RemoteOK listing ID. |
slug |
string | URL slug for the listing. |
position |
string | Job title. |
company |
string | Hiring company name. |
companyLogo |
string | URL of the company logo. |
location |
string | Location or region for the role. |
remote |
boolean | Whether the role is remote. |
tags |
array | Skill and category tags on the listing. |
salary |
string | Salary range for the listing, when provided. |
salaryText |
string | Human-readable salary range text. |
postedDate |
string (ISO date) | When the job was posted. |
postedEpoch |
integer | Posting time as a Unix timestamp. |
description |
string | Full job description as plain text. |
descriptionHtml |
string | Full job description with HTML formatting. |
applyUrl |
string (URL) | Link to apply for the job. |
url |
string (URL) | Link to the listing on RemoteOK. |
source |
string | Source credited for the listing. |
Use cases
- Job aggregation — feed a job board or newsletter with fresh remote listings
- Remote-work & salary research — analyze demand and pay by skill tag
- Recruiting & sourcing — track remote openings by role, company, or stack
- Lead generation — find companies actively hiring remotely
FAQ
Do I need a RemoteOK account or API key? No. The Actor uses Remote OK's public API — no login and no API key required.
How many jobs can I get per run?
Use maxItems to set how many jobs to return. The API serves the latest listings, so a run returns the most recent remote jobs that match your filters.
Is scraping RemoteOK legal? Only public data is used, via Remote OK's official public API. Per their API Terms, every record links back to its job URL on Remote OK with Remote OK credited as the source. Review their terms for your specific use case.
What's the output format?
Structured JSON — one record per job with position, company, tags, location, structured salary (min/max USD), postedDate, the full description and the apply url. Export as JSON, CSV or Excel.
Can I filter by keyword, tag or salary?
Yes. Filter with searchQueries (matched against title, company, tags and location), tags, a location substring, and salaryMin/salaryMax. Leave everything blank to get the latest remote jobs.
Can I connect this to other apps? The RemoteOK Job Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Widen your remote-jobs pipeline with related scrapers:
- We Work Remotely Jobs Scraper — remote jobs with full descriptions by category.
- Remote Jobs Aggregator — five remote boards merged and de-duplicated into one dataset.
- Dice Jobs Scraper — US tech jobs from Dice with salaries.
- Company Careers Job Scraper — roles from Greenhouse, Lever and Ashby career pages.
Notes
Data comes from Remote OK's public API and, per their API Terms of Service, every record links back to its job URL on Remote OK with Remote OK credited as the source. The API serves the latest listings, so runs return the most recent remote jobs (filtered by your criteria). Only public data is scraped; no login or API key is required.
Input
| Field | Type | Description |
|---|---|---|
searchQueriesSearch keywords | array | Optional keywords to match against job title, company, tags and location (e.g. "react", "designer", "devops"). Leave empty to return all latest remote jobs. |
tagsTags | array | Optional RemoteOK tags to filter by (e.g. "dev", "design", "marketing", "senior"). A job matches if it carries any of these tags. |
locationLocation | string | Optional location filter (e.g. "United States", "Europe"). Matched as a substring of the job's location field. |
salaryMinMinimum salary (USD) | integer | Only jobs whose salary range reaches at least this amount (USD/year). Note: many RemoteOK listings have no salary and will be excluded when this is set. |
salaryMaxMaximum salary (USD) | integer | Only jobs whose minimum salary is at or below this amount (USD/year). |
maxItemsMax jobs | integer | Maximum number of jobs to return. Default: 100 |
proxyConfigurationProxy configuration | object | Proxy configuration. Leave the default — it is tuned for reliable results. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~remoteok-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": [
"developer"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/remoteok-scraper").call(run_input={
"searchQueries": [
"developer"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/remoteok-scraper').call({
"searchQueries": [
"developer"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Job scraped One remote job scraped from Remote OK with company, location, tags, salary and full description | $0.001 | $0.0005 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.