Remote Jobs Scraper: RemoteOK, WWR, Remotive, Himalayas +2 avatar

Remote Jobs Scraper: RemoteOK, WWR, Remotive, Himalayas +2

Pricing

Pay per event

Go to Apify Store
Remote Jobs Scraper: RemoteOK, WWR, Remotive, Himalayas +2

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

Max Prozapas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 sources list (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)EndpointJobs per run (approx.)SalaryNotes
Remote OK (remoteok)remoteok.com/apilatest ~100yes (+ description)Attribution required — link back to Remote OK
Remotive (remotive)remotive.com/api/remote-jobspublic feed (delayed 24h)salary textAttribution required; advise max. 4 runs/day
We Work Remotely (weworkremotely)RSS: main feed + 10 category feedsup to ~400from descriptionRegion + allowed countries
Himalayas (himalayas)himalayas.app/jobs/api (+ search)up to 1,000yesLocation & timezone restrictions, seniority
Jobicy (jobicy)jobicy.com/api/v2/remote-jobsup to 1,000yesCredit Jobicy, apply via original job URL
Arbeitnow (arbeitnow)arbeitnow.com/api/job-board-apiremote subset of latest ~3,000from descriptionEU/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 onlyNewJobs and 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

FieldTypeDescription
sourcesarrayJob boards to use: remoteok, remotive, weworkremotely, himalayas, jobicy, arbeitnow. Default: all.
keywordsarrayKeep jobs whose title, company or tags contain ANY keyword (whole words incl. plurals, engineer → Engineering).
excludeKeywordsarrayDrop jobs whose title or company contains any of these words (e.g. senior, sales).
categoriesarrayKeep jobs whose category or tags contain any of these texts (software, devops, design, marketing…).
postedWithinDaysintegerOnly jobs posted in the last N days (0 = any).
includeDescriptionbooleanAdd plain-text descriptionText (default on).
maxJobsPerSourceintegerMax matching jobs per board, newest first (default 100, max 1000).
onlyNewJobsbooleanMonitor mode: output only jobs not seen in previous runs.
monitorIdstringName of the saved monitor state — use different IDs for different searches.
baselineOnFirstRunbooleanFirst 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.extractedFrom is source (structured board data), field (board's salary text) or description.
  • 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.

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.