RemoteOK Remote Jobs Scraper avatar

RemoteOK Remote Jobs Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
RemoteOK Remote Jobs Scraper

RemoteOK Remote Jobs Scraper

Scrape remote job listings from RemoteOK.com using their official public JSON API. Filter by skill tags, minimum salary, and keywords. Returns structured job data with salary, company info, tags, and direct apply links. No proxy or authentication needed.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

In life Projects Dev

In life Projects Dev

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

36 minutes ago

Last modified

Share

Fetches remote job listings from RemoteOK's official public JSON API — no authentication, no proxy, no browser automation required. Each run returns up to ~100 of the most recent jobs per tag filter, normalized into a consistent NormalizedJob schema and pushed to an Apify Dataset. Supports optional webhook delivery for job board pipelines.

✨ Features

  • Official RemoteOK JSON API — no browser, no proxy, no CAPTCHAs
  • Filter by skill tags (javascript, python, react, devops, design etc.)
  • Client-side keyword filter on title, company, tags
  • Minimum salary filter (USD)
  • Verified listings filter
  • Non-tech role filter (optional)
  • HTML stripped from descriptions — clean plain text output
  • Webhook delivery in batches of 50 for job board pipelines
  • Same NormalizedJob output schema as inlifeprojects/himalayas-jobs-scraper
  • Results in under 5 seconds — extremely fast and cheap to run

🎯 Use Cases

  • Job boards and aggregators
  • Recruitment pipeline automation
  • Salary research by tech stack
  • Remote work trend monitoring
  • AI agent job search workflows

📥 Input Parameters

ParameterTypeDefaultDescription
tagsstring[][]Skill/category tags to filter by. Each tag is a separate API request. Leave empty for all recent jobs.
keywordFilterstring""Client-side keyword match against title, company, and tags. Case-insensitive.
minSalaryinteger0Exclude jobs where salary_max is below this value (USD). Jobs without salary data always pass through.
includeUnverifiedbooleantrueWhen false, only returns listings where verified=true.
filterNonTechbooleanfalseWhen true, removes clearly non-technical roles (receptionist, accountant, driver, nurse etc.).
maxResultsinteger0Cap on total jobs returned across all tag requests. 0 means no limit.
webhookUrlstring""If set, POSTs all results to this URL in batches of 50 on completion.
webhookSecretstring""Sent as X-Scraper-Secret header with every webhook batch.

📤 Output Format

Each item in the Apify Dataset conforms to the NormalizedJob schema:

{
"id": "senior-python-engineer-techcorp",
"source": "remoteok",
"source_url": "https://remoteok.com/remote-jobs/senior-python-engineer-techcorp",
"apply_url": "https://techcorp.com/jobs/senior-python-engineer",
"title": "Senior Python Engineer",
"description": "We are looking for a Senior Python Engineer to join our backend team. You will design and build scalable APIs using Django and deploy them on AWS...",
"type": "full-time",
"work_mode": "remote",
"location": "Worldwide",
"experience_level": "",
"salary_min": 130000,
"salary_max": 160000,
"currency": "USD",
"salary_period": "year",
"company_name": "TechCorp",
"company_slug": "techcorp",
"company_url": "https://remoteok.com",
"company_logo_url": "https://remoteok.com/assets/companies/techcorp-logo.png",
"tags": ["python", "django", "aws", "backend"],
"markets": ["python", "django", "aws", "backend"],
"posted_at": "2026-04-28T14:23:00.000Z",
"expires_at": null,
"scraped_at": "2026-04-29T09:00:00.000Z",
"data_source": "RemoteOK",
"data_source_url": "https://remoteok.com"
}

🚀 Example Inputs

Fetch all recent remote jobs (no filter)

{}

Returns ~100 of the most recent jobs across all categories.

Filter by skill tags

{
"tags": ["javascript", "react", "typescript"],
"minSalary": 80000,
"filterNonTech": true
}

Job board pipeline with webhook

{
"tags": ["python", "javascript", "devops", "react"],
"webhookUrl": "https://yoursite.com/api/internal/scraper/ingest",
"webhookSecret": "your-secret-here"
}

Senior roles only with salary filter

{
"keywordFilter": "senior",
"minSalary": 120000,
"includeUnverified": false
}

⚡ Performance & Cost

  • Single API request returns ~100 most recent jobs
  • 4 tag filters = 4 API requests, ~400 jobs after deduplication
  • Typical run: under 5 seconds
  • Approximate Apify compute: 0.001–0.005 compute units per run
  • Extremely cheap — well within Apify free tier
javascript, typescript, python, react, vue, node, php, ruby, golang,
rust, java, kotlin, swift, flutter, devops, aws, docker, kubernetes,
design, ux, marketing, sales, finance, legal, hr, writing, customer-support

📋 Important Notes

  • RemoteOK returns the ~100 most recent listings per tag request (not a full historical archive)
  • Salary data is only available on ~30-40% of listings
  • Salary currency is always USD on RemoteOK
  • Employment type is always "full-time" — RemoteOK doesn't expose type in their API
  • Attribution required: results include direct source_url links to RemoteOK per their terms of use

🔗 Also by inlifeprojects

  • Himalayas Remote Jobs Scraper — search remote jobs from Himalayas.app by keyword, seniority, employment type, and country. Supports full pagination up to 500 results per keyword with automatic deduplication.
  • We Work Remotely Jobs Scraper — scrape remote job listings from WeWorkRemotely.com — the world's largest remote work community — via their official public RSS feeds. 11 category feeds covering programming, devops, design, product, marketing, and more. No proxy or auth needed.

All three Actors share the same NormalizedJob output schema — run them together and combine the results with zero extra normalization work for maximum remote job coverage.

🙏 Attribution

Data sourced from RemoteOK — the #1 remote-only job board on the web. Per RemoteOK terms: results link directly back to the original job listing on RemoteOK with no redirects.

⚠️ Limitations

  • ~100 most recent jobs per tag (not full archive)
  • Salary data sparse (~30-40% of listings)
  • No pagination — RemoteOK API is a flat feed
  • Rate limiting applies — built-in retry on 429

📝 Changelog

0.1.0

  • Initial release