Code | Name |
---|---|
AU | Australia |
HK | Hong Kong |
ID | Indonesia |
MY | Malaysia |
NZ | New Zealand |
PH | The Philippines |
SG | Singapore |
TH | Thailand |
work from home
or WFH
in their position title or advertisement details.
SEEK will recognise these keywords and surface the position as appropriate across our employment marketplace,
including under the “Work from home” search option.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 three 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 | null Location is too broad | |
New South Wales | AU | null Location 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: