Remote Jobs Scraper — We Work Remotely & RemoteOK
Pricing
from $1.00 / 1,000 results
Remote Jobs Scraper — We Work Remotely & RemoteOK
Scrape remote jobs from We Work Remotely and RemoteOK with onlyNewJobs deduplication, salary filters, and n8n/Slack automation. Two sources in one run, unlike single-board scrapers.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Haruto G
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
23 days ago
Last modified
Categories
Share
Remote Jobs Scraper — RemoteOK
Scrape structured remote job listings in seconds. This Apify Actor collects clean, export-ready job data from RemoteOK — a widely used remote job board for developers, recruiters, and market researchers.
No custom code. No brittle scripts. Run it on a schedule, pipe results into your stack, and get consistent JSON every time.
New: enable onlyNewJobs to get only fresh listings since your last run — the killer feature for daily Slack alerts, spreadsheet syncs, and recurring automations without duplicate noise.
Why teams buy this Actor
| Pain point | What you get |
|---|---|
| Manual copy-paste from job boards | Automated extraction at scale |
| Duplicate alerts every morning | onlyNewJobs — diff-only output via KVS cache |
| Inconsistent data shapes | One normalized schema for every record |
| Fragile DIY scrapers that break | Maintained RemoteOK API integration |
| Slow research cycles | Filter by keyword, salary, or skill tags |
Built for speed, reliability, and integration — the three things that matter when you're paying per result or running daily pipelines.
RemoteOK attribution (required)
RemoteOK's terms require that you:
- Credit Remote OK as the source when displaying or redistributing job data
- Link directly to each job's URL on
remoteok.com(no redirects) - Link back to RemoteOK on any page or app screen where you show this data
This Actor helps by including these fields on every record:
| Field | Purpose |
|---|---|
url / applyUrl | Direct link to the job on RemoteOK |
sourceAttribution | "Remote OK" |
sourceSiteUrl | https://remoteok.com |
Your responsibility: if you build a dashboard, Slack bot, or public job board with this data, include the attribution and links above in the UI — not just in the raw JSON.
Automate without code (n8n · Make · Zapier)
You don't need to be an engineer to build a job-alert system. Connect this Actor to your favorite iPaaS tool and let it run on autopilot.
Typical no-code flow
Schedule (daily 8 AM)→ Run Remote Jobs Scraper (onlyNewJobs: true)→ If new jobs found→ Send to Slack / Google Sheets / Email
Why onlyNewJobs matters for automation: without it, every scheduled run sends the same 50–100 jobs again. With it, your Slack channel or spreadsheet only receives genuinely new postings.
Daily new-job alert workflow (recommended)
Step 1 — Configure the Actor
{"maxItems": 100,"searchKeyword": "python","onlyNewJobs": true,"minSalary": 80000}
Step 2 — Schedule on Apify
- Open the Actor → Schedules → Create schedule
- Set cron:
0 8 * * *(every day at 8:00 AM) - Paste the input above
- Enable Save dataset and optional Webhook on success
Step 3 — Connect your tool
| Tool | What to do |
|---|---|
| n8n | Apify Trigger → Get Dataset Items → Slack / Google Sheets |
| Make | Apify Watch Actor Runs → Iterator → Add Row / Send Message |
| Zapier | Apify integration → Filter (itemCount > 0) → Slack / Gmail |
Data fields
Every record is normalized into a consistent schema:
| Field | Description |
|---|---|
| title | Job title |
| company | Hiring company name |
| location | Remote region or geography |
| tags | Skills and category labels |
| salary / salaryMin / salaryMax | Compensation when listed |
| url | Direct link to the job on RemoteOK |
| applyUrl | Apply link on RemoteOK |
| sourceAttribution | "Remote OK" |
| sourceSiteUrl | https://remoteok.com |
| postedAt | ISO 8601 posting date |
| jobId | Stable deduplication key |
Additional fields: description, currency, externalId, scrapedAt.
Example output
[{"jobId": "remoteok:123456","title": "Senior Python Developer","company": "Acme Corp","location": "Worldwide","tags": ["Python", "Django"],"salary": "$120,000 - $160,000","salaryMin": 120000,"salaryMax": 160000,"currency": "USD","url": "https://remoteok.com/remote-jobs/123456","applyUrl": "https://remoteok.com/remote-jobs/123456","source": "remoteok","sourceAttribution": "Remote OK","sourceSiteUrl": "https://remoteok.com","postedAt": "2026-07-17T08:42:51Z"}]
Quick start
Example input
{"maxItems": 100,"searchKeyword": "python","minSalary": 80000,"onlyNewJobs": true,"tags": ["python"]}
Call via API (cURL)
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~remote-jobs-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"maxItems": 100,"searchKeyword": "python","onlyNewJobs": true}'
Call via Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_USERNAME/remote-jobs-scraper").call(run_input={"maxItems": 100,"searchKeyword": "python","onlyNewJobs": True,})jobs = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(f"New jobs: {len(jobs)}")
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 100 | Maximum records to collect (1–1000) |
searchKeyword | string | — | Case-insensitive filter on title, company, tags |
minSalary | integer | — | Minimum salary filter (USD, when disclosed) |
onlyNewJobs | boolean | false | Output only jobs not seen in previous runs |
tags | string[] | [] | RemoteOK tag filter (e.g. python, devops) |
How onlyNewJobs works
- The Actor loads a cache of previously seen
jobIdkeys from the Apify Key-Value Store - It fetches up to
maxItemslistings from RemoteOK - Only listings not in the cache are pushed to the Dataset
- All scraped job keys are merged into the cache for the next run
First run with onlyNewJobs: true returns all scraped jobs (empty cache). Every subsequent scheduled run returns only the delta.
Data source
| Source | Method | Notes |
|---|---|---|
| RemoteOK | Public JSON API (remoteok.com/api) | Fast bulk fetch, salary ranges, skill tags |
Legal & fair use
- Data is fetched from RemoteOK's public API feed
- Each record includes attribution fields required by RemoteOK terms
- You must credit Remote OK and link back when displaying data in apps, dashboards, or public pages
- Use reasonable
maxItemsand respect RemoteOK's API access policies - Do not republish personal data beyond what the listing exposes
Support
Questions or feature requests? Open an issue on the Actor page or contact the author via the Apify Console.
Keywords: remote jobs scraper, RemoteOK API, job board data, n8n job alerts, Zapier remote jobs, Slack job notifications, Google Sheets job scraper, only new jobs, daily job alerts, recruiter automation.