RemoteOK Jobs Scraper
Pricing
$4.00 / 1,000 job scrapeds
RemoteOK Jobs Scraper
Scrapes remote job listings from RemoteOK's public API. Filter by search keyword, tags and minimum salary. Each job includes position, company, tags, location, apply URL, salary range and a formatted salary text.
Pricing
$4.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Antony Zaikin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Apify actor that scrapes job listings from the public RemoteOK API (https://remoteok.com/api).
How it works
- Sends a single GET request to the RemoteOK API with a browser‑like
User-Agent. - The API returns a JSON array where the first element is a service record (contains
legal).
This record is filtered out. - Each job object is processed, optionally filtered by:
search– case‑insensitive substring match inpositionordescription.tags– at least one tag must intersect with the provided list (case‑insensitive).minSalary– keeps jobs wheresalary_max >= minSalary(ifminSalary > 0).
- The actor stops after pushing
maxItemsjobs (default 100) or after processing all available jobs. - For every successfully pushed record the actor charges the
job-scrapedevent ($0.004per record). - Each output record includes a
sourcefield set to"RemoteOK"to satisfy attribution requirements.
Input
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 100 | Maximum number of job records to output. |
search | string | "" | Substring to look for in position or description (case‑insensitive). |
tags | array of string | [] | Keep only jobs that have at least one matching tag (case‑insensitive). |
minSalary | integer | 0 | Minimum salary_max to keep a job. Ignored when 0. |
includeDescription | boolean | true | If false, the description field is omitted from output. |
All fields have editors as required by the platform.
Output
Each record contains the following fields (types as defined in the output schema):
slug– stringid– string | numberepoch– string | numberdate– stringcompany– stringcompany_logo– string | nullposition– stringtags– array of stringslocation– string | nullapply_url– stringurl– stringsalary_min– string | numbersalary_max– string | numberdescription– string | null (only ifincludeDescription !== false)salaryText– formatted salary range, e.g."$150,000 – $200,000", ornullwhen RemoteOK doesn't list a salary (true for ~96% of jobs).scrapedAt– ISO‑8601 timestamp of when the record was processed.source– constant string"RemoteOK"(attribution).
Attribution / Source of Data
The data is obtained from RemoteOK’s public API at https://remoteok.com/api.
According to RemoteOK’s terms of use, any usage of this data must:
- Include a dofollow link to
https://remoteok.com. - Mention “Remote OK” as the source of the data.
The RemoteOK logo may not be used without explicit permission.
This actor complies by adding a source: "RemoteOK" field to every output record. In addition,
this documentation links back to RemoteOK as the source of the data —
please keep a similar dofollow link and mention if you republish or build on top of this data.
Example
{"maxItems": 20,"search": "developer","tags": ["JavaScript", "Node.js"],"minSalary": 60000,"includeDescription": true}
The actor will return up to 20 developer‑related jobs that mention JavaScript or Node.js in their tags and have a maximum salary of at least $60 000.
Notes
- The API does not support pagination; additional
?page=parameters return the same data.
ThemaxItemslimit simply slices the filtered result. - Network errors are retried with exponential backoff (up to 3 attempts).
Errors on individual job records are logged and skipped without stopping the whole run. - If the API returns only the service record (or an empty/invalid payload) the actor fails with a clear error message.