A The After an opening has been created you can use separate mutations to create nested The The The
PositionOpening
represents an open position at a hirer’s organization.
For example, a position opening might be created once a hirer approves a job requisition for a new role.A newly created PositionOpening
consists of an owner and a status code.
The details of the position itself (e.g. its title & location) are contained in PositionProfile
s created within the opening:- A
PostedPositionProfile
represents a job ad posted to the SEEK job board.Hirers might continue to post job ads within the same opening while the position remains unfilled. They could also use multiple job ads to cover different locations and job categories.Grouping multiple job ads within a single opening is provided for your convenience. There is no business impact from grouping (or not grouping) job ads together. - An
UnpostedPositionProfile
contains information about a position that hasn’t been posted to SEEK.Your software would share these with SEEK to support Talent Search Connect. Grouping unposted positions with their related job ads helps SEEK match potential candidates against the opening.
postPosition
mutation is provided to create a new position opening and post a job ad in a single operation.The SEEK employer website and retired Job Posting API do not have an analogous concept of an open position.
Job ads posted through those channels will have a synthetic PositionOpening
created for each of their PositionProfile
s.
Synthetic position openings cannot be paginated, updated or deleted.Before you start with position opening queries, you will need to request a partner token.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.The createPositionOpening
mutation creates an empty position opening.
The postingRequester
indicates the SEEK hirer and the contact details of the opening’s owner.mutation ($input: CreatePositionOpeningInput!) {
createPositionOpening(input: $input) {
positionOpening {
documentId {
value
}
}
}
}
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.mutation ($input: UpdatePositionOpeningStatusInput!) {
updatePositionOpeningStatus(input: $input) {
positionOpening {
statusCode
}
}
}
PositionProfile
s.
For example, the postPositionProfileForOpening
mutation will create a job ad within the opening.The updatePositionOpeningPersonContacts
mutation updates the postingRequester
contact details of the position opening.mutation ($input: UpdatePositionOpeningPersonContactsInput!) {
updatePositionOpeningPersonContacts(input: $input) {
positionOpening {
documentId {
value
}
}
}
}
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.query ($id: String!) {
positionOpening(id: $id) {
documentId {
value
}
statusCode
paginatedPositionProfiles {
edges {
node {
profileId {
value
}
positionTitle
}
}
pageInfo {
hasNextPage
endCursor
}
}
postingRequester {
id {
value
}
}
seekPartnerMetadata
}
}
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.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
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.
- Created through the
postPosition
mutation - Referenced in a
postPositionProfileForOpening
mutation
Closed
.
You can then filter on Active
position openings when using the positionOpenings
query.