Store 04494 - Lynchburg, VA, münchen, US or Canada, 2 Locations. GET /api/locations/geocode resolves strings like these to canonical labels and coordinates. Search reads its location and locations filters with the same resolver, so a geocode call shows how a search will read a location.
Response
- Each lookup costs $0.001 whether or not it resolves. Only a
4xxor5xxis refunded. See Metered endpoints. - The same input normally resolves to the same result, so cache results on your side and look up each distinct string once.
- Lookups count toward the
Geocoderate-limit group. A sandbox key gets404withcode: "not_available_in_sandbox".
How resolution works
Each input runs through up to four steps. The endpoint never calls a language model and never writes to the cache.1
Clean and classify
Job-board decoration is stripped first: store-code prefixes (
Store 04494 - ), trailing work-model notes such as (On-site), and wrapping parentheses. So Store 04494 - Lynchburg, VA resolves to Lynchburg. The cleaned input is then classified:Remote sentinels:
Remote, Fully remote, Anywhere, Global, Worldwide, Work from home, WFH, Telecommute, Telework, Distributed, and forms such as Remote - EMEA, Remote / Travel, Hybrid/Remote or a trailing parenthetical.Placeholders:- Counts and quantifiers:
2 Locations,Multiple locations,Various cities,All offices - Single words:
HQ,Headquarters,Office,Flexible,Hybrid,Onsite,N/A,TBD,TBA,Unknown - Scope words:
Nationwide,Statewide,Corporate - Continents and sales regions:
EMEA,APAC,LATAM,DACH,BENELUX,Nordics,ANZ,MENA,North America,Europe
2
Resolve codes and region names
An input that names a region or country outright resolves to it directly, ahead of the cache:
- a bare US state code (
TX) or country code (FR) - a region code with its own country (
ON, Canada,TX, USA) - a US state, Canadian province or Australian state written in full (
Ontario,New South Wales)
CA skip this step. See Ambiguous codes.3
Cache lookup
The input is normalized into a cache key: abbreviations expanded, diacritics folded, case standardized. Inputs that differ only in case, accents or common abbreviations share an entry, so
münchen, MÜNCHEN and Munchen all resolve to Munich, Germany.- A hit returns
method: "cache". - A failure cached in the last 7 days returns
succeeded: falsewithmethod: "cache_negative". - A cached result that contradicts a country or state the input names is ignored.
4
Geocode each part
On a cache miss, the input is split into parts on
or, and, &, ;, | and /. Names that contain a conjunction, such as Trinidad and Tobago or Newfoundland and Labrador, stay whole. The first five parts are geocoded, each on its own; further parts are ignored.- Placeholder parts are skipped, and remote parts become
Remoteentries. - Each geocoder candidate is scored by token overlap with the part. It must also lie in any country or state the part names, so
Springfield, ILcan’t resolve to Springfield, Massachusetts. - The best candidate is kept when its score clears a minimum. The score (0.0–1.0) comes back as
fuzzy_confidence, and the labels are the geocoder’s canonical spelling.
no_match.The method field
method names the branch that produced the result. Treat it as diagnostic and branch on succeeded, because new values can appear.
fuzzy_confidence is null on cache hits and remote_keyword results.
Supported input formats
There is no fixed format grammar. These formats are common in job postings; the list is not exhaustive. An input the cache doesn’t hold resolves only if the geocoder can match it.
Continents and sales regions are placeholders, not places (step 1). On their own, or as every part of a compound, they return
succeeded: false.
Compound locations
Join locations withor, and, &, ;, | or /. Each part is geocoded on its own, and every resolved part comes back in one locations array. A comma isn’t a separator, so US, Canada may be read as one location.
Ambiguous codes
These two-letter codes are both a US state or Canadian province abbreviation and an ISO country code:
How codes usually resolve:
Unresolvable input
An unresolvable location is not an error. The endpoint returns200 with succeeded: false and still bills the lookup, so check succeeded, not the status code.
succeeded: false results, retry only timeout and unavailable, and each retry is billed again. Retrying the others right away returns the same result. A missing or whitespace-only location parameter returns a real 400; see Errors for the envelope.
Location filters on the feed
POST /api/jobs/feed
locations filter takes structured {country, region, city} entries:
countrytakes a country name or a case-insensitive code:USandUSAmatchUnited States;GB,GBRandUKmatchUnited Kingdom. Leading and trailing spaces are ignored.- A code here always means a country, so
CAis Canada andINis India. In free text, a bareCAis ambiguous. - With a
city, an entry filters by city and country; with only aregion, by region and country; with neither, by country. Use full city and region names. - Multiple entries are OR’d.
- An unknown country stays a literal filter. A misspelled country matches no jobs; it doesn’t lift the location restriction.
Geocode a location
Parameters, response schema and status codes for
GET /api/locations/geocode.Job locations
The location fields every job carries.

