query:ad-products
scope in your request.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 must omit the optional profileId
field.
When updating a job ad, your software must 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
.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
) {
advertisementProducts(
positionProfile: $positionProfile
selectedAdvertisementProductId: $selectedAdvertisementProductId
) {
products {
id {
value
}
label
description
sellingPoints {
text
}
price {
summary
}
selected
features {
branding {
coverImageIndicator
logoIndicator
}
searchBulletPoints {
limit
}
}
payment {
summaryHtml
}
}
information
}
}
advertisementProducts
query should be presented to the user for selection.
Now, your interface must be capable of displaying a variable number of ad products, typically between 1 and 4.
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
products[].price.summary 4
products[].description 5
products[].sellingPoints 6
products[].label 3
products[].price.summary 4
products[].description 5
products[].sellingPoints 6
products[].label 3
products[].price.summary 4
products[].description 5
products[].sellingPoints 6
products 1
information 7
products[].payment.summaryHtml 8
products[].features 9
products
Display products in the returned list order. We recommend a tile layout.products[].selected
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.products[].label
Display the label as the headline of the product.products[].price.summary
Display the price summary after the label. If the price is null, do not display a price.products[].description
Display the description after the price summary.products[].sellingPoints
Display the selling points alongside the product. We recommend an unordered list of the inner text
s.information
Display informational text below the products. This field must be dynamically retrieved from the response as it may contain tailored legal disclaimers.products[].payment.summaryHtml
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.products[].features
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.advertisementProducts
query as the selectedAdvertisementProductId
.
The query will then pre-select an equivalent ad product and return new product IDs that can be used to post the job ad.When a hirer edits an existing job ad, the profileId
of the job being updated must be included as part of the positionProfile
in your call to the advertisementProducts
query.
This ensures the correct ad products and pricing are returned.The returned AdvertisementProducts
may include a product marked as selected
.
This product should be shown as selected in your interface, and the product ID persisted in memory as the currently selected ad product.The returned AdvertisementProducts
may also include products with a null price
.
Any products with a null price must be displayed in your interface without any price information.
These could represent products where there is no charge applicable, or products where the SEEK hirer account has been configured to hide price information.Additionally, the product ID used to initially post the job ad must not be used again when calling updatePostedPositionProfile
.
Instead, only use a product ID returned from the most recent advertisementProducts
query.Ensure that your software follows our guidance on rendering the panel and dynamically displays the information
field.
When a job ad is expired, this will display a note that further edits are no longer possible.When executing mutations such as updatePostedPositionProfile
, you might encounter errors similar to:{
"errors": [
{
"message": "Invalid posting instructions",
"extensions": {
"code": "BAD_USER_INPUT",
"invalidFields": {
"/input/positionProfile/postingInstructions/0/seekAdvertisementProductId": "No longer valid; refresh the available ad products for this job ad"
}
}
}
]
}
profileId
when editing an existing job ad, resulting in the selected product ID being invalid for an update.advertisementProducts
during an edit or draft refresh (including the profileId
for existing ads).
Ensure to use only a product ID returned from that call in the mutation to post or update the job ad.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.