Skip to main content
Kardow handles job locations in two layers:
  1. Freeform text on each job. When you create a job you pass location as plain text (for example "Paris, France", "Remote", or a full street address). That is what shows on the listing.
  2. Normalized locations. Geocoded entities (city, state, country, coordinates) that power location landing pages and filters. Each job is linked to one.
Resolve the place first with POST /locations, then pass the returned id as location_id when you create the job. That is the reliable path: you see exactly which place you are about to use, and the job is guaranteed to land on the right city page and filter.
Street addresses resolve to their city. A job is browsed by city, so the city is the entity. Keep the full street address in the job’s own location text: that is what candidates read, and its exact coordinates are stored on the job for map pins.

Resolve a place

string
required
Any place description: "Gatineau, QC", "33 Rue des Freres-Moncion, Gatineau", a postal code, or "Remote".
string
Two-letter country code to disambiguate, e.g. ca. Recommended whenever you know it: without it, "Victoria" could be Australia or British Columbia.
boolean
default:"false"
false previews matches without writing anything. true commits the best match and returns its id.
number
default:"5"
Maximum candidates to return, up to 10.
Preview first when the place could be ambiguous:
cURL
id is null when the place is not on your board yet. Re-send with "create": true to commit it:

Fields

string | null
The location entity id. null means this place is not on your board yet.
string
Where the match came from: existing (already on your board), cache, geocoded, or remote.
string
exact (already an entity, or a single unambiguous hit), high (clear top hit), or low (one of several plausible hits: confirm before using).
string | null
The street-level address that matched, when your query was an address. Useful as the job’s location text.
Resolution checks your board’s existing locations first, then a shared geocode cache, and only calls the geocoder as a last resort. Repeat queries and places you already cover cost nothing.

Filtering jobs by location

Use the locations query parameter on Get Jobs (comma-separated, matched against the job’s freeform location):
cURL

List your locations

Match against the location name, display name, or city.
string
Two-letter country code filter, e.g. US.
number
default:"1"
Page number.
number
default:"50"
Records per page, up to 100.
cURL