This content is still in draft.
The details of a candidate can be uploaded to the SEEK API.
Uploaded candidates will be visible in SEEK Talent Search with deep links back into your software:
An uploaded
Candidate
object is structured as follows:An uploaded candidate has the following
CandidatePerson
fields:- Name
- Email addresses, with at least one required
- Optional phone numbers
- Optional home locations
Each uploaded candidate has a single
CandidateProfile
containing:- Create and update dates
- Profile actions that deep link into your software
- Preferred work locations
Each uploaded candidate is scoped to a specific
hiringOrganization
and partner.
A candidate uploaded via your software is only accessible to that hirer,
and is not accessible to other integration partners who may have a relationship with the hirer.The
uploadCandidate
mutation adds a new candidate and their profile.To avoid unintentional duplication of data, SEEK enforces uniqueness on an email address of the candidate.
Requests to share a candidate require a
seekPrimaryEmailAddress
field with a value that matches one of the given email address values in the person.communication
field.
A request to upload an existing candidate will receive an UploadCandidatePayload_Conflict
result.
The existing candidate will not be updated; you can select their details from the conflict result.Up to 20 interaction history items can be provided in the
seekProcessHistory
field during initial upload.
Individual items can be later created, modified and deleted using the relevant interaction history operations.Keep track of the IDs assigned to the candidate and their profile to perform subsequent update and delete operations.
MutationVariablesSuccess ResultConflict Result
Copy Playground
mutation($input: UploadCandidateInput!) {
uploadCandidate(input: $input) {
... on UploadCandidatePayload_Success {
candidate {
documentId {
value
}
profiles {
profileId {
value
}
}
}
}
... on UploadCandidatePayload_Conflict {
conflictingCandidate {
documentId {
value
}
profiles {
profileId {
value
}
}
}
}
}
}
The following mutations update an uploaded candidate and their profile:
- The
updateUploadedCandidatePerson
mutation replaces personal details.A request to update the candidate’s email with an existingseekPrimaryEmailAddress
will receive aUpdateUploadedCandidatePersonPayload_Conflict
. The existing candidate will not be updated; you can select the conflicting candidate details from the conflict result. - The
updateUploadedCandidateProfileActions
mutation replaces profile actions. - The
updateUploadedCandidateProfileDates
mutation replaces profile create and update dates. - The
updateUploadedCandidateProfilePositionPreferences
mutation replaces profile position preferences.
These mutations can be batched together in a single request for sync-like behaviour:
MutationVariablesSuccess ResultConflict Result
Copy Playground
mutation updateUploadedCandidate(
$documentId: String!
$person: CandidatePersonInput!
$seekPrimaryEmailAddress: String!
$profileId: String!
$seekActions: [CandidateProcessActionInput!]!
$createDateTime: DateTime!
$updateDateTime: DateTime!
$positionPreferences: [PositionPreferenceInput!]!
) {
updateUploadedCandidatePerson(
input: {
candidate: {
documentId: $documentId
person: $person
seekPrimaryEmailAddress: $seekPrimaryEmailAddress
}
}
) {
... on UpdateUploadedCandidatePersonPayload_Success {
candidate {
documentId {
value
}
}
}
... on UpdateUploadedCandidatePersonPayload_Conflict {
conflictingCandidate {
documentId {
value
}
}
}
}
updateUploadedCandidateProfileActions(
input: {
candidateProfile: { profileId: $profileId, seekActions: $seekActions }
}
) {
candidateProfile {
candidate {
documentId {
value
}
}
}
}
updateUploadedCandidateProfileDates(
input: {
candidateProfile: {
profileId: $profileId
createDateTime: $createDateTime
updateDateTime: $updateDateTime
}
}
) {
candidateProfile {
candidate {
documentId {
value
}
}
}
}
updateUploadedCandidateProfilePositionPreferences(
input: {
candidateProfile: {
profileId: $profileId
positionPreferences: $positionPreferences
}
}
) {
candidateProfile {
candidate {
documentId {
value
}
}
}
}
}
The
deleteUploadedCandidate
mutation deletes an uploaded candidate and their profile.This will erase all uploaded details of the candidate from SEEK’s systems.
MutationVariablesResult
Copy Playground
mutation($input: DeleteUploadedCandidateInput!) {
deleteUploadedCandidate(input: $input) {
candidate {
documentId {
value
}
profiles {
profileId {
value
}
}
}
}
}
Proactive Sourcing
Proactive Sourcing
Proactive Sourcing