Posting a job ad

Posting a job ad

The SEEK API surfaces two mutations to post job ads, postPosition and postPositionProfileForOpening .
Each mutation returns a success or conflict payload depending on the inputs provided.
To ensure that a position opening and position profile are created successfully, a unique idempotencyId needs to be provided as part of the instructions to post a job ad.
Refer to the Mutation conflicts section for details on the differences between success and conflict payloads, and how they can be handled.

Operations

postPosition

The postPosition mutation creates a new position opening and posts a PositionProfile in a single operation.
MutationVariablesSuccess ResultConflict Result
mutation($input: PostPositionInput!) {
  postPosition(input: $input) {
    ... on PostPositionPayload_Success {
      positionOpening {
        documentId {
          value
        }
      }
      positionProfile {
        profileId {
          value
        }
      }
    }
    ... on PostPositionPayload_Conflict {
      conflictingPositionOpening {
        documentId {
          value
        }
      }
      conflictingPositionProfile {
        profileId {
          value
        }
      }
    }
  }
}

postPositionProfileForOpening

The postPositionProfileForOpening mutation posts a new PositionProfile within an existing position opening.
MutationVariablesSuccess ResultConflict Result
mutation($input: PostPositionProfileForOpeningInput!) {
  postPositionProfileForOpening(input: $input) {
    ... on PostPositionProfileForOpeningPayload_Success {
      positionProfile {
        profileId {
          value
        }
      }
    }
    ... on PostPositionProfileForOpeningPayload_Conflict {
      conflictingPositionProfile {
        profileId {
          value
        }
      }
    }
  }
}

Events

PositionProfilePosted

PositionProfilePosted events are emitted when job ads have been posted on the SEEK job board. In response to these events you can request fields from the position profile such as the URL of the job ad.
This is an example of a webhook body containing a PositionProfilePosted event:
JSON
Copy
{
  "events": [
    {
      "id": "seekAnzPublicTest:event:events:KNYEK91zoe8JoZU9iv6853",
      "type": "PositionProfilePosted",
      "createDateTime": "2019-08-20T21:02:27.101Z",
      // This can be passed to the `positionProfile` query
      "positionProfileId": "seekAnzPublicTest:positionProfile:jobAd:2782PZfXV"
    }
  ],
  "subscriptionId": "seekAnzPublicTest:webhookSubscription:events:GykAb69qu1CwbaRLsuAsVf"
}
Job Posting
Managing job ads
Managing job ads