Remote Jobs Scraper: RemoteOK, WWR, Remotive, Himalayas +2
Pricing
Pay per event
Remote Jobs Scraper: RemoteOK, WWR, Remotive, Himalayas +2
One unified feed of remote jobs from Remote OK, We Work Remotely, Remotive, Himalayas, Jobicy and Arbeitnow. Salary, tags, region restrictions, cross-board duplicate merging, keyword and category filters, and new-job monitoring.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Max Prozapas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Remote Jobs Scraper / API — Remote OK, We Work Remotely, Remotive, Himalayas, Jobicy, Arbeitnow
Get one unified feed of remote jobs from the biggest free remote job boards in a single run. The Actor collects listings from Remote OK, We Work Remotely, Remotive, Himalayas, Jobicy and Arbeitnow, converts them to one clean format, extracts salary ranges, and merges duplicates that are posted on several boards — every result lists all boards it was found on, with a link back to each original posting.
Monitor mode remembers what it has already seen and outputs only new remote jobs on every scheduled run — you pay only for fresh openings.
Why this Actor
- 6 remote job boards in one Actor: Remote OK, We Work Remotely, Remotive, Himalayas, Jobicy, Arbeitnow.
- One schema for every board: title, company, logo, location / region restrictions, employment type, category, tags, salary, posting date, description, apply link and source link.
- Cross-board de-duplication: the same job on Remote OK, Remotive and We Work Remotely becomes one result with
a
sourceslist (normalized company + title key, e.g.lemonio|senior-react-full-stack-developer). - Salary: structured pay from the boards that provide it, plus ranges parsed from salary text and descriptions
(
$35,3k- $52k,$45-$120/Hour,$150-170K,€50.000 - €60.000), with currency and period (YEAR / MONTH / HOUR). - Filters: keywords (title, company, tags), exclude keywords, categories, posted within N days.
- New-job monitoring with a free silent baseline run.
- Reliable: each board is fetched independently — one board being down never stops the run; a per-board report is
saved to
SUMMARY. - Polite & compliant: official public APIs / RSS feeds only, identifying User-Agent, delays between pages, retries with backoff, attribution kept on every item.
Supported job boards
Source (sources value) | Endpoint | Jobs per run (approx.) | Salary | Notes |
|---|---|---|---|---|
Remote OK (remoteok) | remoteok.com/api | latest ~100 | yes (+ description) | Attribution required — link back to Remote OK |
Remotive (remotive) | remotive.com/api/remote-jobs | public feed (delayed 24h) | salary text | Attribution required; advise max. 4 runs/day |
We Work Remotely (weworkremotely) | RSS: main feed + 10 category feeds | up to ~400 | from description | Region + allowed countries |
Himalayas (himalayas) | himalayas.app/jobs/api (+ search) | up to 1,000 | yes | Location & timezone restrictions, seniority |
Jobicy (jobicy) | jobicy.com/api/v2/remote-jobs | up to 1,000 | yes | Credit Jobicy, apply via original job URL |
Arbeitnow (arbeitnow) | arbeitnow.com/api/job-board-api | remote subset of latest ~3,000 | from description | EU/Germany-focused, only remote jobs kept |
When keywords are set, Himalayas and Jobicy are also searched server-side with each keyword, so you get matching
jobs beyond the newest page.
Use cases
- Remote job boards & newsletters: fill a niche board ("remote Python jobs", "remote design jobs") with fresh listings from six sources, without duplicates.
- Job alerts: schedule every few hours with
onlyNewJobsand send new matching jobs to Slack, email or Telegram. - Job seekers: one searchable spreadsheet of remote jobs with salary and region restrictions.
- Market research: which companies hire remotely, for which roles, at what salary.
- AI agents & RAG: structured, de-duplicated remote job data with descriptions.
Input
| Field | Type | Description |
|---|---|---|
sources | array | Job boards to use: remoteok, remotive, weworkremotely, himalayas, jobicy, arbeitnow. Default: all. |
keywords | array | Keep jobs whose title, company or tags contain ANY keyword (whole words incl. plurals, engineer → Engineering). |
excludeKeywords | array | Drop jobs whose title or company contains any of these words (e.g. senior, sales). |
categories | array | Keep jobs whose category or tags contain any of these texts (software, devops, design, marketing…). |
postedWithinDays | integer | Only jobs posted in the last N days (0 = any). |
includeDescription | boolean | Add plain-text descriptionText (default on). |
maxJobsPerSource | integer | Max matching jobs per board, newest first (default 100, max 1000). |
onlyNewJobs | boolean | Monitor mode: output only jobs not seen in previous runs. |
monitorId | string | Name of the saved monitor state — use different IDs for different searches. |
baselineOnFirstRun | boolean | First monitor run only saves the current jobs (no output, no cost). Default on. |
Example input
{"sources": ["remoteok", "remotive", "weworkremotely", "himalayas", "jobicy", "arbeitnow"],"keywords": ["engineer", "developer"],"excludeKeywords": ["senior", "lead"],"categories": ["software", "engineering", "programming", "devops"],"postedWithinDays": 7,"includeDescription": false,"maxJobsPerSource": 40}
Output
Each dataset item is one unique remote job. Real example (description shortened) — the same posting was found on Remote OK and We Work Remotely and merged into one result; the logo and category were filled in from We Work Remotely:
{"source": "remoteok","sourceName": "Remote OK","jobId": "1137506","title": "Technical Customer Support","company": "QuickMail","companyLogo": "https://wwr-pro.s3.amazonaws.com/logos/0064/3699/logo.gif","location": "Anywhere","locationRestrictions": [],"remote": true,"employmentType": "Full-Time","seniority": null,"category": "Customer Support","tags": ["customer support", "Technical Support and Customer Support"],"salary": { "min": 30000, "max": 50000, "currency": "USD", "period": "YEAR", "text": null, "extractedFrom": "source" },"postedAt": "2026-10-12T16:20:10.000Z","descriptionText": "QuickMail is a cold email and LinkedIn outreach platform for markets you can't afford to burn…","applyUrl": "https://remoteOK.com/remote-jobs/remote-technical-customer-support-quickmail-1137506","sourceUrl": "https://remoteOK.com/remote-jobs/remote-technical-customer-support-quickmail-1137506","dedupKey": "quickmail|technical-customer-support","sources": [{"source": "remoteok","sourceName": "Remote OK","jobId": "1137506","sourceUrl": "https://remoteOK.com/remote-jobs/remote-technical-customer-support-quickmail-1137506","applyUrl": "https://remoteOK.com/remote-jobs/remote-technical-customer-support-quickmail-1137506"},{"source": "weworkremotely","sourceName": "We Work Remotely","jobId": "quickmail-technical-customer-support","sourceUrl": "https://weworkremotely.com/remote-jobs/quickmail-technical-customer-support","applyUrl": "https://weworkremotely.com/remote-jobs/quickmail-technical-customer-support"}],"duplicateCount": 1,"scrapedAt": "2026-10-14T09:54:01.476Z"}
locationRestrictions: []means the job is open worldwide; otherwise it lists the allowed countries / regions.salary.extractedFromissource(structured board data),field(board's salary text) ordescription.- In monitor mode each item also has
firstSeenAt. - Fields a board does not provide are
null.
A per-board report (status, fetched, matched, output, mergedDuplicates, requests, error) is saved to the
SUMMARY record of the run's key-value store.
Pricing — pay per job
You pay a small fee per job in the dataset (event job) — no monthly rental. Duplicates merged across boards are
charged once. In monitor mode you pay only for new jobs, and the first (baseline) run outputs nothing, so a
schedule every few hours typically costs cents per day. Set a maximum cost per run and the Actor stops cleanly when
it is reached.
Tips
- Job alerts: enable
onlyNewJobs, create a Schedule (e.g. every 6 hours) and connect an integration (Slack, email, Google Sheets, webhook, Zapier, Make). - Remotive asks API users to fetch at most ~4 times a day — don't schedule more often if Remotive is selected.
- Bigger result sets: raise
maxJobsPerSource; Himalayas and Jobicy go up to 1,000 jobs per run. - Leaner dataset: switch off
includeDescription.
FAQ
Which remote job boards are supported? Remote OK, We Work Remotely, Remotive, Himalayas, Jobicy and Arbeitnow (remote jobs only). All are read through their official public APIs or RSS feeds — no login, no browser.
How are duplicates detected? Each job gets a dedupKey from the normalized company name (legal suffixes like
Inc/GmbH removed) and title (gender tags like "(m/w/d)", "Remote", "Sr."/"Senior" normalized). Jobs with the same key
are merged; sources lists every board and link, and missing fields (logo, salary, category…) are filled from the
duplicates.
Can I get only new remote jobs every day? Yes — enable onlyNewJobs and schedule the Actor. The first run saves
a silent baseline; each later run outputs only jobs that appeared since. Use different monitorIds for different
searches.
What happens if a job board is down? The other boards still run. The failed board is reported in the SUMMARY
record and in the run's status message; the run fails only if every selected board fails.
Can I export to Google Sheets, Excel or CSV? Yes — use the dataset export (JSON, CSV, Excel, XML, RSS) or Apify integrations. AI agents can call the Actor via the Apify MCP server.
Does it scrape job descriptions? Yes, as plain text (descriptionText) when includeDescription is on.
Legal & attribution
This Actor uses only the free public APIs and RSS feeds that these job boards publish for sharing their listings.
Each board asks that re-published jobs credit the board and link back to the original posting — every result
therefore includes sourceName, sourceUrl and applyUrl pointing to the original listing (and a sources list for
merged duplicates). If you display these jobs publicly, show the source name and keep the link (Remote OK asks for a
followed link, without nofollow, and does not allow use of its logo without permission). Remotive does not allow its
jobs to be submitted to third-party job sites such as Google Jobs, LinkedIn Jobs, Jooble or Neuvoo; Jobicy asks that
apply buttons point to the original job URL. Please read and respect each board's terms:
Remote OK, Remotive,
We Work Remotely, Himalayas,
Jobicy, Arbeitnow.
Job descriptions remain the property of the employers and boards. The Actor collects no personal data.
Related tools
- Career Sites Jobs Feed (Workday, Greenhouse, Lever, Ashby +7) — jobs straight from company career sites: live listings from any company's ATS, with salary and new/closed job monitoring.
- Substack to Markdown for AI & RAG
- Shopify Products & Price Monitor