Remote Jobs Scraper - RemoteOK, WWR, Jobicy & Working Nomads
Pricing
from $2.00 / 1,000 remote job scrapeds
Remote Jobs Scraper - RemoteOK, WWR, Jobicy & Working Nomads
Remote jobs from RemoteOK, We Work Remotely, Jobicy and Working Nomads in one normalized, de-duplicated dataset: parsed salary min/max, normalized categories, keyword/location/salary filters and an only-new-jobs mode for alerts.
Pricing
from $2.00 / 1,000 remote job scrapeds
Rating
0.0
(0)
Developer
rj
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Security
Limited permissionsShare
Remote Jobs Scraper - RemoteOK, We Work Remotely, Jobicy & Working Nomads
Get remote job listings from four remote job boards in one run: Remote OK, We Work Remotely, Jobicy and Working Nomads. Every job comes back in the same clean schema. Duplicates across boards are merged into one record that lists every board it appeared on. Salaries are parsed into min/max/currency/period, and categories are normalized, so a "Back-End Programming" job and a "Software Engineering" job both end up as software-dev. Filter by keyword, category, candidate location, minimum salary and posting age, or turn on only new jobs for a scheduled job alert. Most remote-job Actors cover a single board or return the same job three times. This one reads public JSON APIs and RSS feeds only: no browser, no login, fast and cheap.
What data can you get?
| Field | Example |
|---|---|
title, company | Senior React Full stack Developer, Lemon.io |
category (normalized) | software-dev, design, marketing, sales, customer-support, product, data, devops, finance, hr, writing, other |
sourceCategory, tags | Back-End Programming; ["python", "django"] |
jobType | full-time, part-time, contract, freelance, internship |
locationRestriction | USA Only, Anywhere in the World, Europe, LATAM |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText | 80000, 200000, USD, year, "$80,000 - $200,000 / year" |
postedAt, expiresAt | ISO 8601 dates |
descriptionText, descriptionHtml | Full job description |
applyUrl | The original posting on the source board |
source, sources, sourceUrls | Remote OK; every board that listed the job |
companyUrl, companyLogo | Company website (We Work Remotely) |
id, url, scrapedAt | remoteok:1137475, job page, scrape time |
Use cases
- Remote job alerts: schedule a daily run with
onlyNewand send new matches to Slack or e-mail. - Job boards and newsletters: feed a curated "remote Python jobs" page or weekly digest, with attribution and links back to each source (see Sources and attribution).
- Salary research: compare advertised remote pay by category and region with the
salariesview. - Recruiting and market research: see which companies are hiring remotely, for what roles, and where candidates may live.
How to use
- Pick the sources (all four by default).
- Add keywords (any match on title, tags or company), and optionally categories, candidate location, minimum salary and posted within (days).
- Set Max jobs and run. Download the results as JSON, CSV or Excel, or read them through the API.
Remote Python developer jobs from all four boards:
{"keywords": ["python", "django"],"categories": ["software-dev"],"maxItems": 50}
Customer support jobs open to US residents:
{"categories": ["customer-support"],"locationRestriction": ["USA"],"maxItems": 30}
Daily alert: new marketing jobs from the last 7 days paying at least $80k:
{"categories": ["marketing"],"postedWithinDays": 7,"minSalary": 80000,"onlyNew": true,"stateKey": "marketing-alert","maxItems": 0}
Output example
One real job (trimmed). It was listed on three boards and merged into one record:
{"id": "remoteok:1137475","url": "https://remoteok.com/remote-jobs/remote-senior-react-full-stack-developer-lemon-io-1137475","title": "Senior React Full stack Developer","company": "Lemon.io","companyUrl": null,"companyLogo": null,"category": "software-dev","sourceCategory": null,"tags": ["dev", "engineer", "python", "aws", "javascript", "react", "node", "typescript", "full time", "full stack"],"jobType": "full-time","locationRestriction": null,"salaryText": "$80,000 - $200,000 / year","salaryMin": 80000,"salaryMax": 200000,"salaryCurrency": "USD","salaryPeriod": "year","postedAt": "2026-10-09T13:09:18.000Z","expiresAt": null,"descriptionText": "Are you a talented Senior Developer looking for a remote job that lets you show your skills and get decent compensation? Look no further than Lemon.io …","descriptionHtml": "<p>Are you a talented Senior Developer looking for a remote job …","applyUrl": "https://remoteok.com/remote-jobs/remote-senior-react-full-stack-developer-lemon-io-1137475","source": "Remote OK","sourceUrl": "https://remoteok.com/remote-jobs/remote-senior-react-full-stack-developer-lemon-io-1137475","sources": ["Remote OK", "We Work Remotely", "Working Nomads"],"sourceUrls": ["https://remoteok.com/remote-jobs/remote-senior-react-full-stack-developer-lemon-io-1137475","https://weworkremotely.com/remote-jobs/lemon-io-senior-react-full-stack-developer-7","https://www.workingnomads.com/job/go/1920195/"],"scrapedAt": "2026-11-04T12:31:27.577Z"}
More items: samples/sample-output.json. The dataset has three views: Overview, Salaries and Descriptions. A RUN_SUMMARY record in the key-value store shows, per source, the status, jobs fetched, matched and output, and the request count.
Pricing
Pay per event, no start fee:
| Event | Price | When |
|---|---|---|
job | $0.002 | One job saved to the dataset |
Example: 1,000 remote jobs ≈ $2.00, and a daily alert that finds 30 new jobs costs about $0.06 a day. You only pay for jobs that are output. Duplicates merged across boards, jobs filtered out and (with onlyNew) jobs already seen cost nothing. The run stops cleanly at your Maximum cost per run.
Sources and attribution
The jobs come from these boards' public feeds. Every applyUrl goes to the original posting on the board it came from. If you republish the jobs, credit the board and link back as its terms ask:
- Remote OK (API): mention Remote OK as the source and link back to the job on Remote OK (a followed link, no
nofollow). Don't use the Remote OK logo without permission. - We Work Remotely (RSS): link to the original posting.
- Jobicy (API): credit Jobicy with a direct link to the source, and point every application button to the original job URL (
applyUrl). - Working Nomads (API): link to the original posting.
Remotive and Himalayas are deliberately not included: their API terms forbid redistributing their jobs through other job boards or aggregators.
Tips and limits
- How much each board returns: Remote OK about 100 newest jobs, Working Nomads about 30, Jobicy up to 100 per keyword from the last 7 days, We Work Remotely 100 on the main feed (10 per category) or the full category feeds when you pick categories A run with no filters returns about 300 unique jobs.
- Keywords are matched as whole words on title, tags and company (
godoes not match "Google"). They are also sent to Jobicy's search to fetch more relevant jobs, but every job is still checked locally, so results stay on topic. Jobicy needs keywords of 3+ characters; with a shorter keyword, Jobicy is read unfiltered and matched locally. - Candidate location matches each board's own location text. Worldwide jobs also match a regional filter (you can take them from anywhere); enter only
Worldwideto get worldwide jobs alone. Jobs with no location (common on Remote OK) are dropped when a location filter is set. - Minimum salary compares the top of the range in USD per year (hourly × 2080, monthly × 12). Jobs without a parsed USD salary are kept, not dropped. Remote OK and Jobicy publish structured pay; for We Work Remotely and Working Nomads a pay range is extracted from the description when one is stated.
- Categories are normalized from the board's own category (or the title when the board has none, as on Remote OK), so expect some borderline calls.
- De-duplication: jobs with the same company and title (ignoring punctuation and suffixes like Inc/LLC/AB) posted within 14 days are merged. The richest posting is kept (salary first, then the longest description).
- Max jobs picks jobs in turns from each board, newest first, so one busy board doesn't crowd out the rest.
- Only new jobs: IDs are stored per
stateKeyin the named key-value storeremote-jobs-scraper-state. Jobicy asks feeds not to be polled more than once an hour; a daily or hourly schedule is plenty.
FAQ
Is it legal?
The Actor reads only public job feeds and APIs that the boards publish for this purpose. It collects no personal data: no applicant data, and e-mail addresses and phone numbers in job descriptions are replaced with [email removed] / [phone removed]. You are responsible for how you use the data, including each board's terms (see Sources and attribution) and data-protection laws such as the GDPR.
Do I need a proxy? Usually not. All four feeds answered normally from Apify's datacenter IPs in testing. If a board returns HTTP 403/429, enable Proxy configuration with Apify Proxy (datacenter). Residential proxies are not supported: if you select them, the Actor falls back to Apify datacenter proxy and logs a warning.
What happens if one board is down?
The others still run and the run succeeds. The board's error is in the log and in RUN_SUMMARY. The run fails only if no board could be read at all.
Why did I get fewer jobs than Max jobs?
The boards only publish their newest postings, and your filters apply after fetching. RUN_SUMMARY shows, per board, how many jobs were fetched and how many matched.
Integrations
Use the results anywhere through the Apify API (JSON, CSV, Excel, RSS), the official JavaScript and Python clients, Make, Zapier, n8n, Google Sheets, Slack and webhooks. Run it from AI agents through the Apify MCP server. Schedule it in Apify Console for daily job alerts.
Changelog
- 0.1 (November 2026): first release. Four sources (RemoteOK, We Work Remotely, Jobicy, Working Nomads), normalized schema, cross-source de-duplication, salary parsing, filters, only-new-jobs mode.
More scrapers by the same developer
- ATS Jobs Scraper: Greenhouse, Lever, Ashby & Workday
- Dice Jobs Scraper
- Reed.co.uk Jobs Scraper - UK Job Listings with Salary
- SEEK Jobs Scraper
- Workday Jobs Scraper
- AI Visibility Tracker: ChatGPT, Perplexity, Gemini, Claude
Browse all my Actors on my Apify Store profile.
Support
Found a bug or need another board or field? Open an issue on the Issues tab with your input, and we'll take a look.