offeredRemunerationPackage field within all job posting mutations, and its schema is defined by the input type RemunerationPackageInput.A hirer must specify the pay type for the remuneration package.
This is expressed using a combination of two fields:basisCode defines how the remuneration for the position is calculated.intervalCode defines the period of time the minimum & maximum amounts are calculated over.Label  | basisCode | intervalCode | Description  | 
|---|---|---|---|
Hourly rate  | Hourly | Hour | Employment paid for the number of hours worked  | 
Monthly salary  | Salaried | Month | Employment paid on a monthly basis  | 
Annual salary  | Salaried | Year | Employment paid on an annual basis  | 
Annual plus commission  | SalariedPlusCommission | Year | Employment paid on an annual basis plus a results-based commission  | 
{"basisCode": "Salaried",
"ranges": [
{
"intervalCode": "Month"
}
]
}payTypes query.
These may be presented to a hirer for selection in a job posting flow.This can help prevent entering a nonsensical pay type combination.
For example, a job ad with an hourly rate of $70,000 will render a hirer’s job ad undiscoverable in recommendations and searchquery ($schemeId: String!) {
payTypes(schemeId: $schemeId) {
basisCode
intervalCode
label
}
}currencies value returned for the hirer’s selected locationcurrencies query.
A query-based approach will allow your hirers to select new currencies if they are added in future.query ($usageTypeCode: String!) {
currencies(usageTypeCode: $usageTypeCode) {
code
}
}currencies for a given location.
The ISO 4217  currency codes are listed in order of preference.
In most cases there will be a single currency returned,
and we recommend pre-selecting the first option for an optimal hirer experience:{"contextualName": "Bukit Batok West Region SG",
"currencies": [
{
"code": "SGD"
}
],
"id": {
"value": "seekAnz:location:seek:2dE6LBwKu"
}
}USD.SEEK may display the currency alongside the salary description for clarity.When posting a job ad, the hirer must specify a salary range with a minimum and maximum amount.
The amount is a floating point value in the major currency unit (e.g. dollars), calculated over the provided interval.
You may specify a precision up to the minor unit of the currency.
For example, the AUD  currency accepts 12.34 to represent the natural number 1234 in cents.
On the other hand, it does not accept 12.345 as such a value attempts to subdivide the minor unit.The salary range is used to provide more relevant job search results to candidates,
but the monetary values in minimumAmount and maximumAmount are not visible in search results nor on the job ad.
Hirers can provide a salary description to communicate the remuneration package to the candidate.
SEEK may display the supplied currency and intervalCode alongside this description for clarity.Incorporate the following recommendations into your user experience to ensure that your hirers get optimal performance from their SEEK job ads:currency and intervalCode alongside this description for clarity.The RemunerationPackageInput.descriptions field displays a friendly remuneration package description to candidates.
Hirers can use this field to give a short summary of remuneration, including further benefits such as bonus options and superannuation.
Note that this field has a maximum length of 50 characters, which roughly corresponds to a single English sentence.For example, if a hirer set the salary description field to $100k–$120k + super + bonus it will appear on SEEK like so:BAD_USER_INPUT error.
The error will contain both a top-level summary message and per-field invalidFields messages.While the SEEK API will attempt to provide an actionable summary, this is not always possible when multiple fields have errors.
You’re encouraged to map the invalidFields messages back to the relevant fields in your job posting form.
Otherwise, the hirer might not have enough information to correct the invalid fields.When a hirer provides an overly-long description and a salary range where the minimum is greater than the maximum, the SEEK API will respond with a set of invalid fields like the following:{"errors": [
{
"message": "Invalid remuneration",
"extensions": {
"code": "BAD_USER_INPUT",
"invalidFields": {
"/input/positionProfile/offeredRemunerationPackage/ranges/0/maximumAmount/value": "Must be greater than or equal to the minimum value",
"/input/positionProfile/offeredRemunerationPackage/descriptions": "Cannot exceed 50 characters"
}
}
}
],
"data": null
}message that summarised both validation errors.
This demonstrates the importance of mapping the invalidFields messages to the relevant fields on your job posting form.