Optimised Apply

    Suggestions will appear below the field as you type

    Optimised Apply

      Suggestions will appear below the field as you type

      Optimised Apply

      Optimised Apply

      This use case provides technical implementation details for the SEEK Optimised Apply product. You can find more information and request an integration on its product page .
      Using SEEK’s Apply Form, candidates can apply for jobs without leaving our website or mobile app. This allows candidates to use documents and information already stored in their SEEK profiles. SEEK Optimised Apply enables industry-leading conversion rates of candidates through the application funnel.
      When a candidate applies for a job advertised by one of your hirers, the SEEK API makes their application available for export. You can export applications for job ads posted via your recruitment software, but also for those posted directly on SEEK.

      Retrieving candidate applications

      CandidateApplicationCreated events  are emitted when candidates submit applications. You will receive events for SEEK hirers you have an ApplicationExport relationship with at the time of application submission.
      You will need to request candidate application details from the GraphQL endpoint in response to these events. For more details, see:
      The available deliverables for an application will differ based on the job posting method, configuration of the job ad, and what the candidate provides. Ensure that you have accounted for all supported deliverables when you are validating your build.
      Job posting method
      Application ingestion method
      Deliverables
      Via your software
      Optimised Apply
      New
      Candidate data
      Attachments
      resume, cover letter, selection criteria
      ATS screening question submissions
      New
      Direct on SEEK
      Optimised Apply
      New
      Candidate data
      Attachments
      resume, cover letter, selection criteria
      SEEK screening question submissions
      The SEEK API may occasionally send duplicate events. This can occur incidentally, or when SEEK finds and fixes a data quality issue. While it is generally safe to ignore duplicate events within a short period of time, we recommend reprocessing them to ensure that your software always has the latest view of each application.
      A duplicate CandidateApplicationCreated event  does not indicate that a candidate modified their application. A candidate may submit multiple applications for a given job ad on the SEEK job board, but each application is modelled as its own object.
      A candidate application will remain for 180 days after the close date of its associated job ad. Your software must store any data that it needs to access after the 180 day period.

      Job ads posted outside of your software

      A significant number of SEEK hirers have workflows that require posting job ads directly on the SEEK employer website. On the SEEK employer website , there is a job reference field that hirers can provide during posting if they intend for the applications to arrive in their ATS.
      In order to support the workflows of these hirers, SEEK strongly recommends that you appropriately handle CandidateApplicationCreated events from job ads posted outside of your software. Otherwise, hirers will need to use the SEEK employer website to manage applications for these job ads.
      To associate an application from a job ad with the appropriate position in your software, use the PostedPositionProfile.seekHirerJobReference  field. Your software will not have a record of position identifiers for job ads posted outside the SEEK API, so associating applications based on known position identifiers will fail.
      If the design of your software prohibits it from handling job ads posted from another source, you can implement the following logic:
      1. Use a reference field to correlate the job ad with an existing position in your software.
      2. If correlation fails, check the PostedPositionProfile.seekCreatedBySelfIndicator  field for the job ad.
        true indicates that the job ad was posted by your software. You should triage this job ad as your software may have omitted a reference field.
        false indicates that the job ad was posted outside of your software. You may discard this job ad and its associated applications at the expense of workflow flexibility for your hirers. If you received the application via webhook, you should still respond with a 2xx status to allow the SEEK API to halt retries and mark the application as delivered.

      Implementation options

      Option 1: Webhook

      Receiving a candidate application via webhook with the SEEK API:
      This is an example of a webhook body containing two CandidateApplicationCreated events :
      JSON
      Copy
      {
        "events": [
          {
            "id": "seekAnzPublicTest:event:events:5cKZnRzXas97fyUAhpiAV1",
            "type": "CandidateApplicationCreated",
      
      
            "createDateTime": "2019-09-13T22:16:10.593Z",
      
      
            "candidateApplicationProfileId": "seekAnzPublicTest:candidateProfile:apply:7DtW6Q68gk2R4okNGhvg1Y",
            "candidateId": "seekAnzPublicTest:candidate:feed:5PGXAHysiXhtA9JUqhyM8hhzMuWMPA",
      
      
            // This is only available for signed webhook subscriptions
            "hirerId": "seekAnzPublicTest:organization:seek:93WyyF1h"
          },
          {
            "id": "seekAnzPublicTest:event:events:WBmJMt4uEbj72ZVMhGi2hS",
            "type": "CandidateApplicationCreated",
      
      
            "createDateTime": "2019-09-08T20:32:12.479Z",
      
      
            "candidateApplicationProfileId": "seekAnzPublicTest:candidateProfile:apply:4QM5fWQbdekL9gPtPZrzex",
            "candidateId": "seekAnzPublicTest:candidate:feed:5PGXAHysjZdkQYwZghfL4bRCqvZ7ZM",
      
      
            // This is only available for signed webhook subscriptions
            "hirerId": "seekAnzPublicTest:organization:seek:93WyyF1h"
          }
        ],
        "subscriptionId": "seekAnzPublicTest:webhookSubscription:events:BoJiJ9ZWFVgejLXLJxUnvL",
        "url": "https://example.com/webhook"
      }
      Events sent via the webhook method do not contain sensitive information.
      Once you receive an event you can use its candidateApplicationProfileId  to query the candidate’s application using the candidateProfile query.
      See the webhooks section for more information.

      Option 2: Polling

      Receiving candidate application events via polling with the SEEK API:
      This query example returns a page of CandidateApplicationCreated events since the previous cursor:
      QueryVariables
      query ($after: String!, $filter: EventsFilterInput!, $schemeId: String!) {
        events(after: $after, filter: $filter, schemeId: $schemeId) {
          edges {
            node {
              typeCode
              ... on CandidateApplicationCreatedEvent {
                candidate {
                  person {
                    name {
                      formattedName
                    }
                  }
                }
                candidateApplicationProfile {
                  associatedPositionProfile {
                    positionUri
                  }
                }
              }
            }
          }
          pageInfo {
            hasNextPage
            endCursor
          }
        }
      }
      You do not need to query for the candidate’s application separately as all information can be retrieved as part of the Event .
      See the polling section for more information.