Remote Jobs Scraper: 4 Remote Job Boards in One Dataset avatar

Remote Jobs Scraper: 4 Remote Job Boards in One Dataset

Pricing

$1.00 / 1,000 remote jobs

Go to Apify Store
Remote Jobs Scraper: 4 Remote Job Boards in One Dataset

Remote Jobs Scraper: 4 Remote Job Boards in One Dataset

Remote jobs scraper: one dataset from Remote OK, Jobicy, Arbeitnow and We Work Remotely. Filter by keyword, category, location and date; duplicates removed. Salary, tags, description, apply link. No login. $1 per 1,000 jobs.

Pricing

$1.00 / 1,000 remote jobs

Rating

0.0

(0)

Developer

Data Gleaner

Data Gleaner

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Remote Jobs Scraper: four remote job boards in one dataset

Read Remote OK, Jobicy, Arbeitnow and We Work Remotely in one run and get one de-duplicated dataset: title, company, location, category, tags, salary when the board shows it, posting date, full description and apply link. Filter by keyword, category, candidate location and posting date. No login, no API key, no browser.

Price: $1 per 1,000 jobs ($0.001 per job), no start fee. 100 jobs cost 10 cents.

Why use this one

  • One call instead of four integrations. Every row has the same fields and a source field, so boards stay separable.
  • Duplicates across boards removed, so a job posted twice is billed once.
  • Built for schedules and agents. postedWithinDays: 1 plus a keyword gives a daily feed; the same input works from n8n, Make, Zapier or an MCP agent.
  • Each row links to its original posting (url, applyUrl) so you can credit the board.
  • Honest limits: each board exposes a recent window, not its archive (Remote OK about 100 jobs, Jobicy the last 7 days, We Work Remotely about 400, Arbeitnow the latest ~1,000, remote ones kept). Salary appears only when the board shows it. Remotive and Himalayas are not included; their terms do not allow passing listings on.

Minimal input

{"keywords": ["python"], "postedWithinDays": 7, "maxJobs": 100}

Sample output row (real platform run, long text shortened)

{
"jobId": "weworkremotely-quickmail-technical-customer-support",
"source": "weworkremotely",
"url": "https://weworkremotely.com/remote-jobs/quickmail-technical-customer-support",
"title": "Technical Customer Support",
"company": "QuickMail",
"companyLogo": "https://wwr-pro.s3.amazonaws.com/logos/0064/3699/logo.gif",
"location": "Zug, Anywhere in the World",
"isRemote": true,
"employmentType": "full_time",
"category": "Customer Support",
"tags": [
"Technical Support",
"Customer Support"
],
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryPeriod": null,
"postedAt": "2026-10-10T21:21:48+00:00",
"description": "Headquarters: Zurich, Switzerland\nURL: https://quickmail.com\nThe role\nWe are hiring a technical customer suppo...",
"applyUrl": "https://weworkremotely.com/remote-jobs/quickmail-technical-customer-support",
"scrapedAt": "2026-10-11T06:37:45+00:00",
"input": {
"categories": [
"customer support"
],
"maxJobs": 15
}
}

What you can do with it

  • Feed a remote-job search to an AI agent or an automation (n8n, Make, Zapier) with one call instead of four integrations.
  • Track hiring for a skill: run it daily with keywords: ["rust"] and postedWithinDays: 1.
  • Build a newsletter, alert or internal dashboard of remote roles for your own audience.
  • Study remote salary and demand trends across boards (the source field keeps the boards apart).
  • Merge with the Data Gleaner career-jobs and seek-jobs Actors: all three use jobId, title, postedAt, employmentType and applyUrl.

Sources

sources valueBoardNotes
remoteokRemote OKLatest ~100 jobs, salary on many
jobicyJobicyLast 7 days; keywords are searched server-side; salary on many
arbeitnowArbeitnowOnly jobs flagged remote; Europe-heavy
weworkremotelyWe Work RemotelyMain feed plus the ten category feeds

Not included: Remotive and Himalayas, whose terms do not allow passing their listings on to third parties.

Every item carries source and the original job url so the board can be credited and linked. If you publish these jobs anywhere, name the board as the source and link to the url (Remote OK, Jobicy, Arbeitnow and We Work Remotely ask for this). Do not use the Remote OK logo.

Input

{
"sources": ["remoteok", "jobicy", "arbeitnow", "weworkremotely"],
"keywords": ["python", "data engineer"],
"categories": [],
"locations": ["worldwide", "usa"],
"postedWithinDays": 7,
"maxJobs": 100
}
FieldWhat it does
sourcesBoards to read. Empty plus any keyword, category or location means all four.
keywordsKeep jobs whose title, tags, category or description contains any keyword.
categoriesKeep jobs whose category or tags contain any of these words (design, sales, devops...).
locationsKeep jobs open to candidates in these places. worldwide, usa and europe also match common variants (anywhere, United States, EMEA, main European countries); any other text is matched against the job's location. A job with no stated location counts as worldwide.
postedWithinDaysOnly jobs published in the last N days.
maxJobsTotal cap, newest first (default 100). This is also your cost cap.
requestDelaySecondsPause between requests to the same board (default 1).
proxyConfigurationOptional, off by default.

An input with no sources, keywords, categories or locations runs a small built-in example: the 5 newest jobs across all four boards (5 x $0.001 = $0.005), and the status message says so. Set at least one of those fields for a real run.

Output

{
"jobId": "jobicy-152824",
"source": "jobicy",
"url": "https://jobicy.com/jobs/152824-senior-staff-machine-learning-data-scientist",
"title": "Senior/Staff Machine Learning Data Scientist",
"company": "Bayesian Health",
"companyLogo": "https://jobicy.com/data/.../f74593d8-221.png",
"location": "USA",
"isRemote": true,
"employmentType": "full_time",
"category": "Data Science & Analytics",
"tags": ["Data Science & Analytics"],
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryPeriod": null,
"postedAt": "2026-10-09T02:55:12+00:00",
"description": "Senior/Staff Machine Learning Data Scientist\nIn Brief\n- ...",
"applyUrl": "https://jobicy.com/jobs/152824-senior-staff-machine-learning-data-scientist",
"scrapedAt": "2026-10-09T10:14:04+00:00",
"input": {"keywords": ["python"], "maxJobs": 20}
}

employmentType is one of full_time, part_time, contract, internship, temporary, other (or null). salaryPeriod is year, month, week, day or hour. Salary fields are null where the board shows none (Arbeitnow and We Work Remotely publish none). postedAt is UTC ISO 8601. description is plain text.

The same job posted on two boards (same company and title, ignoring case and punctuation) is returned once, the newest copy.

Pricing

Pay per event: $0.001 per job returned (event job). Nothing for runs that return nothing. Prices are final.

Example: 2,000 jobs = 2,000 x $0.001 = $2.00. A daily run capped at maxJobs: 200 costs at most $0.20 a day.

Use it from n8n, Make, Zapier or an AI agent

Actor ID: datagleaner/remote-jobs-scraper

Minimal input:

{"sources": ["remoteok", "jobicy"], "keywords": ["python"], "maxJobs": 20}

Each tool below runs this Actor with your own Apify API token.

  • n8n: add the Apify node (@apify/n8n-nodes-apify). On n8n Cloud you install it from the community node registry. Choose Run an Actor and get dataset, set Actor to datagleaner/remote-jobs-scraper and paste the input above.

  • Make: use the Apify app's Run an Actor module, then Get Dataset Items to read the results. Watch Actor Runs can trigger a scenario when a run finishes.

  • Zapier: use the Apify action Run Actor, then the search Fetch dataset items. The trigger Finished Actor run starts a Zap when a run ends.

  • AI agents (MCP): connect to https://mcp.apify.com/?tools=datagleaner/remote-jobs-scraper. Without a token, an agent can still find Actors with the search-actors tool, but running this one needs your Apify account. In Claude Code:

      claude mcp add --transport http apify "https://mcp.apify.com/?tools=datagleaner/remote-jobs-scraper"
    

    Then run /mcp to sign in to Apify in your browser. Then ask in plain language, for example: "Use the Remote Jobs scraper to find 30 remote Python jobs posted this week, and list the ones that show a salary."

  • LangChain (Python):

# pip install langchain-apify, then set APIFY_TOKEN in your environment
import json
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("datagleaner/remote-jobs-scraper")
result = tool.invoke({"run_input": json.loads('{"sources": ["remoteok", "jobicy"], "keywords": ["python"], "maxJobs": 20}')})

Limits

  • Each board's feed is a recent window, not its full archive: Remote OK about 100 jobs, Jobicy the last 7 days, Arbeitnow the latest ~1,000 listings (remote ones kept), We Work Remotely about 400 across its feeds. For a keyword, you get the matches inside those windows.
  • Each feed is fetched once per run. Do not schedule runs more often than hourly; the boards ask for low-frequency use.
  • Descriptions are the board's text; some contain the original language of the posting.

FAQ

Does it need a login or API key? No. It reads public feeds.

Why did a source return nothing? The summary in the run's SUMMARY record lists each source with its status. A board can be down or rate-limiting; the other boards still return results.

How do I get only worldwide jobs? "locations": ["worldwide"].

Can I get salary for every job? Only where the board publishes it (Remote OK and Jobicy).

Responsible use

Only public job-board data is collected. Job listings name companies, not applicants, but if you combine the output with personal data you are responsible for complying with the laws that apply to you. Credit the original board and link to the job when you display listings, and do not submit these listings to other job aggregators against the boards' terms.