Screening questions help recruiters quickly assess whether an applicant meets the minimum criteria for a position, and serve as a critical filter for low quality applications. By integrating screening questions into your application flow, you can:
Improve the quality of candidate submissions by ensuring only qualified applicants move forward.
Boost overall job board revenue by enhancing employer satisfaction and encouraging repeat postings.
Screening questions play a crucial role in the talent acquisition space in providing additional information to the recruiter about an applicant. They are utilized to increase quality of applications. Many jobs will require screening questions to filter applicants. To ensure that your application is received and reviewed, it may be necessary to implement screening questions.
{ "id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Which is your primary programming language?", "description": "Please enter the language you are most comfortable with.", "format": { "display_type": "SINGLE_LINE", "max_length": 100, "type": "TEXT" }, "index": 0, "required": true}
max_length: Maximum characters allowed (null for unlimited)
Copy
Ask AI
{ "id": "7bKxnPd4LCdq86GDp2JkR8js", "title": "How many years of experience do you have?", "description": "Please indicate your total years of relevant experience.", "format": { "display_type": "SLIDER", "min": 0, "max": 20, "type": "NUMBER" }, "index": 1, "required": true}
No additional attributes required for boolean questions. Represents a simple yes/no or true/false input.
Copy
Ask AI
{ "id": "5rRArTh8PGhu20KHs6NoV2nw", "title": "What is your expected start date?", "description": "When would you be available to start?", "format": { "type": "DATE" }, "index": 5, "required": true}
Before you can display any screening questions in your UI or submit answers, you will need to ensure that a job with screening questions has been created and published in your customer’s ATS.You can then start fetching this info by having the “screening questions” scope enabled in your scope config.
Scope config settings in Kombo dashboard
Screening questions are included as part of the job data, and can be fetched from the GET jobs endpoint.
{ "status": "success", "data": { "next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [ { "id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "name": "Backend Engineer", ... "screening_questions": [ { "id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Which is your primary programming language?", "description": "Please enter the language you are most comfortable with.", "format": { "display_type": "SINGLE_LINE", "max_length": null, "type": "TEXT" }, "index": 0, "required": true } ] } ] }}
Note: Each job’s screening_questions field can contain one or more questions. The order of these questions (defined by the index field) is recommended for display but not mandatory.
Render a Field per Question:Display a corresponding input element within your job application form for each screening question in the screening_questions array. Depending on your product’s goal, you might consider only displaying required screening questions to minimize the candidate’s input.
Match Field Type to Question Format:The type of input you display should correspond to the format.type and format.display_type provided. For example:
Type
Recommended Format
TEXT / SINGLE_LINE
Text input
TEXT / MULTI_LINE
Text area
NUMBER
Numeric input field or slider
SINGLE_SELECT / MULTI_SELECT
Radio buttons, dropdown menus, or checkboxes
BOOLEAN
Toggle, checkbox, yes/no dropdown, or radio buttons
DATE
Date picker or input field with format validation
FILE
File upload control
INFORMATION
Display a static text
UNKNOWN
Handle custom logic as needed
Indicate Required Fields:Clearly mark questions that are mandatory. For instance, add an asterisk “*” next to the question title when the required field is true.
Display the description:Show the description below the question when present.
It is often a short sentence but can be a long block.
It may include HTML for formatting and Kombo returns it unchanged, so render HTML appropriately in your UI.
Follow the Recommended Order:It’s recommended (though not required) to display the screening questions in the order they are provided in the API response to preserve any intentional flow.
Gather Answers:Ensure that each candidate’s response is collected in a way that corresponds to the question’s expected format. For example, if a question is a multi-select, capture the answer as an array of option IDs. If the question is a text input, capture the answer as a string.
Implement Data Validation:Validate user input on the client side:
Check that required fields are not left empty.
Ensure that input types match the expected format (e.g., numeric inputs for NUMBER questions).
Enforce constraints like max_length for text fields.
Once all candidate responses are captured and validated, include them in the payload when creating an application using Kombo’s create application endpoint.
{ ... "screening_question_answers": [ { // For a text question "question_id": "26vafvWSRmbhNcxJYqjCzuJg", "answer": "TypeScript and a little bit of SQL" }, { // For a single-select question "question_id" :"WA6SZ7R7YSo2C3WDLE5zmAJ", "answer": "3WA6SZ7R7YSo2C3WDLE5zmAJ", // ID of the answer-option }, { // For a multi-select question "question_id" :"WA6SZ7R7YSo2C3WDLE5zmAJ", "answer": [ "3WA6SZ7R7YSo2C3WDLE5zmAJ", // IDs of the answer-options "21KvMGS9Yhsbbsxfwqyb5dkF" ] } ]}
Please reach out to Kombo support if you would like to use this feature – and
it is not already enabled for you.
If, by design, your product does not support screening questions, we provide you with the option to automatically answer these questions. This is necessary as some tools will validate and reject applications that do not have answers to the required questions.When a candidate applies for a job, we will automatically answer any required screening questions that were not answered with default values. These default values are based on the question type and are as follows:
Type
Answer
TEXT
-
NUMBER
0 (unless min and/or max are described, in which case we take the minimum number in the range)
Some ATS will include a score or disqualification value to a question. If these values can be read via API, we will ensure that the submitted answer does not disqualify the created candidate. Kombo will never try to manipulate or maximize a score.
The display_type for screening questions contain information about the display and validation. For example a screening question of type TEXT can have an these display_type properties: SINGLE_LINE, MULTI_LINE, EMAIL and URL. EMAIL and URL have additional validation rules.
A conditional screening question is a question that should only appear based on the answer to another question. You will want to implement logic that only displays the conditional screening question to the applicant if this precondition is met. Answers to conditional screening questions may be required, although this requirement is only true if the precondition is met.An example of this could be:Question 1: Do you have a valid driver’s license?
Yes
No
Question 2: How many years of driving experience do you have?
Less than 1 year
1-2 years
For this example, you would only want to show the second question if the applicant answered Yes to the first question.
Use Kombo’s sandbox integration in your development environment to test
conditional screening questions and build your user interface.
Kombo would return these questions on the GET jobs endpoint as shown below. On the second question, the value of precondition_question_id is the id of the first question, and precondition_options includes the id of the Yes option of the first question.
Example Screening Questions With Preconditions
Copy
Ask AI
"screening_questions": [ { "id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Do you have a valid driver's license?", "description": "Please state if you have a valid driver's license.", "format": { "display_type": "DROPDOWN", "type": "SINGLE_SELECT", "options": [ { "id": "5KMj443ZBfzBkqFhDuvdoZJP", "remote_id": "59c5d36a-1d4b-4c50-ada7-9519078e65b4", "name": "Yes" }, { "id": "H5benHrFr66wh9wU3RQegRRN", "remote_id": "61d6d36a-1d4b-4c50-ada7-9519078e65b4", "name": "No" } ] }, "index": 0, "required": true, "precondition_question_id": null, "precondition_options": null }, { "id": "9SmkUABUZnQdoPGeK83CdGnH", "remote_id": "21b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "How many years of driving experience do you have?", "description": "Please state how many years of driving experience you have.", "format": { "display_type": "DROPDOWN", "type": "SINGLE_SELECT", "options": [ { "id": "AFN58qWqutLt4ZMZgykD483W", "remote_id": "11c5d36a-1d4b-4c50-ada7-9519078e65b4", "name": "Less than 1 year" }, { "id": "6MHzLUCEaNmccbf6bP18466J", "remote_id": "66d6d36a-1d4b-4c50-ada7-9519078e65b4", "name": "1-2 years" } ] }, "index": 1, "required": true, "precondition_question_id": "26vafvWSRmbhNcxJYqjCzuJg", "precondition_options": ["5KMj443ZBfzBkqFhDuvdoZJP"] }],