Skip to content
Search/
CyberMax › Answers

Remote jobs API: one JSON feed of fresh remote jobs with salaries

Updated 2026-11-10 · Data and API builders · by CyberMax

Short answer

Remote OK and Jobicy both publish public job APIs, but in different shapes with salaries as raw text. Yonderlist on Apify calls both, normalises each job (title, company, where it is open to, salary range with currency and period, type, level, posting date, apply link), removes duplicates and filters by keyword, location, job type and minimum yearly salary, at $0.0008 per job. Monitor mode returns only jobs you have not seen.

  1. Pick keywords for the role ("python", "product manager") and, if needed, words to exclude.
  2. Add locations the job must be open to ("Europe", "USA", "Anywhere") and a job type (Full-Time, Contract).
  3. Set minSalaryYearly and onlyWithSalary to keep only listings that publish pay.
  4. Use postedWithinDays: 1 for a daily feed, or monitor mode with a monitorKey to get only jobs not sent before.
  5. Keep each row's attribution line and link to the original listing when you republish jobs.

Copy-paste code

Python (pip install apify-client): well-paid remote dev jobs

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("cybermax/remote-jobs").call(run_input={
    "keywords": ["engineer", "developer"],
    "minSalaryYearly": 120000,
    "onlyWithSalary": True,
    "postedWithinDays": 7,
    "maxItems": 200,
})
for j in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(j["title"], "|", j["company"], "|", j["location"],
          f"{j.get('salaryMin')}-{j.get('salaryMax')} {j.get('salaryCurrency')}/{j.get('salaryPeriod')}", j["applyUrl"])

JavaScript / Node (npm i apify-client): a JSON feed for your job board

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('cybermax/remote-jobs').call({
  locations: ['Europe', 'EMEA', 'Anywhere'], postedWithinDays: 1, maxItems: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const feed = items.map(({ title, company, location, salaryMin, salaryMax, salaryCurrency, applyUrl, attribution }) =>
  ({ title, company, location, salaryMin, salaryMax, salaryCurrency, applyUrl, attribution }));
console.log(JSON.stringify(feed, null, 2));

No code: n8n, Make or Zapier

n8n: HTTP Request node (or the Apify node, action "Run an Actor and get dataset")
Method:  POST
URL:     https://api.apify.com/v2/acts/cybermax~remote-jobs/run-sync-get-dataset-items
Auth:    Header Auth  ->  Authorization: Bearer <your Apify token>
Body:    JSON  {"keywords": ["product manager"], "monitor": true, "monitorKey": "pm-alert"}
Output:  one n8n item per result row

Make:    Apify app -> "Run an Actor" (Actor: cybermax/remote-jobs, wait for finish = yes)
         -> Apify "Get Dataset Items" (dataset = the run's defaultDatasetId) -> your next module
Zapier:  Apify app -> action "Run Actor" (cybermax/remote-jobs, input JSON as above)
         -> trigger "Finished Actor Run" -> "Fetch Dataset Items" -> your app
Runs longer than 5 minutes: start with POST /v2/acts/cybermax~remote-jobs/runs and read the dataset when the run finishes.

Job alert flow: Schedule trigger (every morning) -> the request above -> Telegram, Slack or Gmail message per new job (title, company, salary, applyUrl). Quiet days return nothing and cost nothing.

From an AI agent (MCP)

# Any MCP client (Claude Desktop, Claude Code, Cursor, VS Code): Apify's hosted MCP server
{
  "mcpServers": {
    "remote-jobs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.apify.com/?tools=cybermax/remote-jobs",
               "--header", "Authorization: Bearer ${APIFY_TOKEN}"],
      "env": { "APIFY_TOKEN": "<your Apify token>" }
    }
  }
}
# The agent sees one tool, cybermax--remote-jobs, with the Actor's input schema.
# Ask: "find remote Python jobs open to Europe paying over 100k".
Real run on Apify (10 Nov 2026: keyword "engineer", 25 jobs in 3.5 s; four rows shown, plus a Remote OK row from a test run the same day)
JobCompanyOpen toSalarySource
Software Engineer - ConsoleXBOWArgentina, Europe, USA100,000-350,000 USD / yearJobicy
Senior Software EngineerCloudbedsLATAM, Canada, USA140,000-180,000 USD / yearJobicy
Senior Platform Engineer, Quality PlatformMaintainXCanada107,000-165,000 CAD / yearJobicy
Senior Sales Engineer, DACH ChannelHorizon3.aiGermany160,000-190,000 EUR / yearJobicy
Senior Vue DeveloperLemon.ioRemote50,000-180,000 USD / yearRemote OK

Source: Yonderlist (Apify Actor cybermax/remote-jobs) README, real Apify run on 10 Nov 2026

Run Yonderlist on Apify

Remote job feed for job boards and newsletters

Every row has the same shape whichever board it came from, with the source's credit line in an attribution field. Both boards allow reuse with credit: keep the attribution, link to the original url and send applicants to applyUrl.

Salary data for remote roles

Salaries are normalised into salaryMin, salaryMax, salaryCurrency and salaryPeriod (hourly, monthly or yearly), so you can compare published remote pay by role, level, region and currency in a spreadsheet.

Remote jobs plus company career sites

Remote boards carry a slice of the market. For jobs posted straight on company career sites (Greenhouse and Lever), HireHeat searches across companies in one run.

Good to know

Price on Apify: $0.0008 per job delivered ($0.80 per 1,000), no start fee; 100 jobs are $0.08. Apify's free plan includes $5 of usage each month.

Remote OK's feed carries its latest ~100 jobs and Jobicy's several hundred or more at a time. Run daily with monitor mode to build a complete history.

Yonderlist icon

Yonderlist: Fresh remote jobs with salaries in one feed

$0.0008 per job, no start fee

Yonderlist: fresh remote jobs from Remote OK and Jobicy in one de-duplicated feed with salaries, filters and daily alerts. $0.0008 per job, no start fee.

Runs on your own Apify account, pay per result; failed results are not charged.

Questions

Is there a free remote jobs API?

Remote OK and Jobicy publish free public APIs with their own shapes and terms. Yonderlist merges both into one filtered, de-duplicated feed; Apify's monthly free credit covers about 6,000 jobs.

Can I publish these jobs on my site?

Both boards allow reuse with credit: keep the attribution line, link to the original listing and send applicants to the apply link. Check each board's terms for your use.

Why is a salary missing?

The employer did not publish one. Turn on onlyWithSalary to keep only jobs with pay listed.

Can an AI agent use it?

Yes. Apify's MCP server exposes it as cybermax--remote-jobs for Claude, Cursor and other MCP clients.

Free: the Free API Starter Kit

Copy-paste calls for 4 APIs with free daily tiers (CVE priority, VIN recalls, US duty rates, email checks), then 5 short emails on KEV/EPSS, MCP and free data.

You get one email to confirm first. Then the kit, and 5 short emails over two weeks. One-click unsubscribe in every email; we never share your address.

Related answers

How to search jobs on Greenhouse, Lever and Ashby across every company at onceJob boards on Greenhouse, Lever and Ashby are per company. Here is how to search them all by keyword, locationHow to check whether a company is hiring right now, from its domainFind a company's job board from its domain, count open and new roles by function and seniority, and get an ale