Search and export public RemoteOK remote job listings by tag, keyword, location text, salary range, and posting date.
Use this Actor to build remote-job feeds, monitor hiring signals, track salaries, enrich recruiting workflows, and collect remote-work market data. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.
At a glance
- Remote job search: Filter RemoteOK listings by skills, tags, keywords, location text, date, salary range, and maximum item count.
- Spreadsheet-ready rows: Export company, role, tags, salary range, location, apply URL, source URL, logo, and scrape timestamp.
- Description control: Include HTML descriptions when you need full job text, or keep rows lean for dashboards.
- Monitoring workflows: Schedule focused searches for new roles, salary changes, niche job feeds, or market reports.
- API export: Send RemoteOK job rows to newsletters, job boards, CRMs, dashboards, databases, or AI agents.
What can it do?
RemoteOK Jobs Scraper extracts structured remote job data from public RemoteOK listings and saves one dataset row per job.
- Find roles by stack or category: Use tags such as
python,react,sales,marketing, orcustomer support. - Add free-text matching: Use
keywordsfor title, company, tag, location, or description matches. - Filter by market: Keep listings by location text, salary range, or posting date.
- Collect links: Export apply URLs and source URLs for follow-up.
- Build recurring feeds: Schedule daily or weekly runs with
sinceDateand focused filters.
Common workflows
- Remote recruiting: Track remote engineering, support, sales, or marketing roles by skill and region.
- Job-board feeds: Build a curated remote-work feed or newsletter from current listings.
- Salary research: Monitor visible salary ranges for remote roles and skill categories.
- Lead generation: Find companies actively hiring remote workers in a target function.
- Market analysis: Compare demand across tags, locations, and posting dates.
- Automation: Feed job rows into alerts, dashboards, enrichment systems, or AI matching tools.
What data can you extract?
The Actor returns one dataset row per public RemoteOK job listing.
| Field | Description |
|---|---|
id |
RemoteOK job identifier |
slug |
RemoteOK job slug |
date |
Posting date when available |
company |
Hiring company name |
position |
Job title or role |
tags |
Skills and categories attached to the listing |
description |
Optional job description HTML |
location |
Location text from the listing |
salaryMin |
Lower salary bound when available |
salaryMax |
Upper salary bound when available |
applyUrl |
Direct apply or listing URL |
sourceUrl |
Source job page URL |
logo |
Company logo URL when available |
scrapedAt |
Timestamp when the Actor saved the row |
Example input
{
"tags": ["python", "react"],
"keywords": [],
"location": "",
"sinceDate": "",
"minSalary": 0,
"maxSalary": 0,
"maxItems": 20,
"includeDescription": false
}
Example output
{
"id": "1133690",
"slug": "remote-example-role-1133690",
"date": "2026-06-19T00:03:05+00:00",
"company": "Example Company",
"position": "Remote Software Engineer",
"tags": ["python", "react"],
"location": "Worldwide",
"salaryMin": 100000,
"salaryMax": 160000,
"applyUrl": "https://remoteok.com/remote-jobs/example",
"sourceUrl": "https://remoteok.com/remote-jobs/example",
"logo": "https://remoteok.com/assets/example.png",
"scrapedAt": "2026-06-20T00:00:00.000Z"
}
How to run it
- Open the Actor on Apify.
- Add skills, tags, keywords, or leave filters broad.
- Optionally add location, salary, or date filters.
- Set
maxItemsto the number of matching jobs you want. - Choose whether to include descriptions.
- Start the run and export the dataset.
Search tips
- Use broad tags for market research: Tags like
python,react, ormarketingshow category-level demand. - Use narrow filters for alerts: Combine tag, location, and
sinceDatefor daily or weekly monitoring. - Leave location empty for global remote jobs: Add location only when you need a regional subset.
- Watch salary filters: Many listings do not publish salaries, so salary filters can reduce results sharply.
- Control row size: Enable
includeDescriptiononly when you need full job text.
Limits and caveats
- The Actor extracts publicly visible RemoteOK job data.
- It does not access private employer dashboards, applicant data, or login-gated content.
- Some listings do not publish salary ranges, logos, descriptions, or exact locations.
- Salary values are based on public listing data and should be reviewed before analysis.
Integrations
You can connect RemoteOK job data to downstream tools:
- Export CSV or Excel to spreadsheets for remote-work reports.
- Send results to Slack, email, or webhooks after scheduled runs.
- Build newsletters, job-board feeds, or niche alert workflows.
- Load JSON rows into a database, warehouse, or BI dashboard.
- Combine results with company enrichment or contact-finding Actors.
API usage
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/remoteok-jobs-scraper').call({
tags: ['python'],
maxItems: 20
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/remoteok-jobs-scraper').call(run_input={
'tags': ['python'],
'maxItems': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~remoteok-jobs-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"tags":["python"],"maxItems":20}'
MCP and AI agents
This Actor can be used through the official Apify MCP server at https://mcp.apify.com.
For a focused single-Actor tool setup, use:
https://mcp.apify.com?tools=fetch_cat/remoteok-jobs-scraper
Use the same JSON keys shown in the input configuration table, such as tags, keywords, location, sinceDate, minSalary, maxSalary, maxItems, and includeDescription.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.