Salary

    Suggestions will appear below the field as you type

    Salary

      Suggestions will appear below the field as you type

      Salary

      Salary

      Hirers must specify a pay type, salary range and description of the remuneration package for their job ad. This can be automatically mapped from your software’s internal representation, or presented as SEEK-specific input:

      Pay details

      Pay type
      Pay range ($AUD)
      Enter a pay range to offer candidates (this will not show on your ad)
      E.g. $50,000 + annual bonus
      Remuneration packages are specified in the offeredRemunerationPackage field within all job posting mutations, and its schema is defined by the input type RemunerationPackageInput .

      Pay type

      A hirer must specify the pay type for the remuneration package. This is expressed using a combination of two fields:
      1. The basisCode defines how the remuneration for the position is calculated.
      2. The intervalCode defines the period of time the minimum & maximum amounts are calculated over.
      There are currently four valid pay types:
      basisCode
      intervalCode
      Description
      CommissionOnly
      Year
      Employment paid exclusively a results-based commission
      Salaried
      Year
      Employment paid on an annual basis
      SalariedPlusCommission
      Year
      Employment paid on an annual basis plus a results-based commission
      Hourly
      Hour
      Employment paid for the number of hours worked
      The CommissionOnly basis is being phased out; it does not need to be supported in new SEEK API integrations.
      The SEEK API does not support dynamically querying the valid pay type combinations. Instead, your software should hardcode the combinations that it supports. This is to ensure future pay types (e.g. monthly salary) aren’t accidentally enabled in your software without proper testing.

      Currency

      The currency for the salary range is specified in the currency field within the RemunerationRangeInput.minimumAmount and maximumAmount fields. It must be provided as a three-letter ISO 4217 currency code in uppercase, and the same currency must be used in the minimum and maximum.
      Currently, the position’s location determines the required currency:
      • NZD is required for positions located in New Zealand. These are locations that have a countryCode of NZ.
      • GBP is required for positions located in the UK & Ireland. These are locations that have a countryCode of GB or IE.
        Note that this requires positions in the Republic of Ireland to use salaries denominated in GBP, even though their local currency is EUR.
      • AUD is required for positions in all other locations, regardless of their local currency.
      While the currency can be derived from the location, it must be explicitly specified to ensure the appropriate currency was presented to the hirer in the job posting flow. An explicit currency will also allow the SEEK API to accept additional currencies in a backward compatible way.

      Salary range

      When posting a job ad, the hirer must specify a salary range with a minimum and optional 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 it’s not displayed on the job ad. Hirers can provide a salary description to communicate the remuneration package to the candidate.

      Salary description

      Salary ranges are used to refine candidate job searches but aren’t directly visible to candidates. The hirer must provide a free text description if they want to communicate the position’s remuneration.
      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 UTF-8 bytes 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:
      Salary on SEEK

      Validation

      There are two categories of salary validation rules:
      1. The basic rules documented on this page and the corresponding schema documentation. For example, the maximum amount must always be greater than or equal to the minimum amount.
        You should enforce these rules in your software’s frontend to give the hirer feedback before they continue with the job posting flow.
      2. Internal rules that the SEEK API only enforces when the hirer attempts to post the job ad.
        SEEK will revise its internal salary rules in the future. To support this, your software should display all validation error messages it receives from the SEEK API to the hirer.
      When a job ad’s salary fails validation the posting mutation will fail with a 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.

      Error example

      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:
      JSON
      Copy
      {
        "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 UTF-8 bytes"
              }
            }
          }
        ],
        "data": null
      }
      Note that the SEEK API was unable to generate a top-level message that summarised both validation errors. This demonstrates the importance of mapping the invalidFields messages to the relevant fields on your job posting form.