Code | Name |
|---|---|
AU | Australia |
HK | Hong Kong |
ID | Indonesia |
MY | Malaysia |
NZ | New Zealand |
PH | The Philippines |
SG | Singapore |
TH | Thailand |
seekWorkArrangementCodes to Remote.A location is still required for a remote position;
this can be set to the headquarters or local branch of the hirer’s organization.query:ontologies scope in your request.name and a contextualName.
When displaying a list of locations to a hirer, you should use the contextualName as it provides more precise information.
For example, when displaying the results of the locationSuggestions query to a user, some results may be ambiguous if only the name value is displayed.name | contextualName |
|---|---|
Richmond | Richmond NSW 2753 AU |
Richmond | Richmond VIC 3121 AU |
Richmond | Richmond Otago NZ |
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.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.If you don’t have the latitude and longitude associated with each location in your internal hierarchy,
you may use other structured information to infer a SEEK location without additional input from the hirer.inferLocation query.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 and improvements to our inference capability.The SEEK API provides four queries for looking up locations:locationSuggestions returns locations matching partial text input for an interactive autocomplete user experience.nearestLocations returns locations relevant to the provided geolocation, ordered by distance.inferLocation returns a location matching structured address details for programmatic mapping.location returns a location for a given SEEK location ID.locationSuggestions query returns an array of likely locations for partial text input.
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).
Street addresses are not supported, and postcodes are only supported in Australia at this time.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.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
}
contextualName
countryCode
# Enable your software to pre-select a salary currency
currencies {
code
}
}
}
}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:query ($first: Int!, $geoLocation: GeoLocationInput!, $schemeId: String!) {
nearestLocations(
first: $first
geoLocation: $geoLocation
schemeId: $schemeId
) {
id {
value
}
contextualName
countryCode
# Enable your software to pre-select a salary currency
currencies {
code
}
}
}inferLocation query returns a location matching structured address details for programmatic mapping.
This query will attempt to match the details to a location in our hierarchy on a best-effort basis.query ($address: SeekPositionAddressInput!, $schemeId: String!) {
inferLocation(address: $address, schemeId: $schemeId) {
id {
value
}
# Enable your software to pre-select a salary currency
currencies {
code
}
}
}postalCode data,
you can provide the address as a single formatted line along with a country code,
though this may produce less consistent results for some locations:query ($address: SeekPositionAddressInput!, $schemeId: String!) {
inferLocation(address: $address, schemeId: $schemeId) {
id {
value
}
# Enable your software to pre-select a salary currency
currencies {
code
}
}
}Country | Fields | Example formattedAddress | Example countryCode | Example postCode | Response contextualName |
|---|---|---|---|---|---|
Australia | suburb | Cremorne | AU | 3121 | Cremorne VIC 3121 AU |
Australia | suburb, state | Richmond, VIC | AU | 3121 | Richmond VIC 3121 AU |
New Zealand | suburb, region | Richmond, Tasman | NZ | Richmond, Tasman NZ | |
Philippines | city | Makati | PH | Makati City Metro Manila PH | |
Singapore | city | Tiong Bahru | SG | 150167 | Tiong Bahru Central Region SG |
Malaysia | city, province/state | George Town, Penang | MY | George Town Penang MY | |
Indonesia | city, province/state | Kembangan, Jakarta | ID | Kembangan Jakarta ID | |
Hong Kong | city, province/state | Tai Koo, Eastern District | HK | Tai Koo Eastern District HK |
inferLocation query will only return a single location suitable for posting a job ad,
similar to the PositionPosting usage type for locationSuggestions,
and will return null if a valid location cannot be inferred from the provided data.Issues typically occur when the location data supplied is too broad or ambiguous, such as the examples below:formattedAddress | countryCode | postCode | Response |
|---|---|---|---|
Malaysia | MY | nullLocation is too broad | |
New South Wales | AU | nullLocation is too broad | |
Richmond | AU | Richmond QLD 4822 AUPotential for mismatch, for example if user intended Richmond VIC. Including postcode will aid accuracy of results. |
Unable to retrieve location for SEEK. Update your location and ensure you are entering a granular city or suburb.location query returns the location for a given location ID.
This can be useful for debugging or exploratory testing:query ($id: String!) {
location(id: $id) {
name
contextualName
countryCode
# Enable your software to pre-select a salary currency
currencies {
code
}
}
}