Candidates & Configuration APIs - MULTI_SELECT Candidate Property Support [ALPHA]

Description

[ALPHA — Early Access] This feature is currently available to a limited set of customers as an early access alpha. It is under active development and may change or be removed without prior warning. Please don’t use this until the final release.

Extends Public API support for MULTI_SELECT candidate property type, covering both configuration management and candidate data read/write.

configuration-public-api

Added

  • MULTI_SELECT added to the CandidatePropertyType enum.
  • New error code CANDIDATE_PROPERTY_NOT_SELECTION_TYPE — indicates the candidate property is not a selection type. Replaces the legacy CANDIDATE_PROPERTY_NOT_SINGLE_SELECT code.

Changed

  • All /configuration/candidate-properties/{id}/values endpoints now support both SINGLE_SELECT and MULTI_SELECT property types (previously SINGLE_SELECT only).
  • Spec descriptions updated from "SINGLE_SELECT type" to "selection type" throughout.

Deprecation / backward compatibility

  • CANDIDATE_PROPERTY_NOT_SINGLE_SELECT is still returned alongside CANDIDATE_PROPERTY_NOT_SELECTION_TYPE in the errors array. The deprecated code appears first to preserve errors[0] / errors.getFirst() compatibility. Clients should migrate to CANDIDATE_PROPERTY_NOT_SELECTION_TYPE.

candidates-public-api

Added

  • MULTI_SELECT added to the CandidatePropertyType enum.
  • selectedValueLabels field on property responses — array of { id, label } objects representing selected options for selection-type fields.
  • MULTI_SELECT_NOT_SUPPORTED_ON_DEPRECATED_ENDPOINT error code (HTTP 400) returned when a MULTI_SELECT value is sent to the single-property deprecated endpoints; response directs clients to the batch endpoint.
  • includeMultiSelect query parameter on GET /candidates/{id}/jobs/{jobId}/properties:
    • true: MULTI_SELECT properties are included in the response
    • false (default): MULTI_SELECT properties are excluded for backward compatibility

Changed

  • PUT /candidates/{id}/jobs/{jobId}/properties — accepts an array of option UUIDs for MULTI_SELECT fields; duplicates are rejected; omitting value or sending [] clears the field.
  • GET /candidates search — propertyId / propertyValueId filters are compatible with MULTI_SELECT fields. Multiple propertyValueId values for the same propertyId are combined with OR; different propertyId filters are combined with AND.
  • GET /candidates/{id}/jobs/{jobId}/properties — returns selectedValueLabels array for selection-type fields. Requires includeMultiSelect=true to include MULTI_SELECT fields.

Deprecated

  • valueLabel — use selectedValueLabels[0].label for SINGLE_SELECT and iterate selectedValueLabels for MULTI_SELECT.

Unsupported endpoints:

MULTI_SELECT doesn't support following endpoints:

  • GET /candidates/{id}/properties — does not support MULTI_SELECT properties and will never return them; use GET /candidates/{id}/jobs/{jobId}/properties?includeMultiSelect=true instead.

  • Single-property endpoints were not extended with MULTI_SELECT and attempt to use will result in HTTP 400 and error code: MULTI_SELECT_NOT_SUPPORTED_ON_DEPRECATED_ENDPOINT:

    • PUT /candidates/{id}/properties/{propertyId}
    • PUT /candidates/{id}/jobs/{jobId}/properties/{propertyId}

References