Step 3 - Retrieve SEEK Profile information

Use the GraphQL candidateProfile query  with the candidateId from the authorization flow.
QueryVariablesResult
query ($id: String!) {
  candidateProfile(id: $id) {
    profileId {
      value
    }
    createDateTime
    candidate {
      person {
        name {
          given
          family
        }
        communication {
          phone {
            formattedNumber
          }
          email {
            address
          }
        }
      }
    }
    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
    }
    attachments {
      descriptions
      seekRoleCode
      url
    }
  }
}
Your software must tweak the supplied query to only select fields that it can currently pre-fill in production. This simplifies your integration and reduces future maintenance overhead; see selecting fields for more information.
The candidateProfile query  can only be called with the candidateId once per authorization; subsequent calls will return a FORBIDDEN response. If the candidate subsequently navigates to a different apply form in your software, you software should start a new workflow and request a new Apply with SEEK button.