Skip to main content

Overview

Unified keys let you pre-fill application form questions with candidate data you already store, so the candidate has less to fill in before submitting. While parsing job postings, Kombo classifies screening questions that match our catalog of common questions (e.g. a question labeled “Surname” is classified as LAST_NAME). In your front end, you can use these classifications to pre-populate data for the candidate.

Using unified keys

The unified_key question property

Each question block in the application form contains the nullable unified_key property.

Select options

For unified keys with catalog type ENUM (questions with question_type SINGLE_SELECT or MULTI_SELECT), each option carries a nullable unified_key as well. For example, GENDER has catalog type ENUM and supports the option keys MALE, FEMALE, NON_BINARY, and NOT_SPECIFIED.
When submitting, the answer for a select uses the option’s id property: a single ID for SINGLE_SELECT, or an array of IDs for MULTI_SELECT. The unified key is only used to find that option. Options without a counterpart in the catalog have a null unified key. The option keys of each ENUM key are listed in the catalog below.

Pre-filling questions in your UI

When you render the form, walk all questions, including those nested in sections, and fill any question whose unified_key matches data you already store. For a text question, write the value into the field. A question with unified_key FIRST_NAME gets the candidate’s first name. For a select, match the option the same way. If you know your user is FEMALE, you can search for a question with unified_key GENDER, and in that question search for an option with unified_key FEMALE. If found, pre-select that option. Otherwise, leave the question to the candidate. Submitting works the same with or without pre-filling: you submit each question_id with the candidate’s answer. Unified keys are never part of the submit payload (always use the question_id, not the unified_key). New keys may be added over time, so treat keys you don’t handle like null.

Rendering pre-filled data in your UI

Whether to show a pre-filled question to the candidate in your UI is up to you. We recommend pre-filling and hiding primitive questions such as FIRST_NAME and LAST_NAME, as they are not contentious. Consent questions like TERMS_AND_CONDITIONS and APPLICANT_POOL_CONSENT should stay visible: the candidate should be able to agree to those themselves.
Hiding a question in your UI does not remove the need to include its answer in the submission. A required question still needs an answer, so always submit the pre-filled value. Continue to respect conditional rendering: questions whose display_when condition is not met must not be answered.

Product implementation

When deciding which unified keys to support, consider what data you already store in your product and implement handling for the related unified keys. For example, if your product stores the candidate’s resume, first name, and last name, you’ll want to handle the following unified keys:
  • FIRST_NAME
  • LAST_NAME
  • FULL_NAME
  • RESUME

Complete list of unified keys

Fields related to where the candidate currently lives, including full addresses, individual address components, and residence type information
Fields containing basic personal details about the candidate, including names, gender, availability, and personal documents like resumes
Fields related to phone numbers and telephonic contact information, including phone types, country codes, national numbers, and extensions.Keyed fields expect different formats:
  • FULL_PHONE_NUMBER: E.164 format
  • PHONE_NATIONAL_NUMBER: national phone number format (e.g. 123 456 7890)