← All product updates

August 8, 2025

New normalized 'locations' property in job results

New normalized 'locations' property in job results
Pablo Durán
Pablo Durán

Software Engineer at TheirStack

The Jobs Search endpoint now returns a locations property for each job. It's an array of Location objects with comprehensive geographic data based on the GeoNames database.

Each location object includes:

Core Location Information:

  • id – ID of the location in GeoNames.
  • name – The name of the location. If it's a city, it will be the city name; if it's a country, it will be the country name; if it's a region, it will be the region name, etc (e.g., "New York City", "Germany")
  • type – The type of location (e.g., "city", "country", "region")
  • feature_code – GeoNames feature code (e.g., "PPL" for populated place, "ADM1" for first-order administrative division, "PCLI" for country...). Check all the possible feature codes here.
  • feature_class – GeoNames feature class (e.g., "P" for cities or towns, "A" for countries, states, regions...). Each one of the possible feature classes is each one of the sections in here.

Geographic Coordinates:

  • latitude – Geographic latitude coordinate for precise mapping
  • longitude – Geographic longitude coordinate for precise mapping

Administrative Divisions:

  • admin1_name – First-level administrative division name (e.g., "California", "New York")
  • admin1_code – First-level administrative division code (e.g., "CA", "NY")
  • admin1_id – GeoNames ID for the first-level administrative division
  • admin2_name – Second-level administrative division name (e.g., county or district)
  • admin2_code – Second-level administrative division code
  • admin3_code – Third-level administrative division code
  • admin4_code – Fourth-level administrative division code

Country and Continent:

  • country_code – ISO 3166-1 alpha-2 country code (e.g., "US", "DE")
  • country_id – GeoNames ID for the country
  • continent – Continent code (e.g., "NA", "EU", "AS")

Here's an example location object:

[
    {
        "admin1_code": "NY",
        "admin1_id": "5128638",
        "admin1_name": "New York",
        "continent": "NA",
        "continent_id": "6255149",
        "country_code": "US",
        "country_id": "6252001",
        "feature_class": "P",
        "feature_code": "PPL",
        "id": "5128581",
        "latitude": 40.71427,
        "longitude": -74.00597,
        "name": "New York City"
    }
]

We've built a location parsing system that works like a universal translator for addresses. It doesn't just standardize formats—it also adds missing geographic coordinates and validates addresses to create a complete location profile for every job posting. This turns scattered location fragments into precise, searchable geographic data.

See our location normalization docs