Remote Job Feed with Geo-Eligibility
Pricing
$2.00 / 1,000 job in datasets
Remote Job Feed with Geo-Eligibility
Jobs from Greenhouse, Lever and Ashby boards with detected eligible countries, remote scope and contract type. Filter for jobs you can actually do from your country; pay only for matching jobs.
Pricing
$2.00 / 1,000 job in datasets
Rating
0.0
(0)
Developer
Marc G
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
Remote jobs you can actually do from your country.
This Actor collects job postings from public Greenhouse, Lever and Ashby job boards and works out, for every job, which countries you may work from. "Remote" on a job board often means "remote, but US only" or "remote within EMEA". This Actor turns that into structured data you can filter on.
- 🌍
eligibleCountries,remoteScope(worldwide / regional / country) andisWorldwideon every job - 🔎 Evidence for every decision: the exact location text or sentence it is based on
- 🎯 Filters: country, remote/hybrid/on-site, keywords, departments, posting date, employment and contract type
- 💸 You only pay for jobs that pass your filters. Jobs that are filtered out are free.
- 🧾 Built-in, verified list of 240+ companies with public boards, so you can start without collecting slugs
Who is this for?
- Job board operators who want a feed of remote jobs per country or region
- Recruiters and sourcers tracking hiring at specific companies
- Job seekers who are tired of clicking "Remote" jobs that turn out to be US-only
How to use it
- Add companies: board slugs (
gitlab), prefixed slugs (ashby:linear,lever:palantir,greenhouse:stripe) or board URLs (https://jobs.ashbyhq.com/linear). Or tick Add the built-in list of remote-friendly companies. - Choose the countries you want to work from, for example
Germany. - Optionally narrow down: workplace type, keywords, departments, "posted within the last N days".
- Run. Results appear in the dataset; a per-company report is saved as
RUN_REPORTin the key-value store.
Example input
{"companies": ["gitlab", "ashby:linear", "https://job-boards.greenhouse.io/grafanalabs"],"useStarterList": false,"countries": ["DE"],"workplaceTypes": ["remote"],"keywords": ["engineer", "developer"],"postedWithinDays": 30}
Example output (shortened)
{"id": "greenhouse:algolia:5854606004","companyName": "Algolia","title": "Commercial Account Executive, DACH","url": "https://job-boards.greenhouse.io/algolia/jobs/5854606004","locations": ["Remote - Germany"],"workplaceType": "remote","remoteScope": "single-country","remoteScopeLabel": "Germany only","isWorldwide": false,"eligibleCountries": ["DE"],"eligibleRegions": [],"eligibilityConfidence": "high","eligibilityEvidence": [{ "source": "location", "text": "Remote - Germany" }],"timezoneRequirement": null,"employmentType": "unknown","engagementType": "unknown","postedAt": "2026-04-07T15:53:42.000Z","matchedCountries": ["DE"],"descriptionText": "Algolia is ..."}
Output fields
| Field | Description |
|---|---|
id | Stable unique id: source:board:jobId |
source, companySlug, companyName, jobId | Where the job comes from (Lever and Ashby publish no company name: it comes from the built-in list, otherwise from the board slug, e.g. ava-labs becomes Ava Labs) |
title, url, applyUrl, department, team, locations | As published by the company |
workplaceType | remote, hybrid, onsite or unknown. A job counts as remote if it offers a remote option |
remoteScope | worldwide, regional, multi-country, single-country, not-remote or unknown |
remoteScopeLabel | Human-readable summary, e.g. Worldwide, EMEA, Germany only, Hybrid: United Kingdom |
isWorldwide | true if the job can be done from (almost) anywhere. eligibleCountries is then empty |
eligibleCountries | ISO 3166-1 alpha-2 codes of the countries you may work from, with regions expanded |
eligibleRegions | Regions named in the posting, e.g. EMEA, EU, LATAM |
excludedCountries | Countries the posting explicitly excludes |
eligibilityConfidence | high, medium, low, or null if the posting does not say (see below) |
eligibilityEvidence | The texts the decision is based on: location, structured (ATS field), title or description |
timezoneRequirement | Sentence stating a time-zone requirement, if any |
employmentType | full-time, part-time, internship, temporary or unknown |
engagementType | employee, contractor, employer-of-record or unknown |
postedAt, postedAtSource | Publish date (Greenhouse: first publish date; Lever: created; Ashby: published) |
salary | Structured salary range if the ATS publishes one (Lever, Ashby) |
matchedCountries | Which of your requested countries this job is open to |
descriptionText / descriptionHtml | Description as plain text and/or sanitised HTML |
For onsite and hybrid jobs, eligibleCountries are the countries of the offices: you need to live there.
How eligibility is detected
The Actor reads three sources, in order of reliability:
- The location field(s) of the posting, for example
Remote - USA,Home based - EMEA,Remote, Canada; Remote, United States,SF, NYC, Remote. It recognises all countries, common regions (EU, EEA, Europe, EMEA, DACH, Nordics, CEE, LATAM, North America, Americas, APAC, ...), US states, Canadian provinces and about 400 tech-hub cities, with handling for ambiguous names ("London, Ontario", "Atlanta, Georgia" vs. "Tbilisi, Georgia", "Berlin, DE" vs. Delaware). - Structured ATS fields, such as Ashby's address country, Lever's country or a Greenhouse "remote countries" custom field.
- Explicit sentences in the description, for example "This role is open to candidates based in the UK or Ireland" or "Candidates outside the US will not be considered".
- The job title, only for a bare
Remotelocation, and only if a segment names nothing but places:Salesforce Lead - USA,Engineer (United Kingdom). This givesmediumconfidence.
A job counts as remote only if the posting says so for this job. Company-wide statements such as "we are a distributed company" do not count, because they also appear on office jobs. Talent pools and general applications get low confidence, so they do not pass a default country filter.
Rules that keep results trustworthy:
- The description cannot widen a stated location. A job listed as
Remote - USAstays US-only even if the company's boilerplate says "we work from anywhere in the world". If the location is justRemote, an explicit sentence about this role ("You must be based in Germany", "You can work from anywhere in the world") fills it in withmediumconfidence. Sentences about the company ("our team works remotely from Brazil to Japan") are ignored. - "Anywhere in X" means X.
Remote - Anywhere in the USis US-only, not worldwide. - Inferences are marked, not hidden. If nothing states where the job may be done from,
eligibilityConfidenceisnull. Weaker inferences, such as a remote job whose only hint is the company's office list, getlow. Both are excluded from country-filtered results (and not charged) unless you lowerminConfidenceor enable Include jobs with unknown location rules. - Contradictions are flagged, not hidden: if the location says
Singaporebut the text says "This role is based in San Francisco", confidence islow.
Confidence levels
| Level | Meaning | Examples |
|---|---|---|
high | Stated explicitly | Remote - Germany, Remote - EU, Remote - Anywhere in the US, an explicit remote-country list, a location confirmed by a "must be located in France" sentence |
medium | Stated, but broad or from a single source | Broad regions such as EMEA, APAC or LATAM, a structured ATS country for a remote job, a remote option listed next to cities, a bare Remote plus one sentence in the description |
low | Inferred or contradictory | A remote job whose only hint is the company's office list, Global (US-based preferred), location and description naming different countries |
Broad regions are taken literally. EMEA covers Europe, the Middle East and Africa (116 countries), but many employers mean mainly the UK and EU. If you search from a country at the edge of such a region, check eligibleRegions and eligibilityEvidence, or set minConfidence to high to get only explicitly stated countries and precise regions (EU, EEA, DACH, Nordics, ...).
By default, country filters accept medium and better (minConfidence).
Regions and sanctions
Regions are business regions, not strict geography, and deliberately conservative: North America means US and Canada; Europe and EMEA do not include Russia or Belarus. Comprehensively embargoed countries (Cuba, Iran, North Korea, Syria) never match, not even for worldwide jobs.
Eligibility here means "you may be based there for this job". It does not cover visas or work permits.
Pricing
Pay per result: you pay only for jobs written to the dataset, which means only for jobs that pass all your filters. Fetching and filtering out non-matching jobs costs nothing. Use Maximum number of jobs or the run's spending limit to cap costs. The run stops cleanly when the limit is reached. If the platform restarts a run, jobs already stored are not stored or charged again.
Performance
All three sources are public JSON APIs, with no browser and no proxies. The built-in list of 240+ companies (about 20,000 jobs) took about 47 seconds with 4 GB of memory and about 3 minutes with 1 GB, because the platform assigns CPU in proportion to memory. A list of a few dozen companies is correspondingly faster.
Limitations
- Only public boards on Greenhouse, Lever and Ashby. Workday, SmartRecruiters, Personio and other ATS are not covered yet.
- Greenhouse publishes salary ranges only per job, so
salaryis empty for Greenhouse in this version. - Greenhouse has no standard field for the employment type. It is read from the title and from explicit sentences about the role, and about two thirds of Greenhouse jobs state nothing usable: their
employmentTypeandengagementTypeareunknown. Filtering on these two fields therefore drops those jobs. - Greenhouse boards hosted on the EU instance are not supported yet.
- Detection is rule-based. Job postings are written by humans, so use
eligibilityEvidenceto double-check edge cases. excludeKeywordschecks only the job title.keywords,departmentsandexcludeKeywordsmatch whole words:ITdoes not matchRecruiting, andengineerdoes not matchEngineering, so use department names as published.- States or cities a posting excludes (
Remote - US (excluding California), "we cannot hire in Alaska or Hawaii") are not modelled: the country stays eligible withmediumconfidence and the exclusion is listed ineligibilityEvidence.
Data and privacy
The Actor reads only public job postings published by companies for applicants. It does not log in, does not bypass any protection and does not collect personal data. Requests go only to the official public APIs (boards-api.greenhouse.io, api.lever.co, api.eu.lever.co, api.ashbyhq.com); company URLs you enter are never fetched directly. Job descriptions in descriptionHtml are sanitised (no scripts, styles, iframes, images, forms or event handlers; links are restricted to http/https/mailto), so they are safe to render on your site. All other fields (title, locations, descriptionText, ...) are plain text as published by the company and may contain characters such as <: escape them when you insert them into HTML.
FAQ
My company is not found. Check the slug in the board URL, e.g. jobs.ashbyhq.com/<slug> or job-boards.greenhouse.io/<slug>. Use a prefix (lever:<slug>) if a slug exists on several ATS. RUN_REPORT lists the status of every company.
Why is a job I expected missing? Most often the posting does not state where you may work from (eligibilityConfidence: null). Enable Include jobs with unknown location rules to see those too.
Can I get every job without filtering? Yes. Leave all filters empty and you get every job with its eligibility fields.