Reflecting job ads

Authentication & authorization

Follow our regular integration process to onboard and authenticate to the SEEK API. You will need to supply a partner token when sending requests to our GraphQL endpoint; see our Auth documentation for more details.SEEK will configure a JobPosting relationship with each of your hirers to authorize this scenario. You can view a list of your SEEK hirers and their relationships on the Developer Dashboard’s hirers page.

Job Posting process

1. Post job ad

Your hirers can post job ads directly on the SEEK employer website  if your software has not implemented the rest of the Job Posting use case. When a job ad has been successfully posted, it will be displayed on the SEEK candidate website, and we will queue up a webhook to be sent to your software.You can test subsequent steps of this process by posting job ads with your test hirer.

2. Send PositionProfilePosted event

Expose a public HTTPS endpoint in order to receive webhooks from the SEEK API.Then, configure a webhook subscription through the Developer Dashboard’s webhooks page. A signed, partner-scoped subscription is recommended in production for enhanced security and ease of maintenance.
Field
Value
PositionProfilePosted
seekAnz
SeekHmacSha512
Once the subscription is in place, we will POST to your HTTPS endpoint when a job ad is successfully posted to SEEK.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:24.611Z",
      // This can be passed to the `positionProfile` query
      "positionProfileId": "seekAnzPublicTest:positionProfile:jobAd:2782PZfXV",
      // This is only available for signed webhook subscriptions
      "hirerId": "seekAnzPublicTest:organization:seek:93WyyF1h"
    }
  ],
  "subscriptionId": "seekAnzPublicTest:webhookSubscription:events:Kyak8JfPKhHCAXM2s9b9wX",
  "url": "https://example.com/webhook"
}

3. Retrieve job ad

You can retrieve job ad details from the SEEK API by supplying the positionProfileId from the prior step to the positionProfile query; see querying a job ad for more details.Review the PostedPositionProfile object and use the job ads posted with your test hirer to decide which fields you wish to retrieve. This is an example query which additionally selects branding images associated with the job ad:
QueryVariablesResult
query ($id: String!) {
  positionProfile(id: $id) {
    postingInstructions {
      branding {
        images {
          typeCode
          url
        }
      }
    }
  }
}
Only include fields your software actually needs in the GraphQL query. This allows us to evolve our GraphQL schema without requiring adjustments to your software for field changes and deprecations that do not materially affect your end-user experience.

4. Add job ad to search index

The SEEK API does not offer programmatic job search capabilities. Your software will need to ingest job ads into a search index to serve your internal job portal.

Job closure process

Our job ad lifecycle specifies a maximum period of 30 days for a job ad. Once a job ad reaches its scheduled end date, SEEK will automatically close it and queue up a webhook to be sent to your software.
While you can retrieve the scheduled end date as part of the job ad, we recommend subscribing to the PositionProfileClosed event. You can configure a webhook subscription through the Developer Dashboard’s webhooks page. This will cover the scenario of a hirer or SEEK support member manually closing the job ad ahead of schedule.
An example of a webhook body containing a PositionProfileClosed event can be found in closing a job ad. Use this event to remove the job ad from the search index that serves your internal job portal.

Application process

SEEK’s Apply Form allows the application process to be hosted on SEEK.
  • The reflected listing on your internal job board should link back to the SEEK job details page where the candidate can apply for the job.You can retrieve this URL from the PostedPositionProfile.positionUri field.
  • If the candidate can view the full details of the job ad on your internal job board listing, you can skip SEEK’s job details page and link directly to SEEK’s Apply Form.You can retrieve this URL from the PostedPositionProfile.seekApplicationUri field.
QueryVariablesResult
query ($id: String!) {
  positionProfile(id: $id) {
    positionUri

    ... on PostedPositionProfile {
      seekApplicationUri {
        url
      }
    }
  }
}
Your hirers will be able to manage candidates for a job ad on the SEEK employer website . Implement the Optimised Apply use case if you need to ingest applications into your applicant tracking system.