Exporting candidate profiles

The SEEK API lets you retrieve information about a candidate and their profile related to a particular application.
When a candidate applies for a job ad they consent to a snapshot of their SEEK profile being shared with the hirer. SEEK recommends that any retrieved candidate information only be available for viewing under the job ad that the application was related to. If you decide to persist a general candidate profile in your software, it must be scoped to the SEEK hirer that received the application.

Before you begin

Before you start working with candidate profiles, you will need to request a partner token.

Data structure

The CandidateProfile  object links to:
The candidate profile itself contains:
  • Structured details of the candidate’s employment history, education, and more.
    These fields are taken as a snapshot of the candidate’s SEEK profile when they apply through the SEEK website or app.
  • Links to attachments such as the candidate’s resume and cover letter.
  • The candidate’s responses to the job’s screening questions via a seekQuestionnaireSubmission field. This will only be present if a questionnaire was provided when posting the job ad.
For detailed information on all available fields, refer to the CandidateProfile schema definition . Only a name and email address are required to create a SEEK candidate account; all other fields in a candidate’s profile are optional.
SEEK may redact fields and omit PII  when a candidate or application is deleted. This includes attachments and questionnaire submissions.
The SEEK API does not translate user input and will serve SEEK profile information as supplied by the candidate. As a result, your software may need to handle multilingual candidate data.

Operations

Use the GraphQL candidateProfile query  to retrieve candidate profiles. You should combine this with the query you use to retrieve attachments and questionnaire submissions.

candidateProfile

QueryVariablesResult
query ($id: String!) {
  candidateProfile(id: $id) {
    profileId {
      value
    }
    createDateTime
    candidate {
      person {
        name {
          given
          family
        }
        communication {
          address {
            # Select other address fields as necessary
            formattedAddress
            countryCode
          }
          phone {
            formattedNumber
          }
          email {
            address
          }
        }
      }
    }
    associatedPositionProfile {
      seekHirerJobReference
      positionOrganizations {
        id {
          value
        }
        name
      }
      positionUri
    }
    employment {
      organization {
        name
      }
      positionHistories {
        start
        end
        title
      }
    }
    education {
      institution {
        name
      }
      educationDegrees {
        name
        degreeGrantedStatus
        date
      }
      descriptions
    }
    certifications {
      name
      issued
      effectiveTimePeriod {
        validTo
      }
      issuingAuthority {
        name
      }
      descriptions
    }
    qualifications {
      competencyName
    }
  }
}