How to Find Truly Remote Jobs (Exclude US/Canada-only)
The remote filter only means a job is remote, not that it accepts applicants worldwide. Learn how to exclude geo-restricted postings like 'Remote - US' or 'US citizenship required' using a job-description pattern filter.
The remote filter tells you a job can be done remotely — it does not tell you the job is open to applicants anywhere. A large share of "remote" postings are geo-restricted to a single country: titles like "Remote - US", lines like "Applicants must be based in the United States", or hard requirements like "US citizenship required". From a worldwide perspective, those are not truly remote.
There is no structured field for "open to any country", because the eligibility almost always lives in the free text of the job description rather than in a tidy attribute. The fix is a text heuristic: keep the remote filter on, and exclude postings whose description matches the phrases that signal a US or Canada restriction. In the app this is the Job description → does not match filter (the API field job_description_pattern_not).
Step-by-step: exclude geo-restricted remote jobs
Open a new job search
Go to Job Search and start a fresh search.
Set the Remote filter
Add the Remote filter and turn it on. This keeps only postings that can be done remotely — the starting point we then narrow down.
Clear the Job country filter
By default your account scopes searches to your own country. To search remote jobs worldwide, open the Job country filter and clear it (or set it to the countries you actually care about). If you leave it on your home country, you'll only ever see jobs located there — defeating the purpose of finding worldwide-remote roles.
Add the Job description filter and switch it to "does not match"
Click Add Filter, search for Job description, and add it. Change its operator from matches to does not match, then paste the patterns below (one per line). Any posting whose description matches at least one pattern is excluded.
The pattern set
These are RE2 regular expressions, one per phrasing of a restriction. Each handles both the US and Canada in a single country group, so you only need five lines. Paste them into the Job description → does not match filter.
(?i)\b(?:must|need to|required to|should)\b[\w ]{0,22}\b(?:located|based|residing|reside|living|live)\b[\w ]{0,10}\b(?:(?-i:U\.?S\.?A?)|united states|canada)\b
(?i)\b(?:authoriz\w+|eligible|legally)\b[\w ]{0,18}\bwork\b[\w ]{0,8}\b(?:(?-i:U\.?S\.?A?)|united states|canada)\b
(?i)\b(?:(?-i:U\.?S\.?A?)\s?citizens?|canadian\s+(?:citizens?|residents?))
(?i)\b(?:(?-i:U\.?S\.?A?)|united states|canad(?:a|ian))[ -](?:only|based\s+(?:candidates?|applicants?|residents?|employees?)|residents?\s+only)\b
(?i)remote\s?[-–—(/|]{1,3}\s?(?:(?-i:U\.?S\.?A?)|canada)\bWhat each line targets:
- "must be located/based/residing in the US/Canada" — explicit location requirements.
- "authorized / eligible / legally able to work in the US/Canada" — work-authorization requirements.
- "US citizen", "Canadian citizens/residents" — citizenship/residency requirements.
- "US-only", "USA-based candidates", "US residents only", "Canada-only" — short restriction tags.
- "Remote - US", "Remote | Canada" — the geo suffix on a remote title (covers
-,–,—,(,/,|separators, andUS/USA).
The whole pattern is case-insensitive ((?i)) except the US abbreviation, which is wrapped in (?-i:U\.?S\.?A?) to force uppercase. This is deliberate: a case-insensitive us would also match the ordinary English word "us" (and even bare "u"), flooding the results with false positives. Scoping the flag back off means only US, USA, or U.S. match — while "United States" and "Canada" stay case-insensitive. RE2 (the engine TheirStack uses) supports these inline flag groups.
Ready-made search
This search applies the remote filter, limits to jobs posted in the last 30 days, and excludes all five patterns above:
Measured on production: remote + last 30 days returns ~874K jobs. The patterns above exclude ~36K explicitly US/Canada-restricted postings, leaving ~838K truly-remote candidates.
Also via API and webhooks
The same filter is available in the Jobs Search API as job_description_pattern_not — pass the five patterns as a JSON array of strings alongside "remote": true (note the doubled backslashes for JSON escaping):
{
"remote": true,
"posted_at_max_age_days": 30,
"job_description_pattern_not": [
"(?i)\\b(?:must|need to|required to|should)\\b[\\w ]{0,22}\\b(?:located|based|residing|reside|living|live)\\b[\\w ]{0,10}\\b(?:(?-i:U\\.?S\\.?A?)|united states|canada)\\b",
"(?i)\\b(?:authoriz\\w+|eligible|legally)\\b[\\w ]{0,18}\\bwork\\b[\\w ]{0,8}\\b(?:(?-i:U\\.?S\\.?A?)|united states|canada)\\b",
"(?i)\\b(?:(?-i:U\\.?S\\.?A?)\\s?citizens?|canadian\\s+(?:citizens?|residents?))",
"(?i)\\b(?:(?-i:U\\.?S\\.?A?)|united states|canad(?:a|ian))[ -](?:only|based\\s+(?:candidates?|applicants?|residents?|employees?)|residents?\\s+only)\\b",
"(?i)remote\\s?[-–—(/|]{1,3}\\s?(?:(?-i:U\\.?S\\.?A?)|canada)\\b"
]
}To get new truly-remote postings automatically as they're published, attach this filter to a saved search and push matches to your systems with a webhook.
Caveat: this is a text heuristic
This filter removes postings that explicitly state a US or Canada restriction. It cannot catch a job that is, in practice, US-only but simply omits the eligibility line — there's no restriction text to match. Treat the result as "remote jobs that don't advertise a US/Canada restriction", not a guarantee of worldwide eligibility.
It can also over-exclude in the rare inverse case: a posting that welcomes applicants, like "non-US citizens welcome" or "US citizenship is not required", still contains the substring "US citizen", so the citizenship line matches and the job is dropped. RE2 has no lookbehind, so there's no clean way to carve out the negated phrasing inside a single exclude pattern. In practice this is small — measured at ~128 postings in a 30-day window, about 1.5% of the ~8.6K the citizenship line removes (and ~0.4% of the full exclusion set) — so we accept it rather than complicate the patterns. If those jobs matter to you, drop the citizenship line from the filter.
The pattern set is also fully editable. If you keep seeing a phrasing that slips through (another country, a different wording, an industry-specific term), add your own pattern to the does not match filter — the same approach extends to any geo or eligibility restriction.
Further reading
Job Search
How to Search Job Postings Across 328,000+ Sources
Job Search
How is this guide?
Last updated on
How to Find Reposted Jobs
Learn how to find reposted job listings and use them as strong hiring signals for sales prospecting, recruiting, and competitive intelligence.
Identifying companies with problems your software solves
Learn how to use job postings to discover companies actively hiring for tasks your software automates. Find your ideal customers by analyzing [[total_jobs]] job descriptions for specific pain points and manual processes.
