Position openings

Before you begin

Before you start with position opening queries, you will need to request a partner token.Our data model provides further context on position openings and their relation to position profiles.

Operations

The following sample mutations are provided for demonstration purposes only; they are not executable in the Playground environment. You should use your live partner credentials to post a job ad under your unsearchable SEEK test hirer for end-to-end testing.

createPositionOpening

The createPositionOpening mutation creates an empty position opening. The postingRequester indicates the SEEK hirer and the contact details of the opening’s owner.
MutationVariablesResult
mutation ($input: CreatePositionOpeningInput!) {
  createPositionOpening(input: $input) {
    positionOpening {
      documentId {
        value
      }
    }
  }
}

updatePositionOpeningStatus

The updatePositionOpeningStatus mutation updates the status of the position opening.A position opening’s status is intended to help hirers manage their position openings; it isn’t used directly by the SEEK API. For example, you can filter on a particular status when paginating position openings.
MutationVariablesResult
mutation ($input: UpdatePositionOpeningStatusInput!) {
  updatePositionOpeningStatus(input: $input) {
    positionOpening {
      statusCode
    }
  }
}
After an opening has been created you can use separate mutations to create nested PositionProfiles. For example, the postPositionProfileForOpening mutation will create a job ad within the opening.

updatePositionOpeningPersonContacts

The updatePositionOpeningPersonContacts mutation updates the postingRequester contact details of the position opening.
MutationVariablesResult
mutation ($input: UpdatePositionOpeningPersonContactsInput!) {
  updatePositionOpeningPersonContacts(input: $input) {
    positionOpening {
      documentId {
        value
      }
    }
  }
}

positionOpening

The positionOpening query returns information about an existing position opening. You can select fields from its nested PositionOpening.paginatedPositionProfiles to retrieve information about a subset of its job ads.
QueryVariablesResult
query ($id: String!) {
  positionOpening(id: $id) {
    documentId {
      value
    }
    statusCode
    paginatedPositionProfiles {
      edges {
        node {
          profileId {
            value
          }
          positionTitle
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
    postingRequester {
      id {
        value
      }
    }
    seekPartnerMetadata
  }
}

positionOpenings

The positionOpenings query returns a paginated list of position openings for a given hirer. Only position openings created by the SEEK API will appear in the paginated list.You can optionally use a statusCode filter to only return position openings with the desired status.
QueryVariables
query ($hirerId: String!, $statusCode: String) {
  positionOpenings(hirerId: $hirerId, filter: { statusCode: $statusCode }) {
    edges {
      node {
        paginatedPositionProfiles {
          edges {
            node {
              profileId {
                value
              }
            }
          }
          pageInfo {
            hasNextPage
            endCursor
          }
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

deletePositionOpening

The deletePositionOpening mutation deletes an empty position opening.Because every position profile must be nested inside an opening, you must delete all nested position profiles first:
  • Unposted position profiles can be deleted using the deleteUnpostedPositionProfile mutation.
  • The position profiles of job ads cannot be explicitly deleted; they will be automatically deleted 180 days after the job ad closes.
To ensure data consistency, deletion of a position opening is prevented for 48 hours after it has been:To soft delete a position opening you can instead update its status to Closed. You can then filter on Active position openings when using the positionOpenings query.
MutationVariablesResult
mutation ($input: DeletePositionOpeningInput!) {
  deletePositionOpening(input: $input) {
    positionOpening {
      documentId {
        value
      }
    }
  }
}