The SEEK API authorizes operations based on a set of relationships between you and your SEEK hirers.
Each use case requires a corresponding relationship to allow you to act on behalf of the hirer:Hirer relationship queries are typically made from your backend with a partner token.While these queries work with a browser token that has a The When using a browser token, the Once you receive an event, you can use its
- An
ApplicationExportrelationship allows you to export the hirer’s candidate profiles & attachments. - An
ApplicationPrefillrelationship allows you to retrieve SEEK Profile information to pre-fill an external apply form. - A
JobPostingrelationship allows you to price, post & update job ads on behalf of the hirer. - A
ProactiveSourcingrelationship allows you to upload candidates & unposted positions belonging to the hirer. - A
CandidateProfilesrelationship allows you to display the Candidate Profile Panel, and check if a candidate has a verified identity and profile.
JobPosting or ProactiveSourcing relationship.You can view a list of your SEEK hirers and their relationships on the Developer Dashboard hirers page.SEEK must explicitly configure hirer relationships as part of onboarding a SEEK hirer to your software.
Direct hirers to the SEEK “Connect your system” page for the appropriate market:FORBIDDEN error if a required relationship hasn’t been configured.
You should contact the hirer in cases where this is unexpected.SEEK hirers in specific market segments commonly have multiple SEEK accounts aligned to divisions within their organizations.
It’s important that your platform supports hirers with multiple SEEK accounts per Section B, Clause 73b of the SEEK API Terms of Use .SEEK will provide the hirer with their hirer ID for configuration in your software.
At the same time, the SEEK API will emit a HirerRelationshipChanged event.
While you can source the hirer ID from this event,
SEEK requires that you manually triage each hirer setup to link the SEEK hirer with the relevant account in your software.If you capture the hirer ID in a self-service text field:- The field must accept the hirer ID in full.Per the earlier SEEK API conventions section, object identifiers must not be disassembled into their component parts.
- The value must be trimmed before it is passed to the SEEK API.The SEEK API will not recognise hirer IDs with leading or trailing whitespace.
- The value may be validated upfront through the SEEK API.You can make a
hiringOrganizationquery to provide faster feedback to hirers when they enter an invalid ID. - The association must be appropriately triaged and authorized by your team.A hirer must not be able to enter another hirer’s ID into your software and gain access to their data.
Hirer ID with hardcoded prefix (1)
seekAnzPublicTest:organization:seek:␣93WyyF1hHirer ID without trimming (2)
seekAnzPublicTest:organization:seek93WyyF1h␣Hirer ID with trimming
seekAnzPublicTest:organization:seek93WyyF1hquery:organizations scope,
they will only return the hirer that the browser token is scoped to.The hiringOrganization query will list your configured relationships with a SEEK hirer.
If no relationship has been configured the query will fail with a FORBIDDEN error.The Developer Dashboard hirers page wraps this query in a friendly user interface.QueryVariablesResult
CopyGraphQL Explorer
query ($id: String!) {
hiringOrganization(id: $id) {
name
seekApiCapabilities {
relationshipTypeCodes
}
}
}hiringOrganizations query will return a paginated list of all SEEK hirers you have a given relationship with.The Developer Dashboard hirers page wraps this query in a friendly user interface.QueryVariablesResult
CopyGraphQL Explorer
query ($schemeId: String!, $relationshipTypeCodes: [String!]!, $first: Int) {
hiringOrganizations(
schemeId: $schemeId
filter: { relationshipTypeCodes: $relationshipTypeCodes }
first: $first
) {
edges {
node {
id {
value
}
name
}
}
pageInfo {
hasNextPage
endCursor
}
}
}self query will return the hirer the browser token is scoped to.
This can be used to list a hirer’s relationships directly from your frontend without having to explicitly specify the hirer’s ID.QueryResult
CopyGraphQL Explorer
query {
self {
hirer {
id {
value
}
name
seekApiCapabilities {
relationshipTypeCodes
}
}
}
}HirerRelationshipChanged events are emitted whenever a relationship between you and a hirer is added or removed.
The hirer relationships in your software can be kept in sync with SEEK using these events.This is an example of a webhook body containing a HirerRelationshipChanged event:JSON
Copy
{"events": [
{
"id": "seekAnzPublicTest:event:events:RJrWs6Kw13TvACTTXG6qZg",
"type": "HirerRelationshipChanged",
"createDateTime": "2020-10-20T23:13:58.804Z",
"hirerId": "seekAnzPublicTest:organization:seek:93WyyF1h"
}
],
"subscriptionId": "seekAnzPublicTest:webhookSubscription:events:RNzsabxEX56cuRepCD9A8j",
"url": "https://example.com/webhook",
"expireDateTime": "2019-09-13T22:16:10.593Z"
}hirerId to query the current state of your relationship with that hirer from the hiringOrganization query.If all relationships have been removed with the hirer, a FORBIDDEN error will be returned.