Locations

    Suggestions will appear below the field as you type

    Locations

      Suggestions will appear below the field as you type

      Locations

      Locations

      Locations specify the geographical location of a position. Precisely locating positions helps candidates search for the most relevant jobs. They are also used as an input into SEEK’s ad pricing.
      Locations are represented as a hierarchy from a larger parent location to smaller child locations. The hierarchy starts with four top-level areas: Australia, New Zealand, UK and Other. Depending on the location, the hierarchy becomes more specific until an individual suburb is identified.
      For example, this is a subset of the location hierarchy for Victoria, Australia:

      Forward compatibility

      The existing SEEK location hierarchy was primarily designed to locate positions within Australia & New Zealand. Its overseas locations don’t have sufficient granularity to support candidates searching for jobs in other markets. To reflect its limited applicability, the existing hierarchy has been assigned the seekAnz scheme.
      SEEK is designing a revised location hierarchy to better support overseas markets. The revised hierarchy will be assigned a distinct scheme once it’s ready to integrate with. This will allow your software to opt-in to the revised hierarchy by specifying its scheme ID.

      Before you begin

      • SEEK recommends using a browser token to query locations directly from a hirer’s browser. For the browser token to work, you will need to include the query:ontologies scope in your request.
      • You can also query locations from your backend using a partner token.

      Implementation options

      Locations can be implemented in one of two ways. These are listed in order of preference.

      Option 1: Build a SEEK-specific location input

      You can include a SEEK-specific auto-suggest field in your job posting flow. This affords the most control to your hirers, as they get to explicitly select the SEEK location for their job ad.
        Suggestions will appear below the field as you type
        Relevant SEEK locations can be retrieved from the locationSuggestions query as the hirer types. The hirer’s identifier should be supplied to the query to tailor suggestions to their SEEK-configured domicile.
        The Detect button is an optional feature that allows the hirer to use their current location. You can obtain a latitude and longitude from the geolocation API of their device or browser, then pass that into the nearestLocations query. The first returned result represents the closest SEEK location to the provided geolocation by distance.

        Option 2: Map from your internal location hierarchy

        If your software already captures the position location based on an internal hierarchy, you may wish to map this existing value to a SEEK location without additional input from the hirer. This requires you to have the latitude and longitude associated with each location in your internal hierarchy.
        In your job posting flow, prompt the user to select a location from your internal hierarchy as per usual. Your software should then retrieve the associated geolocation and pass it into the nearestLocations query as described in Option 1.
        We recommend running this query at time of job posting to ensure that you retrieve the latest SEEK location match. You may use this method to build a mapping from your internal locations to their corresponding SEEK location IDs upfront, but the mapping should be periodically refreshed to handle changes to the SEEK location hierarchy. See forward compatibility for more details.

        Operations

        The SEEK API provides three queries for looking up locations:
        1. locationSuggestions returns locations matching a provided text string.
        2. nearestLocations returns locations relevant to the provided geolocation, ordered by distance.
        3. location returns a location for a given SEEK location ID.

        locationSuggestions

        The locationSuggestions query returns an array of likely locations for a provided text string. You can limit the number of results using the first argument.
        This currently expects a substring of a location’s name (e.g. a suburb or city name). Postcodes and street addresses are not supported.
        You must use the PositionPosting usage type when the suggestions will be used for posting a job ad. This filters out locations that are too general to be associated with a job ad.
        QueryVariablesResult
        query (
          $first: Int!
          $hirerId: String!
          $schemeId: String!
          $text: String!
          $usageTypeCode: String!
        ) {
          locationSuggestions(
            first: $first
            hirerId: $hirerId
            schemeId: $schemeId
            text: $text
            usageTypeCode: $usageTypeCode
          ) {
            location {
              id {
                value
              }
              name
              contextualName
              countryCode
            }
          }
        }

        nearestLocations

        The nearestLocations query returns an array of locations closest to the specified latitude & longitude, ordered by distance. You can limit the number of results using the first argument.
        This can be used to:
        • Suggest the location nearest to an end user based on their geolocation from a native or web API.
        • Map from your own internal location hierarchy to a SEEK location.
        QueryVariablesResult
        query ($first: Int!, $geoLocation: GeoLocationInput!, $schemeId: String!) {
          nearestLocations(
            first: $first
            geoLocation: $geoLocation
            schemeId: $schemeId
          ) {
            id {
              value
            }
            name
            contextualName
            countryCode
          }
        }

        location

        The location query returns the location for a given location ID. This can be useful for debugging or exploratory testing:
        QueryVariablesResult
        query ($id: String!) {
          location(id: $id) {
            name
            contextualName
            countryCode
          }
        }