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 range
      Enter a pay range to offer candidates (this will not show on your ad).
      to
      per
      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:
      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
      RemunerationPackageInput
      Copy
      {
        "basisCode": "Salaried",
        "ranges": [
          {
            "intervalCode": "Month"
          }
        ]
      }
      We recommend using the pay type labels documented above for consistency with SEEK.
      The SEEK API now supports dynamically querying valid pay type combinations with the 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 search
      GraphQLVariablesResult
      query ($schemeId: String!) {
        payTypes(schemeId: $schemeId) {
          basisCode
          intervalCode
          label
        }
      }
      SEEK may display the pay type alongside the salary description for clarity.

      Currency

      The SEEK API supports 16 currencies in total. To assist hirers in selecting the right currency for their job ad, we recommend:
      1. Displaying a shortlist of the 8 local currencies used across our Asia-Pacific markets in addition to the United States Dollar (USD)
      2. Pre-selecting the currency based on the currencies value returned for the hirer’s selected location

      1. Display a shortlist of currencies

      The shortlist of currencies can be dynamically queried with the currencies query . A query-based approach will allow your hirers to select new currencies if they are added in future.
      QueryVariablesResult
      query ($usageTypeCode: String!) {
        currencies(usageTypeCode: $usageTypeCode) {
          code
        }
      }
      Any supported currency can be used in any location. SEEK will take care of currency conversions when candidates refine their job searches by salary range. SEEK will not perform conversions on the free-text salary description; we recommend hirers to provide a description in the dominant currency of the position’s location with the currency clearly denoted.

      2. Pre-selecting currency based on location

      Our location implementation options provide the recommended 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:
        Suggestions will appear below the field as you type
        Location
        Copy
        {
          "contextualName": "Bukit Batok West Region SG",
          "currencies": [
            {
              "code": "SGD"
            }
          ],
          "id": {
            "value": "seekAnz:location:seek:2dE6LBwKu"
          }
        }
        Pay range
        Enter a pay range to offer candidates (this will not show on your ad).
        For currencies supported by the SEEK API, your software must supply the same currency that the hirer sees when they are filling out the pay details of their position. If your posting form includes currencies that are not supported by the SEEK API, you may programmatically convert the salary range to a supported currency.
        SEEK may display the currency alongside the salary description for clarity.

        Salary range

        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:
        1. Display the salary currency alongside the range.
          This dropdown should be implemented as documented in the section above.
        2. Mark the maximum amount as a mandatory input.
          We have observed that some hirers currently omit the maximum amount, which defaults it to the minimum and affects the performance of their job ads. The input field will be required in our schema in future.
        3. Display the pay type alongside the range.
          We have observed that some hirers currently enter hourly salary ranges against an annual pay type and vice versa, rendering their job ads undiscoverable in recommendations and search results.
        Pay type
        Pay range
        Enter a pay range to offer candidates (this will not show on your ad).
        Valid
        to
        Valid
        per month

        Salary description

        Salary ranges are used to refine candidate job searches but the monetary values aren’t directly visible to candidates. The hirer must provide a free text description if they want to communicate the position’s remuneration. SEEK may display the supplied 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:
        Senior Software Engineer
        Synthetic Testing
        Melbourne VIC
        Information & Communication Technology (Engineering - Software)
        Full time
        $100k–$120k + super + bonus
        Posted just now

        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 characters"
                }
              }
            }
          ],
          "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.