Remote Jobs Aggregator — 6 Boards [/w EMAILS💰] avatar

Remote Jobs Aggregator — 6 Boards [/w EMAILS💰]

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Remote Jobs Aggregator — 6 Boards [/w EMAILS💰]

Remote Jobs Aggregator — 6 Boards [/w EMAILS💰]

One run = 2,000–3,000 unique live remote jobs from 6 boards — RemoteOK full-depth, WeWorkRemotely, Remotive, Himalayas, Jobicy, Arbeitnow — deduplicated into one clean dataset with salary, geo eligibility, and opt-in employer contact emails. $1.99/1K jobs. JSON or CSV out.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Remote Jobs Aggregator — 6 Boards in One Dataset

Aggregate six remote-job boards in a single run — RemoteOK (full 1,000+ board), WeWorkRemotely, Remotive, Himalayas, Jobicy, and Arbeitnow — into one normalized, cross-board-deduplicated dataset: 2,000–3,000 unique live remote jobs with salary ranges, who-may-apply countries, full descriptions, and opt-in employer contact emails. Built for recruiters, job boards, researchers, and lead-gen teams who are tired of running five scrapers and merging CSVs by hand.

How Remote Jobs Aggregator works

How it works

  1. Run with defaults — all six boards are fetched in parallel (pick any subset with the sources input).
  2. Every job is normalized into one 30+ field schema; the same job posted on several boards collapses into one row (richest copy wins, the rest listed in alsoFoundOn, missing fields backfilled across boards).
  3. Filters (keyword, tags, countries, salary, job type, posting age) run before rows count toward maxItems — you never pay for filtered-out rows.
  4. Results are balanced round-robin across boards, freshest first, and exported as JSON, CSV, or Excel.

💰 $1.99 per 1,000 unique jobs. Six boards for roughly the price competitors charge for one.


✨ Why use this aggregator?

  • RemoteOK at full depth. Most aggregators wrap RemoteOK's public API, which stops at the 100 newest jobs. This actor walks RemoteOK's complete live board — 1,000+ jobs — via the same feed its own infinite scroll uses.
  • Real cross-board dedupe. Company+title matching collapses reposts into one row and records where else it appeared (alsoFoundOn) — the only honest way to count "unique live remote jobs".
  • One schema, six boards. Salary ranges parsed to {min, max, currency}, dates to ISO, employment types unified to FULL_TIME/CONTRACT/…, geo eligibility as one applicantCountries[] array — no per-board special-casing in your code.
  • Fault-tolerant by design. Boards are fetched independently; one being down is logged and skipped, never a failed run.
  • Employer contact emails (opt-in). enrichEmails adds contactEmail + contactWebsite discovered from each hiring company's website — turning the merged feed into a lead list.
  • Balanced output. Round-robin across boards stops any single high-volume source from drowning the rest of your dataset.

What makes this richer than alternatives

CapabilityThis actorTypical remote-jobs aggregator
Boards✅ 6 (incl. WeWorkRemotely)⚠️ 3–4 easy APIs
RemoteOK depth✅ Full board (1,000+)❌ API's newest 100
Cross-board dedupe✅ With alsoFoundOn + field backfill❌ Raw duplicates
Salary✅ Parsed {min, max, currency}⚠️ Raw strings
Geo eligibility✅ Unified applicantCountries[]⚠️ Per-board formats
Contact emails✅ Opt-in enrichment
Filter billing✅ Filtered rows are free⚠️ Billed after scraping
Source balance✅ Round-robin❌ Whatever order boards return

Supported boards

BoardCoverage per runNotes
RemoteOK~1,000+ (full live board)10× past its public API's 100-job cap; full descriptions recovered from the page
WeWorkRemotely~100 newestFull ~8KB descriptions, region + skills tags
Himalayaspaginated walkSalary, seniority, location + timezone restrictions, real apply links
Remotive~20 newestTheir public API's hard cap — verified
Jobicy~50 newestIndustry, level, salary fields
Arbeitnowremote rows onlyEuropean lean; non-remote rows are dropped

Pick any subset with the sources input — e.g. ["remoteok", "weworkremotely"] for just the two big independent boards.


🎯 Use cases

  • Job boards & newsletters — one scheduled run mirrors six boards into your product, deduplicated and normalized.
  • Recruiting & sourcing — every live listing for a skill or geography across the remote market, with employer emails on tap.
  • Market research — salary distributions, tag frequency, and geo-eligibility trends across boards, not just one site's bias.
  • Lead generation — each job is a company spending money on hiring right now; contactEmail makes them reachable.
  • Job alerts — schedule daily with timeFilter: "24h" for a cross-board feed of only fresh postings.

Quick start

Everything, defaults — up to 2,000 unique jobs from all six boards:

{}

Senior engineering roles open to US applicants, posted this week, with emails:

{
"searchKeyword": "senior engineer",
"countries": ["US"],
"timeFilter": "7d",
"enrichEmails": true
}

Just the two big independent boards:

{
"sources": ["remoteok", "weworkremotely"]
}

Input configuration

FieldTypeDefaultNotes
sourcesarrayall sixAny subset of remoteok, weworkremotely, remotive, himalayas, jobicy, arbeitnow
dedupebooleantrueCross-board dedupe with alsoFoundOn + field backfill
searchKeywordstring""Matched over title + company + categories/industry + location; every word must match
tagsFilterarray[]Any-of match over tags + categories
countriesarray[]Names or ISO-2; Anywhere jobs always pass
jobTypesarray[]FULL_TIME, CONTRACT, …
minSalaryinteger0USD/year, permissive (unlisted salaries kept)
timeFilterselect""24h / 7d / 30d / 90d
includeDescriptionbooleantrueOff = drop description fields
cleanHtmlbooleanfalseOn = plain-text description only
enrichEmailsbooleanfalseOpt-in employer email discovery; billed per email found
maxItemsinteger2000Filtered-out rows never count

Output overview

One dataset row per unique job, 30+ fields:

  • Identity: source, sourceJobId, url, applyUrl, alsoFoundOn[]
  • Job: title, description (+ descriptionHtml, descriptionText), tags[], categories[], jobLevel, industry, employmentType[]
  • Company: companyName, companyLogo, companyWebsite, opt-in contactEmail / contactWebsite / emailEnrichment
  • Geography: applicantCountries[], location
  • Compensation: salary { currency, min, max, unit }, salaryText
  • Timing: postedDate, validThrough, scrapedAt

Sample row (real smoke-test data, truncated)

{
"type": "job",
"source": "remoteok",
"sourceJobId": "1128869",
"url": "https://remoteok.com/remote-jobs/remote-senior-software-engineer-stellar-ai-1128869",
"applyUrl": "https://remoteok.com/l/1128869",
"title": "Senior Software Engineer",
"companyName": "Stellar AI",
"companyLogo": "https://r2.remoteok.com/jobs/….jpg",
"companyWebsite": null,
"description": "… full posting text, 2,221 chars …",
"tags": ["developer", "ai"],
"categories": ["Senior Software Engineer"],
"jobLevel": null,
"industry": "Startups",
"employmentType": ["FULL_TIME"],
"applicantCountries": ["United Kingdom", "Australia", "New Zealand"],
"location": "United Kingdom, Australia, New Zealand",
"salary": { "currency": "USD", "min": 90000, "max": 130000, "unit": "YEAR" },
"salaryText": null,
"postedDate": "2026-07-25T11:02:13.000Z",
"validThrough": "2026-10-23T11:02:13.000Z",
"alsoFoundOn": [{ "source": "himalayas", "url": "https://himalayas.app/companies/stellar-ai/jobs/…" }],
"scrapedAt": "2026-08-12T04:44:19.102Z"
}

With enrichEmails: true, matching rows additionally carry contactEmail, contactWebsite, and a detailed emailEnrichment object.


❓ FAQ

How many jobs will I get? With all six boards and no filters, typically 2,000–3,000 unique jobs after dedupe. maxItems caps the run; filtered-out rows never count toward it.

How does deduplication work? Case-insensitive company+title matching across boards. The copy from the richest source is kept (RemoteOK → WeWorkRemotely → Himalayas → Remotive → Jobicy → Arbeitnow), every other appearance is recorded in alsoFoundOn, and missing fields (salary, website, longer description) are backfilled from the duplicates. Set dedupe: false to keep every board's copy.

Why does RemoteOK contribute so many more jobs than Remotive? Board reality: this actor walks RemoteOK's full live board (1,000+), while Remotive's public API is hard-capped at its ~20 newest jobs (verified — the limit and category parameters don't lift it). Each board contributes what it actually exposes.

Is one board being down a failed run? No — every board is fetched independently. A failing board is logged in the run stats and the rest continue.

Why round-robin instead of newest-first? Some boards refresh timestamps aggressively; a global newest-first cap would fill your entire dataset from one source. Round-robin keeps every selected board represented, freshest first within each.

Is enrichEmails guaranteed to find an email? No — it is best-effort discovery from the employer's website (seeded by companyWebsite when a board exposes it, otherwise name-based lookup with a business-precision guard). Billed per email found, never for misses.

Can I schedule it? Yes — any Apify schedule. For a daily cross-board digest, set timeFilter: "24h" and schedule every morning.


Support

  • 🐛 Issues tab of this actor — the fastest way to reach me, usually answered within hours.
  • 💬 Feature requests welcome: more boards, filters, or output fields ship on demand.

Additional Services

  • Custom scrapers for any job board, directory, or listing site — delivered as private Apify actors.
  • Managed data feeds — scheduled runs, deduplication, delivery to your warehouse (BigQuery, Postgres, S3, Google Sheets).
  • Email enrichment at scale across any of my actors.

Open an issue on this actor or message via my Apify profile to discuss.


Explore More Scrapers

Single-board actors, same schema philosophy and support:

Browse the full catalog: apify.com/memo23


🤖 For AI Agents & LLM Apps

  • Stable unified schema — every field always present (null/[] when unavailable), identical across all six boards, so tool-calling code never branches per source.
  • MCP-ready — callable through Apify's MCP server; a minimal call is { "searchKeyword": "python", "maxItems": 20 }.
  • Token-friendly modescleanHtml: true for plain-text descriptions, includeDescription: false for compact metadata-only rows.
  • Deterministic — exact client-side filtering and stable dedupe rules; same inputs, same selection logic.
  • Cheap in loops — filtered queries bill only matching rows, so agents can iterate freely.

⚠️ Disclaimer

This actor is an independent tool, not affiliated with, endorsed by, or sponsored by Remote OK, WeWorkRemotely, Remotive, Himalayas, Jobicy, or Arbeitnow. It accesses only publicly available data — public pages, feeds, and APIs each board exposes to any visitor — and does not bypass authentication, paywalls, or access controls. You are responsible for how you use the data: comply with applicable laws (GDPR/CCPA where relevant), respect each board's terms of service, and attribute sources where their data guidelines require it. Job data comes from live sites and can change or contain employer-supplied errors; verify before making decisions based on it.

SEO Keywords

remote jobs aggregator, remote jobs scraper, remote job listings data, remoteok scraper, weworkremotely scraper, remotive api, himalayas jobs api, jobicy scraper, arbeitnow api, remote jobs dataset, remote job leads with emails, remote hiring companies, remote jobs json csv export, multi board job scraper, remote work data, digital nomad jobs data

License

Apache-2.0