Remote OK Jobs Feed Scraper avatar

Remote OK Jobs Feed Scraper

Pricing

from $0.48 / 1,000 item extracteds

Go to Apify Store
Remote OK Jobs Feed Scraper

Remote OK Jobs Feed Scraper

Search, filter, and export current Remote OK jobs with company, role tags, location constraints, salary when shown, dates, source IDs, descriptions, and application URLs.

Pricing

from $0.48 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Search, filter, and export current Remote OK jobs as structured records for recruiting feeds, labor-market research, and recurring hiring monitoring.

The Actor reads Remote OK's public structured feed and returns normalized company, role, tags, location constraints, compensation when shown, publication date, source ID, description, listing URL, and application URL.

It needs no Remote OK account, browser, cookies, or proxy.

What does this Actor do?

Remote OK Jobs Feed Scraper turns the current public Remote OK feed into an integration-ready Apify dataset.

You can:

  • search across job titles, companies, tags, locations, and descriptions;
  • require exact Remote OK role or technology tags;
  • filter by displayed candidate location;
  • keep only jobs published after a fixed date;
  • use a rolling publication window for scheduled runs;
  • keep only jobs where salary bounds are shown;
  • export plain-text descriptions, with optional source HTML;
  • limit output for predictable downstream workflows.

Results are sorted newest first and deduplicated by Remote OK job ID.

Who is it for?

Recruiting teams can create a focused feed of recently posted remote roles.

Job aggregators can ingest stable source IDs, canonical listing links, and direct application URLs.

Hiring-market analysts can compare role tags, location eligibility, and displayed compensation.

Data engineers can schedule runs and send JSON, CSV, or Excel exports to a warehouse or spreadsheet.

Automation builders can trigger downstream alerts from newly published matching records.

Why use this Remote OK jobs scraper?

The Actor uses a lightweight public JSON route rather than rendering pages in a browser.

That gives users:

  • a small 256 MB memory footprint;
  • no proxy configuration;
  • no login or cookie setup;
  • typed output suitable for APIs and integrations;
  • strict input validation and explicit upstream failures;
  • stable source attribution on every row;
  • one rolling-day filter designed for recurring feeds.

It is source-specific. Choose a multi-board Actor when you need normalized results from several job boards in one run.

Data you can extract

FieldMeaning
jobIdStable Remote OK source identifier
titleDisplayed role title
companyHiring company
companyLogoCompany logo URL when exposed
tagsRemote OK role and skill tags
locationDisplayed location or candidate eligibility
isWorldwideWhether the location appears open worldwide
salaryMinDisplayed minimum annual salary in USD
salaryMaxDisplayed maximum annual salary in USD
salaryCurrencyUSD when salary data is shown
postedAtPublication time in ISO 8601 format
descriptionNormalized plain-text job description
descriptionHtmlOptional source HTML description
applyUrlDirect application URL exposed by Remote OK
listingUrlCanonical Remote OK listing URL
sourceNormalized source value, remoteok
sourceUrlPublic structured feed URL
scrapedAtExtraction timestamp

Source fields may be null when Remote OK does not display them.

How to scrape Remote OK jobs

  1. Open the Actor in Apify Console.
  2. Add optional search terms or exact tags.
  3. Set a location, publication window, or salary requirement if needed.
  4. Choose the maximum number of jobs.
  5. Click Start.
  6. Open the Dataset tab to inspect or export results.
  7. Download JSON, CSV, Excel, XML, or RSS through Apify dataset tools.

The prefilled input searches for jobs containing engineer and returns up to 10 records.

Input parameters

InputTypeDefaultDescription
searchTermsstring array[]Every term must occur across searchable job text
tagsstring array[]Every value must exactly match a Remote OK tag
locationstringunsetCase-insensitive location or eligibility substring
postedAfterISO date-timeunsetFixed publication cutoff
postedWithinDaysintegerunsetRolling 1–365 day publication window
salaryOnlybooleanfalseRequire a displayed salary bound
includeDescriptionHtmlbooleanfalseInclude source description HTML
maxItemsinteger50Save between 1 and 500 matching jobs

Use either postedAfter or postedWithinDays, not both.

Search terms are combined with AND logic.

Tags are also combined with AND logic.

Input examples

Search engineering jobs:

{
"searchTerms": ["engineer"],
"maxItems": 10
}

Export the latest jobs without a search filter:

{
"maxItems": 20,
"includeDescriptionHtml": false
}

Build a rolling salary feed for scheduled monitoring:

{
"postedWithinDays": 30,
"salaryOnly": true,
"maxItems": 50
}

Output example

A current result has this shape:

{
"jobId": "123456",
"title": "Backend Engineer",
"company": "Example Technology Company",
"companyLogo": null,
"tags": ["engineering", "javascript"],
"location": "Worldwide",
"isWorldwide": true,
"salaryMin": 90000,
"salaryMax": 130000,
"salaryCurrency": "USD",
"postedAt": "2026-08-20T12:00:00.000Z",
"description": "Build reliable backend services for a distributed product team.",
"applyUrl": "https://remoteok.com/l/123456",
"listingUrl": "https://remoteok.com/remote-jobs/123456-example-company-backend-engineer",
"source": "remoteok",
"sourceUrl": "https://remoteok.com/api",
"scrapedAt": "2026-08-26T12:00:00.000Z"
}

The example company and identifier are anonymized. Actual rows contain current source values.

How much does it cost to export Remote OK jobs?

The Actor uses pay-per-event pricing.

There is a one-time Run started event of $0.005 for each run and an Item extracted event for each job saved to the dataset.

Apify tierPrice per saved job
FREE$0.000920
BRONZE$0.000800
SILVER$0.000624
GOLD$0.000480
PLATINUM$0.000320
DIAMOND$0.000224

At BRONZE, 10 saved jobs cost about $0.013, including the start event.

At BRONZE, 25 saved jobs cost about $0.025.

At BRONZE, 100 saved jobs cost about $0.085.

Jobs rejected by filters, malformed source rows, and duplicates are not charged as items.

Apify platform usage is included under pay-per-event pricing where shown by the platform.

Recurring monitoring workflow

Use postedWithinDays for a moving window that stays valid on every scheduled run.

A practical workflow is:

  1. create a Task with your search, tag, or salary filters;
  2. schedule it daily or weekly;
  3. use jobId as the downstream deduplication key;
  4. compare IDs with your previous export;
  5. notify a recruiter only for unseen matching IDs;
  6. retain postedAt and scrapedAt to distinguish source publication from collection time.

The Actor exports current records; it does not maintain cross-run history itself.

Integration ideas

Send matching jobs to Google Sheets for recruiter review.

Load the dataset into BigQuery, Snowflake, or PostgreSQL for trend analysis.

Use Make or Zapier to create Slack alerts for newly seen IDs.

Feed company, title, tags, and salary bounds into an internal recruiting dashboard.

Publish an attributed job feed while retaining the canonical Remote OK listing URL.

Use Apify webhooks to start a downstream Actor after a successful run.

Run with the Apify API using cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~remoteok-remote-jobs-feed/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["engineer"],"maxItems":10}'

Keep API tokens in environment variables or a secret manager.

Run with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/remoteok-remote-jobs-feed').call({
searchTerms: ['engineer'],
maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/remoteok-remote-jobs-feed').call(
run_input={'searchTerms': ['engineer'], 'maxItems': 10}
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/remoteok-remote-jobs-feed"

For Claude Desktop, Cursor, or VS Code, add this MCP JSON configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/remoteok-remote-jobs-feed"
}
}
}

Example prompts for MCP

Ask your MCP client:

  • “Use the Remote OK Jobs Feed Scraper MCP tool for engineering jobs and return 10 records.”
  • “Export Remote OK jobs from the last 30 days that display salary data.”
  • “Summarize companies hiring worldwide from this Remote OK dataset.”

Reliability and failure behavior

The Actor validates the HTTP status, JSON content type, and response shape.

Network errors, HTTP 429, and temporary server errors receive bounded retries.

Deterministic client errors and unexpected response shapes fail the run rather than returning an incomplete feed.

A successful run can contain zero items when no current record matches all supplied filters.

Broad filters are applied after fetching the current public feed, so maxItems limits saved matches rather than source retrieval.

Tips for better results

Start with one broad search term, then inspect current tags in the output.

Use exact values from tags when adding the tag filter.

Use location only when Remote OK displays a useful eligibility value.

Use postedWithinDays instead of manually updating a fixed date in recurring Tasks.

Enable includeDescriptionHtml only when your downstream system needs source formatting.

Keep maxItems small while testing automation logic.

Limitations

The Actor covers the current public Remote OK feed, not historical listings removed from that feed.

Remote OK controls availability, field completeness, ordering, and source freshness.

Salary bounds are returned only when the source exposes them.

A location can describe eligibility rather than an office location.

The Actor does not verify employers, job legitimacy, compensation, or application outcomes.

It does not send alerts, compare runs, or persist monitoring history on its own.

The maximum output is 500 jobs per run.

Legality and responsible use

Use public job data in accordance with applicable law, Remote OK's API terms, and your contractual obligations.

Retain listingUrl or another clear follow link to the original Remote OK listing when republishing source data.

Do not use the output for unlawful discrimination, spam, or automated decisions that require human review.

Avoid storing personal information from job descriptions longer than necessary.

You are responsible for your downstream use and retention policy.

Troubleshooting

Why did the run return zero jobs?

Remove filters one at a time. Search terms and tags use AND logic, and salary or date filters can narrow the current feed substantially.

Why is salary null?

Remote OK does not expose compensation for every listing. Set salaryOnly to keep only records with a salary bound.

Why did the run fail with an upstream error?

Inspect the log for HTTP status or response-shape details. Temporary failures are retried automatically; retry later if the public feed is unavailable.

Why was my input rejected?

Check array limits, date format, and the 1–500 maxItems range. Do not combine postedAfter with postedWithinDays.

Can I use a proxy?

No proxy input is needed or exposed. The Actor uses the anonymous public structured feed directly.

FAQ

Does the Actor require a Remote OK account?

No. It reads the anonymous public structured feed.

Does it use a browser or residential proxy?

No. It uses direct HTTP with 256 MB memory.

Can it search descriptions?

Yes. searchTerms match title, company, tags, location, and normalized description text.

Can it find Remote OK jobs for freshers?

You can search for terms such as junior, entry level, or graduate when those words appear in current source records. The Actor does not infer seniority that Remote OK does not state.

Can I export CSV or Excel?

Yes. Open the default dataset and select the desired export format.

Can I monitor only new jobs?

Use a rolling publication window and deduplicate downstream by jobId. Cross-run state is intentionally left to your chosen database or automation.

Is this an official Remote OK product?

No. It is an independent Apify Actor that reads Remote OK's public feed and preserves source attribution.