Ad selection with GraphQL

    Suggestions will appear below the field as you type

    Ad selection with GraphQL

      Suggestions will appear below the field as you type

      Ad selection with GraphQL

      Ad selection with GraphQL

      This document explains how to build your own user interface to display and select ad products. Available ad products can be programmatically retrieved by your software when posting or updating a job ad.
      Building your own panel can be broken down into four tasks: gathering user input, querying ad products, rendering the panel, and handling user selections.

      Before you begin

      • Evaluate whether you can embed the SEEK-built Ad Selection Panel, which is a simpler alternative to creating your own implementation.
      • SEEK recommends using a browser token to query ad products directly from a hirer’s browser. For the browser token to work, you will need to include the query:ad-products scope in your request.
      • You can also query ad products from your backend using a partner token.

      Gathering user input


      For your convenience, the structure of the positionProfile  input subsets the input to the postPosition  and postPositionProfileForOpening  mutations.
      jobCategories, positionLocation, and positionOrganizations currently accept a single element. When creating a job ad, your software should always omit the optional profileId  field. When updating a job ad, your software should provide its profileId.
      We recommend rendering ad selection after you capture salary information in your posting workflow. This will enable your software to supply the optional offeredRemunerationPackage and seekAnzWorkTypeCode inputs to ad selection, which SEEK can use to better predict—and inform the user of—how each ad product is likely to perform.


      If a job ad has been saved as a draft in your software but has not been posted, the ad product selected by the user may become stale and its associated price may no longer be honoured. You should refresh product IDs that you have temporarily stored against job ad drafts. When loading a draft job ad into a user interface for submission, you should provide the saved product ID as selectedAdvertisementProductId.

      Querying ad products

      The advertisementProducts  query allows you to retrieve ad products when posting or updating a job ad.
      This query must be executed on page load and whenever the properties of the positionProfile input  change. For example, if the hirer selects a new location, you must re-render the panel to reflect updated products and pricing.
      query advertisementProducts(
        $positionProfile: AdvertisementProducts_PositionProfileInput!
        $selectedAdvertisementProductId: String
      ) {
          positionProfile: $positionProfile
          selectedAdvertisementProductId: $selectedAdvertisementProductId
        ) {
          products {
            id {
            sellingPoints {
            price {
            features {
              branding {
              searchBulletPoints {
            payment {

      Rendering the panel

      The result of the advertisementProducts  query should be presented to the user for selection. Your interface must be capable of displaying 1–3 ad products and we recommend accommodating 4 ad products. If there is a hard limit to the number of ad products that you can display, you must provide a limit  to the query so that SEEK can provide the most relevant set of products within your constraints. Do not manually truncate the returned list as that may exclude highly relevant products.
      We’ve included a recommended design for your ad selection interface below. You can hover over the field descriptions to see which part of the interface they correspond to.
      products[].label 3

      AUD 269.89

      products[].price.summary 4
      Find great candidates with our basic ad
      products[].description 5
      • 30 day listing on SEEK
      • Your job ad emailed to relevant candidates
      products[].sellingPoints 6
      products[].label 3

      AUD 364.59

      products[].price.summary 4
      Stand out with branding and key selling points
      products[].description 5
      • Logo and cover image to promote your brand
      products[].sellingPoints 6
      products[].label 3

      AUD 645.00

      products[].price.summary 4
      Attract more candidates on average with a featured listing
      products[].description 5
      • Priority listing in search
      products[].sellingPoints 6
      products 1
      Ad prices vary based on many factors including the supply of, and demand for, candidates for the advertised role. Prices shown represent today's prices only. If you schedule your job ad for a future date, you acknowledge and agree you'll be charged the price of that ad at the date it's published on SEEK's website.
      information 7
      products[].payment.summaryHtml 8
      products[].features 9
      1. Display products in the returned list order. We recommend a tile layout.
      2. Pre-select the product with a selected indicator set to true. If all indicators are false, then no ad product should be selected by default.
        This is typically returned when you provide positionProfile.profileId  to update a job ad or selectedAdvertisementProductId  to restore the previous selection of a job ad draft.
      3. Display the label as the headline of the product.
      4. Display the price summary after the label.
      5. Display the description after the price summary.
      6. Display the selling points alongside the product. We recommend an unordered list of the inner text s.
      7. Display informational text below the products. This field must be dynamically retrieved from the response as it may contain tailored legal disclaimers.
      8. Conditionally display the payment summary below the products. This field should only be displayed when a product is selected.
        If rendering HTML is impractical for your software, you may use the plain-text summary  instead.
      9. Conditionally display subsequent fields to select a brand or enter search bullet points on the job posting form. Each field should only be displayed when a product is selected and the corresponding feature is supported by the selected product.

      Handling user selections

      When a hirer selects an ad product, your software should conditionally display form inputs for the additional job ad features it enables. See features for ad products for a detailed walkthrough.
      The selected product id  should be persisted in memory. When the hirer is ready to create or update the job ad, provide the identifier in the posting instruction seekAdvertisementProductId field on the postPosition , postPositionProfileForOpening  or updatePostedPositionProfile  job posting mutations.