Remote Jobs API & Scraper: Remote Jobs by Region, Hourly
Pricing
from $1.00 / 1,000 job results
Remote Jobs API & Scraper: Remote Jobs by Region, Hourly
Remote-only jobs straight from 17,000+ company career sites (Greenhouse, Lever, Workday, Ashby...), refreshed hourly. Filter by where you can work from (US, Canada, Europe, UK, LATAM, APAC, anywhere), function, seniority and minimum salary. Aggregators removed, duplicates merged.
Pricing
from $1.00 / 1,000 job results
Rating
0.0
(0)
Developer
Clean Row Data
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
18 days ago
Last modified
Categories
Security
Limited permissionsShare
Remote Jobs API: remote jobs by region, straight from 17,000+ company career sites
Get remote jobs you can actually take from where you live. This Actor returns remote-only jobs from 17,000+ companies' own career sites (Greenhouse, Lever, Ashby, Workday, Workable, SmartRecruiters, Recruitee, Personio, Rippling), refreshed every hour (Workday daily), and tells you where each remote job is open to: US, Canada, Latin America, UK, Europe, India, Asia-Pacific, Middle East, Africa or anywhere. Ask for "remote engineering jobs open to people in Europe, posted this week, paying $150k+" and get clean rows with the employer's apply link in a few seconds.
Remote job boards and LinkedIn are full of reposts, aggregators and "remote" jobs that turn out to be US-only or hybrid. Here every row is a direct employer posting, hybrid and on-site roles are removed, job aggregators are excluded, and the same role posted once per country is merged into one row with all its countries.
Price: from $1.00 per 1,000 remote jobs: $2.50 on Apify's free plan, $2.00 / $1.50 / $1.00 on the Starter / Scale / Business plans, platform usage included. You pay only for rows returned; the prefilled run (50 jobs, under 10 seconds) costs at most $0.13.
New (Oct 22, 2026), built from the most common requests on job-scraper Issues tabs:
- Only new jobs since last run: turn on Only new jobs since last run for a scheduled search and each run returns (and charges for) only the remote jobs an earlier run of the same search didn't return.
- Salary for many more jobs: when the ATS has no salary field, the pay range is read from the job description (US pay-transparency ranges), with
salary_source(atsordescription) and annualizedsalary_annual_min/salary_annual_max.
Also new (Oct 22, 2026, second batch), all optional and off by default:
- Visa sponsorship:
visa_sponsorship(yes,no, or empty when not stated) from the job description, and a Visa sponsorship filter. - Only jobs with salary now also counts pay ranges parsed from the job description.
matched_title_terms: which of your Job title terms each row matched.- Exclude staffing agencies, plus an
is_staffing_agencyfield. company_open_jobs: how many open jobs the company currently has in the index.
If this saved you time, a quick review on the Store helps a lot, and feature requests go in the Issues tab; we usually ship them within days.
Rows also include the full job description (description, plain text, up to 10,000 characters) from the company's ATS, at no extra cost. Turn Include description off if you only need the structured fields.
What you get (real rows from the prefilled run, Oct 21, 2026)
| Company | Title | Location text | Remote from | Function / level | Annual salary |
|---|---|---|---|---|---|
| Spellbook.com | Brand Design Lead | Remote - US/Canada | canada, us | design / lead | $110,000-$160,000 |
| Hopper | Finance & Strategy Manager | Canada - Remote | canada, us | finance / manager | $160,000-$200,000 |
| Aduro Advisors | Controller | Remote | us | finance / mid | $110,000-$160,000 |
| Blee | Senior Recruiter | United States | us | people_hr / senior | $140,000-$180,000 |
| Junipersquare | Senior Associate, Fund Administration | Americas (USA or Canada) | us, canada, latam | finance / senior |
Every row also has description, the full posting text. For example, PatientPoint's Director, Technical Program Management, Ad Tech (remote, US) starts: "Join PatientPoint to be part of a dynamic team creating change in and around the doctor’s office. As a leading digital health company, we innovate to…" (6,890 characters in total).
More sample rows and the JSON format below.
Freshness: measured side by side
We ran the same search, software engineer jobs in the US posted in the past week, through a popular LinkedIn jobs scraper and a popular Indeed jobs scraper on Apify Store (100 results each), then looked up every result on the employer's own career page in our index.
| Measured Oct 21, 2026 | Remote Jobs API (this Actor) | LinkedIn jobs scraper | Indeed jobs scraper |
|---|---|---|---|
| Where rows come from | Employer's own ATS board | LinkedIn listings | Indeed listings |
| Old jobs shown as "new" | 0: re-posted old jobs are excluded by default | 24 of the 52 results we could match (46%) had been open on the employer's board for 14+ days | 2 of 15 matched (13%) |
| Same company + title repeated | 0 (deduplicated) | 24 of 100 rows | 0 of 100 |
| Already closed on the employer's board | 0 (every row was live at the last hourly check) | 2 of 52 matched | 0 of 15 |
| Time from posting to row | median 1.1 h (Greenhouse, Ashby, Lever; 75% within 2 h) | depends on when you scrape | depends on when you scrape |
| Remote jobs open to the US, past 7 days | 5,300+ | 100 (requested) | 100 (requested) |
On remote jobs the gap is bigger: job boards also mix in hybrid roles and aggregator reposts, which this Actor removes.
Why people use it
- 🌍 Remote eligibility parsed for you:
remote_regionsandremote_countriesfrom location text like "Remote - US", "Remote, EMEA", "Remotely in Germany", "Anywhere", "LATAM". Filter with Remote from. - 🧹 Clean remote list: hybrid and on-site jobs dropped, aggregators (Jobgether and similar) excluded, multi-country duplicates merged. 70,000+ open remote jobs, about 7,000+ new per week.
- 🧭 Function and seniority: every job classified into 15 functions (Engineering, AI / ML, Data, Product, Design, Sales, Marketing, Customer success...) and 8 levels (Intern to Director/VP).
- 💰 Minimum salary in USD: hourly and monthly pay annualized, so "at least $120,000" works across postings.
- ⚡ Fast and fresh: windows of the last hour, 24 hours, 7 days, 30 days or all open remote jobs.
- 📝 Full job descriptions included (plain text).
- 💸 From $1.00 per 1,000 jobs ($2.50 on the free plan), pay only for rows returned.
Quick start
- Click Start. The prefilled input returns the 50 newest remote jobs open to people in the US, posted in the last 7 days (about $0.13).
- Pick your Remote from regions, add Job title contains or Job functions, and optionally a Minimum annual salary.
- Export to CSV, Excel, JSON or Google Sheets, or call it from the API, Make, Zapier, n8n or an AI agent.
Use cases and ready-to-paste inputs
1. Remote job boards and newsletters: a clean weekly feed
Fill your board with "Last 7 days", then schedule hourly with "Last hour" (or daily with "Last 24 hours") for new jobs only.
{"timeRange": "7d","eligibleFrom": ["europe"],"jobFunctions": ["engineering"],"limit": 100}
2. High-paying remote roles (US)
{"timeRange": "7d","eligibleFrom": ["us"],"jobFunctions": ["engineering", "data", "ai_ml"],"minSalaryUsd": 150000,"limit": 200}
3. Remote jobs open to Latin America
{"timeRange": "7d","eligibleFrom": ["latam"],"limit": 100}
Jobs open "anywhere" / worldwide always match. Turn off Include remote jobs with no region stated to get only jobs that explicitly name your region.
4. Canada only, explicitly
{"timeRange": "7d","eligibleFrom": ["canada"],"includeUnspecifiedRegion": false,"limit": 100}
5. Entry and mid-level remote customer support jobs
{"timeRange": "7d","titleSearch": ["customer support", "customer success"],"seniority": ["entry", "mid"],"eligibleFrom": ["us"],"limit": 100}
6. HR and labor-market analysts: the whole remote market
Set Posted in the last to "All open remote jobs" and Max jobs to 5,000 (split by function for more).
7. Recruiters and sales teams: remote-first companies hiring now
Recruiters get roles to fill (and candidates who want remote); sales teams get companies building distributed teams.
{"timeRange": "24h","eligibleFrom": ["us", "canada"],"jobFunctions": ["sales", "customer_success"],"limit": 200}
Sample output
Real rows from the default input (remote, open to the US, last 7 days), October 2026:
| Title | Company | Remote from | Function | Seniority | Salary (annual) |
|---|---|---|---|---|---|
| Software Engineer, Agent Optimization & Evaluation | us | engineering | mid | ||
| Strategic Account Executive, Northeast | GitLab | us | sales | mid | |
| Staff Data Analyst | Cribl | us | data | staff_principal | |
| Director, Strategic Growth | Savvy | us | marketing | executive | $350,000 |
| Machine Learning Engineer, Answers Relevance | us | ai_ml | mid | ||
| Senior Director, Client Operations | Engine | us | operations | executive |
One full row:
{"id": "a15f4a9cca9d08de","title": "Director, Strategic Growth","company": "Savvy","ats": "ashby","board": "savvy","job_function": "marketing","seniority": "executive","remote_regions": ["us"],"remote_countries": ["United States"],"location": "Remote - US","locations": ["Remote - US"],"workplace_type": "remote","employment_type": "FULL_TIME","department": "Growth","salary_min": 350000,"salary_max": 350000,"salary_currency": "USD","salary_period": "YEAR","salary_text": "$350K","salary_annual_min": 350000,"salary_annual_max": 350000,"posted_at": "2026-10-19T00:03:23Z","first_seen": "2026-10-19T00:29:16Z","description": "ABOUT SAVVY WEALTH: Wealth management is a $545 billion industry that still runs on manual work. 75% of advisors offer no digital communication beyond email, and most still build financial plans by hand in Excel. Savvy is reinventing what it looks like to … (full text, up to 10,000 characters)","job_url": "https://jobs.ashbyhq.com/savvy/d82be631-2069-498f-b7ca-b61ec58752dd","apply_url": "https://jobs.ashbyhq.com/savvy/d82be631-2069-498f-b7ca-b61ec58752dd/application"}
Example dataset (a full default run, free to download): CSV · JSON · Excel
Each run also writes a Run summary (RUN_SUMMARY): jobs matched and returned, duplicate listings merged and when the index was last refreshed.
How it compares
| Remote Jobs API (this Actor) | Remote job board scrapers | LinkedIn / Indeed scrapers | Job Postings API (our full index) | |
|---|---|---|---|---|
| Source | Employers' own ATS boards | One board's listings | Job board listings, reposts | Employers' own ATS boards |
| Coverage | 70,000+ remote jobs, 17,000+ companies | One board | Search results | All 1.17M jobs, remote and on-site |
| Where can I work from? | ✅ parsed regions + countries | sometimes | ❌ | ❌ (text match only) |
| Hybrid / aggregators removed | ✅ | varies | ❌ | ❌ |
| Function, seniority, annualized salary filter | ✅ | ❌ | partial | ❌ |
| Speed | Seconds | Minutes | Minutes, proxies | Seconds |
| Price | $1.00-$2.50 / 1,000 jobs (by Apify plan) | $1-$3 / 1,000 | varies | $2.50 / 1,000 jobs |
Pricing (pay per event)
| Event | Price |
|---|---|
| Job returned (row in the dataset), Apify Free plan | $0.0025 (= $2.50 per 1,000 jobs) |
| Job returned, Starter plan | $0.0020 (= $2.00 per 1,000) |
| Job returned, Scale plan | $0.0015 (= $1.50 per 1,000) |
| Job returned, Business plan and above | $0.0010 (= $1.00 per 1,000) |
| Actor start | $0.00005 (Apify's standard start event) |
Descriptions are included at no extra cost. Examples on the free plan: the default input (50 jobs) = $0.13. A daily feed of 200 new remote jobs = 6,000 jobs/month = $15/month ($6 on Business). Set Max jobs and the run stops exactly there.
Coverage and freshness
- Built on the same index as the Job Postings API: 1,177,389 open jobs from 20,281 verified boards on 9 ATS platforms, of which 70,000+ are remote after removing hybrid jobs, aggregators and duplicates.
- Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio and Rippling are refreshed every hour; Workday once a day. The
RUN_SUMMARYshows the exact last refresh. - 1h, 24h and 7d answer in seconds. 30 days and "all" scan the full index (1-2 minutes).
FAQ
How do you decide where a remote job is open to?
From the job's location text and country (for example "Remote - US", "Remote (Canada)", "EMEA", "Remotely in Germany", "Anywhere", US state names and codes, Canadian provinces). "Anywhere" / worldwide jobs match every region. Jobs that only say "Remote" have no region (remote_regions: []); keep or drop them with Include remote jobs with no region stated.
What counts as remote? Jobs the ATS marks as remote or whose location says remote. Jobs marked hybrid or on-site are excluded unless a location explicitly says remote.
Why are some jobs merged? Companies often post the same remote role once per country. We merge them into one row (same company and title) and list all regions, countries and locations.
Do you have job descriptions?
Yes. Each row has description: the full posting as plain text (up to 10,000 characters) from the company's ATS. Brand-new jobs usually get it within 1-2 hours (until then it is null); Workday descriptions are being filled in, newest first. Turn Include description off for smaller output.
How do I get only new remote jobs since my last run?
Turn on Only new jobs since last run and schedule the Actor. Each run skips the jobs an earlier run of the same search already returned, so you only get, and pay for, new ones. The memory is a key-value store named cleanrowdata-remote-jobs-api-seen in your own Apify account (job keys only, kept 90 days); give it a Saved-search name to keep it while you tweak filters.
Does the apply link go to the employer?
Yes. apply_url and job_url point to the company's own ATS page, never to a job board.
Is it legal? The index only contains job postings that companies publish through their ATS's public job-board endpoints, the same data their careers pages show to everyone. No personal data.
Limitations
- Region parsing is rule-based on what the company wrote; unusual phrasing may leave
remote_regionsempty. - Salary filters (Minimum annual salary, USD; Only jobs with salary) use salaries the ATS publishes as structured data. Rows without one still get a salary parsed from the description when it states a pay range (
salary_source=description), but the filters don't use it yet. - Up to 5,000 jobs per run.
- A job's
descriptioncan benullfor its first 1-2 hours; Recruitee, Personio and Rippling jobs don't have descriptions yet.
Related Actors (same hourly jobs index)
- Job Postings API: 1M+ Fresh Jobs: search all jobs (remote and on-site) by title, location and time window.
- Hiring Signals API: Companies Hiring Now: one row per hiring company, with new jobs by function and seniority. Sales and recruiting leads.
- Hiring Intent Contacts: Companies Hiring Now + Emails: companies from the same hiring index, enriched with public website emails (
contact@,sales@, …). Pay only when a company has ≥1 contact ($0.03). - Careers Page Jobs Scraper: live scrape of the companies you choose, for the companies you choose, with a new/closed jobs feed.
- Single-ATS versions of the same index: Workday Jobs Scraper (730K+ jobs) · Greenhouse Jobs Scraper · Lever Jobs Scraper · Ashby Jobs Scraper.
If this saved you time, a quick review on the Store helps a lot, and feature requests go in the Issues tab; we usually ship them within days.