RemoteOK Jobs Scraper | Remote Job Listings & Hiring Data avatar

RemoteOK Jobs Scraper | Remote Job Listings & Hiring Data

Pricing

from $1.50 / 1,000 dataset items

Go to Apify Store
RemoteOK Jobs Scraper | Remote Job Listings & Hiring Data

RemoteOK Jobs Scraper | Remote Job Listings & Hiring Data

Scrape current RemoteOK job listings by keyword or job URL. Get clean dataset rows with title, company, location, remote details, tags, salary when available, listing URL, description, and metadata.

Pricing

from $1.50 / 1,000 dataset items

Rating

0.0

(0)

Developer

AbotAPI

AbotAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

RemoteOK Jobs Scraper

Extract current RemoteOK job listings into clean dataset rows for recruiting, market tracking, lead sourcing, and job-alert workflows.

The actor supports two input modes:

  • Keyword search for broad current listings or matching roles such as python or senior+devops.
  • URL list mode for one or more RemoteOK listing URLs.

Why use it

  • Wider filter surface than basic RemoteOK actors.
  • Keyword mode and URL mode in one actor.
  • Client-side sort choices for newest, oldest, salary, and company ordering.
  • Expanded normalized output with original fields preserved when includeRawFields is enabled.
  • Salary, company, location, age, and tag filters.
  • Optional MCP connector export to apps such as Notion, Linear, Airtable, and Apify.

Input modes

Use keyword mode when you want matching jobs from current listings.

  • searchTerms accepts one or more terms.
  • Use all jobs for a broad run without keyword narrowing.
  • A value such as senior+devops requires all tokens to match in the listing text or tags.
  • Each search term is processed separately and capped by maxItems.

URL list

Use URL mode when you already know the listing URLs to read.

Accepted examples:

https://remoteok.com/remote-react-jobs
https://remoteok.com/remote-dev-jobs
https://remoteok.com/remote-design-jobs
https://remoteok.com/remote-dev-jobs?q=python&page=2

Each URL is processed separately and capped by maxItems.

Filters

InputWhat it does
tagsKeeps jobs whose tag list contains at least one selected tag.
companiesKeeps jobs whose company name contains one of your values.
locationsKeeps jobs whose location text contains one of your values.
minSalaryKeeps jobs whose salary range reaches at least this amount.
maxSalaryKeeps jobs whose salary range starts at or below this amount.
postedWithinDaysKeeps jobs posted within the selected age window.
requireSalaryKeeps only rows with salary data.
sortByReorders saved rows by posting time, salary, or company.
maxPagesLimits how many result pages are walked for each search term or source URL.
maxItemsMaximum matching rows to save for each search term or source URL. It is a cap, not a guarantee.

Data you get

Each row includes every core field exposed by basic RemoteOK actors and adds normalized helpers such as:

  • jobId, title, companyName, locationText
  • postedAt, postedEpoch, postedAgeDays
  • salaryMid, hasSalary
  • descriptionText
  • tagCount, matchedSearchTokens, matchedTagFilters
  • sourceUrl, sourceType, searchTerm

When includeRawFields is enabled, the complete original job object is also kept in raw.

MCP connector export

The mcpConnectors field is optional. When connectors are selected, the actor writes the dataset first, then sends a condensed summary of saved jobs to the selected connectors. Connector failures do not change the dataset output.

For Notion, also set notionParentPageUrl. Use maxNotifyJobs to cap how many saved jobs are sent to each connector.

Example input

Keyword search:

{
"mode": "search",
"searchTerms": ["all jobs"],
"sortBy": "posted-desc",
"maxItems": 20,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": []
}
}

URL list:

{
"mode": "url",
"startUrls": [
{ "url": "https://remoteok.com/remote-dev-jobs" }
],
"requireSalary": true,
"sortBy": "salary-desc",
"maxItems": 10,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": []
}
}

Example output

{
"jobId": "1134146",
"slug": "remote-hh2-biztech-1134146",
"title": "hh2",
"companyName": "Biztech",
"locationText": "南港區, ",
"postedAt": "2026-06-25T09:06:30+00:00",
"salary_min": 0,
"salary_max": 0,
"hasSalary": false,
"tags": ["project manager", "exec", "product manager", "dev", "medical", "digital nomad", "ops"],
"url": "https://remoteOK.com/remote-jobs/remote-hh2-biztech-1134146",
"applyUrl": "https://remoteOK.com/remote-jobs/remote-hh2-biztech-1134146",
"sourceType": "search-term",
"searchTerm": "react",
"scrapedAt": "2026-06-26T00:00:00.000Z"
}

Connection

Use the connection field only when your run environment needs a different route.