Remote Jobs Search: RemoteOK, WWR, Himalayas and More Boards
Pricing
from $1.50 / 1,000 job returneds
Remote Jobs Search: RemoteOK, WWR, Himalayas and More Boards
Search six remote job boards in one run: Remote OK, We Work Remotely, Himalayas, Working Nomads, Jobgether and Y Combinator. One deduplicated row per job with salary, tags and link, plus a new-jobs-only monitoring mode.
Pricing
from $1.50 / 1,000 job returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Search six remote job boards in one run and get one clean, deduplicated list of jobs. Remote OK, We Work Remotely, Himalayas, Working Nomads, Jobgether and Y Combinator's Work at a Startup are searched together for your keywords. A job posted on several boards comes back once, with the other boards named. Each row has the title, company, location, salary when stated, skill tags, posting date and the link to the job page.
Who uses it. Job-board and newsletter builders who need a daily feed of new remote jobs, recruiters and agencies tracking who is hiring remotely for a skill, and job seekers or AI agents that want one search instead of six. Turn on monitoring and schedule it to get only the jobs that are new since your last run.
No login, no API key, no proxy. Every source is a public feed or a documented public API.
How to use
- In the Apify Console. Open the actor page and click Start — the
keywordsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~remote-jobs-unified-search/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"keywords":["python"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"keywords": ["python"]}
One keyword or phrase per line, for example python, product designer or customer support. A job matching any one of them is returned. Leave empty to get the newest remote jobs from every board. Accepted formats: python, product designer, customer support.
One combined search runs per call, whatever the number of keywords. A job is returned when any one keyword matches.
| Field | What it does |
|---|---|
keywords | Job titles, skills or company names. Empty = the newest remote jobs from every board. Up to 10. |
maxItems | Most jobs to return (and pay for). Default 100, up to 1,000. The newest are kept. |
boards | Optional. Narrow the search to some boards, by name. Empty = all six. |
postedWithinDays | Optional. Only jobs posted in the last N days. |
titleMatchOnly | On = the keyword must be in the job title itself. |
onlyNewSinceLastRun | Monitoring: only return and bill jobs not seen on your earlier runs. |
deltaName | Optional name for a monitoring watchlist. |
How matching works. On Working Nomads, We Work Remotely, Remote OK and Y Combinator the keyword is matched against the title, company, category and skill tags. Short keywords match whole words only, so java does not return JavaScript jobs. Himalayas and Jobgether run your keyword through their own search, which also reads the job description, and their newest matches are returned. Turn on titleMatchOnly when you want only jobs with the keyword in the title, on every board.
How much each board holds. The boards publish their current listings, not an archive: about 100 jobs on Remote OK, 90 on We Work Remotely, 50 on Working Nomads, the 30 newest engineering jobs (remote ones only) on Y Combinator, and the top 20 (Himalayas) and newest 25 (Jobgether) matches per keyword. A narrow keyword returns tens of jobs per run, not thousands. Schedule the actor to build up a history.
Output
One row per job. The headline fields of three rows from a real python search:
| source | alsoListedOn | title | company | location | salaryText | postedAt | url |
|---|---|---|---|---|---|---|---|
| Remote OK | Working Nomads, We Work Remotely, Himalayas | Senior React Full stack Developer | Lemon.io | Anywhere in the World | USD 80,000-200,000 | 2026-10-09 | https://remoteok.com/remote-jobs/... |
| Jobgether | Software Development Engineer in Test II (Python) | Akamai Technologies | North America, Canada | CAD 82,100-147,900/year | 2026-10-10 | https://jobgether.com/offer/... | |
| Himalayas | Python Developer | AssetIntel | United States | 2026-08-22 | https://himalayas.app/companies/... |
The first job was listed on four boards and is returned once; fields its Remote OK copy lacked (here the location) are filled from the other boards' copies.
Every column:
| query | found | status | searchSummary | jobCount | totalMatched | duplicatesMerged | truncated | boardsSearched | boardsFailed | monitorStatus | jobs | source | alsoListedOn | jobId | title | company | location | employmentType | seniority | salaryMin | salaryMax | salaryCurrency | salaryText | category | tags | postedAt | url | descriptionSnippet | matchedKeyword | isNew | firstSeenAt | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| python | true | OK | <all jobs (full list)> | <description (first 300 characters)> | <is this job new?> | 1970-01-01T00:00:00.000Z |
A search that matches nothing comes back as one row with "found": false and is never charged. Values a board does not publish are empty (null), never 0: salary is stated on a minority of postings, and Y Combinator publishes no posting date. boardsFailed names any board that did not answer on a run; the other boards' jobs are still returned.
Using Remote OK rows. Remote OK asks anyone who republishes its listings to link back to the job's Remote OK URL (a normal followed link) and to name Remote OK as the source. Every row carries both (url and source), so keep them if you show these jobs on a site.
Pricing
Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed
per item only when data is actually found and returned — see
.actor/pay_per_event.json for exact prices. A miss is never charged.
You pay per job returned. A search with no match, a monitoring run with nothing new, and the duplicate copies merged into one row cost nothing.
Example runs
Paste any of these into the Input tab and press Start. All three return rows with no key, no token and no account of your own beyond an Apify login.
Python jobs across all six boards, newest 30. The default shape.
{"keywords": ["python"],"maxItems": 30}
Design jobs with the keyword in the title, posted in the last 14 days.
{"keywords": ["designer"],"titleMatchOnly": true,"postedWithinDays": 14,"maxItems": 50}
Daily alert for new customer support jobs. Schedule it once a day: each run returns only jobs not seen before.
{"keywords": ["customer support", "customer success"],"onlyNewSinceLastRun": true,"maxItems": 100}
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~remote-jobs-unified-search/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"keywords":["python"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~remote-jobs-unified-search/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"keywords":["python"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~remote-jobs-unified-search/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"keywords":["{{search}}"]}, mapping the row's search into the keywords array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "remote jobs scraper" — the agent will find and run this actor.