RemoteOK Jobs Scraper

Scrape public RemoteOK remote job listings by skill tags, keywords, location text, salary range, and date. Export company, role, tags, salary, apply URL, source URL, and optional descriptions.

Data fields

FieldTypeDescription
idtextID exported in the dataset view.
datedatePosted exported in the dataset view.
companytextCompany exported in the dataset view.
positiontextPosition exported in the dataset view.
tagstextTags exported in the dataset view.
locationtextLocation exported in the dataset view.
salaryMinnumberSalary min exported in the dataset view.
salaryMaxnumberSalary max exported in the dataset view.

Input preview

tagsTags or skills
keywordsKeywords
locationLocation contains
sinceDatePosted since date
minSalaryMinimum salary
maxSalaryMaximum salary

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

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, or customer support.
  • Add free-text matching: Use keywords for 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 sinceDate and 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

  1. Open the Actor on Apify.
  2. Add skills, tags, keywords, or leave filters broad.
  3. Optionally add location, salary, or date filters.
  4. Set maxItems to the number of matching jobs you want.
  5. Choose whether to include descriptions.
  6. Start the run and export the dataset.

Search tips

  • Use broad tags for market research: Tags like python, react, or marketing show category-level demand.
  • Use narrow filters for alerts: Combine tag, location, and sinceDate for 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 includeDescription only 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.

Common questions

Questions and answers reused from the canonical actor README.

Can I use this as a RemoteOK API?

Yes. You can run the Actor through the Apify API and read results from the Dataset API.

Can I export RemoteOK jobs to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, JSON, Excel, XML, RSS, HTML, or accessed through the API.

Why are salary fields empty?

Some RemoteOK listings do not publish salary ranges. Salary filters also exclude jobs without visible salary data.

Can I run recurring remote job alerts?

Yes. Use Apify schedules with focused tags, sinceDate, and a moderate maxItems value.