Documentation menu

Creating and editing questions

Last updated on Disponible en Français

To add a new question to Interview’s Question Bank, start on the Question Bank page and click the Create Question button at the top right of the screen.

The question bank screen with the "create question" button at the top right of the screen.

Alternatively, you can create a question from an existing tab by clicking on the vertical ellipses (three dots) next to the language and then clicking on Save code as draft question.

A tab menu item is open with the "create question from tab" item highlighted.
Save as draft pop up. it reads: "a snapshot of the code in this pad will be saved as a draft question. the draft editor will open in a new window. you can finish editing, add instructions and more, and finalize your question from the drafts tab.

Once you click Save, you’ll be taken to the Drafts tab in the question bank. Here you can customize the question — including changing the name of the question — by clicking on the Edit Draft button at the bottom of the screen.

The question bank is shown with the question draft that was created from the pad tab open.

You’ll then be guided step-by-step through your question creation process.

Setup Interview Context

Here you will select which types of interviews your question will be used in: “Live Question”, “Take-Home”, or both.

The set up interview context screen. Here you enter the title, add a starter drawing, language environment, difficulty, internal description, and if you want to allow others to edit the question.

If you’ve only selected “Take-Home”, you can opt to add test cases. Test cases will allow you to test a candidate’s Take-Home code against certain requirements.

✅More information on test cases can be found in the Test Cases feature guide here.

Regardless of interview type, you’ll then be asked to add the following information for the question:

  • Include starter drawing – Turning on this toggle allows you to add a drawing or diagram to your question, which you’ll edit in the third stage.
  • Title – What you’ll see in the Question Bank to identify this question. To keep your questions well organized, we recommend coming up with a standard schema for the title of your questions. An example: [Senior Engineer] - Turn this CSV into an Array of Objects.
  • Environment – The programming language or framework the question is expecting a solution in.

✅ You can select Markdown or Plain Text to create a language-agnostic question.

  • Difficulty level – Used by interviewers to note the question difficulty level.
  • Internal description – Notes on the question for internal reference in the Question Bank – include more info about this question for your colleagues.

You can also choose to share the draft with your colleagues and allow them to edit the question by clicking on the checkbox at the bottom of the page. You can collaborate with your teammates on the question by sharing the link to the draft.

Add Take-Home Test Cases (optional)

✅If you selected your question to only be used in live interviews, this step will not be present. Skip to adding code elements to your question if this is the case

Test cases are a way to verify a candidate’s solution against a set of return values given a set of inputs.

The "add take-home test cases" page with the solution function signature and test cases displayed.

To learn more about test cases, what a function signature is, and how to add and remove test cases, please see our docs on test cases.

Add Code Elements

Next, you’ll add supporting documentation, files, and databases.

The "add code elements" page where you enter candidate instructions & follow-on instructions, interview guide/solution for coworkers, custom databases, and custom files.

Candidate instructions – The instructions that will be shown to the candidate. This field is markdown enabled. Filling out the Candidate Instructions will ensure that the candidate will be able to view the test instructions no matter what language they select.

🖼️To add an image to the Candidate Instructions, you simply have to enter the image Markdown into the Candidate Instructions text box. Use the following markdown format: ![Image title](External image link). Note that the image must be externally hosted and public. 

Add Follow-On Instructions – Selecting this button allows you to create iterative or progressive questions (up to five more) for your candidates. This lets you start with a simple task and then have the candidate build upon that first task with subsequent tasks to better demonstrate their skill set.

A second question has been added under "candidate instructions - part 2" section. below that header is a trashcan to delete the question and a toggle to make the quesiton visible to candidates.

You can select the Instructions visible to candidates toggle to make the questions visible to the candidates when they first enter the pad. Alternatively you can turn this toggle on/off in the pad itself during the interview:

an interview pad is displayed. on the right side of the pad under "instructions" the "not visible to candidate" toggle for instructions part 2 is shown.

In the Interview Guide/Solution text box you’re also able to add guidance for interviewers or the solution the candidate is expected to code, via a markdown enabled note. This helps give the interviewer tips on what to look for in a candidate’s solution, as well as providing the interviewer with potential edge cases or tests to reference as they move through the interview.

Interview questions also support Custom Databases and Custom Files that you can attach to make your questions more representative of your production codebase.

⚠️If you’re creating a question that has a custom database attached to it your candidates will lose access to that database if they switch to a language that is not the one the question was created in. For example, if you create a question in MySQL, the candidate cannot switch to PostgreSQL otherwise they will lose access to the MySQL database in the pad.

If you have selected one of our most commonly used languages: Java, Javascript, Python 2 & 3, C++, Ruby, C#, or if you have selected PostgreSQL or MySQL from as the default language choice, then you can use a Full-Stack database with your question.

Add whiteboard starter drawing

If you enabled the Include starter drawing toggle during the first step, then you’ll see the Add whiteboard starter drawing screen for the third step.

Here you can use the feature-rich interface to create any diagrams you’d like to include with your interview question.

The drawing mode editor screen. There is an image of a database symbol and a box labelled" api1" with a two-way arrow pointing between them.

To access your diagram in a pad, simply open the pad with your question and then select the Drawing button on the left side of the pad.

A pad with the drawing mode screen open.

Edit starter code

Finally, it’s important to add starter code and review your question.

❗If your question included test cases, the “starter code” section will be automatically pre-populated with the expected function signature, and cannot be modified.

In the left-side coding window you can add any templates or code scaffolding you’d like to be available to the candidate.

Once you complete that step (if needed), you can verify that the other parts of the pad — like the candidate instructions test cases — are as you want them to be.

Remember, this is a fully functional pad displayed as the candidate would see it: just hit Run and you can review and run code, see program output, and verify test-cases passing when intended.

The test preview page with the starter code on the left and the program output screen on the right.

✅Keep in mind that the preview pad will not display hidden test cases in this view to accurately show what a candidate will see. To review hidden test cases, return to the test cases step.

Once you’ve finished setup of your app, click Save and Promote To Active Question to add your question to the Question Bank.

Creating multi-file questions

Start by navigating to the Question Bank in your dashboard and then click Create Question.

The question bank screen with the "create question" button at the top right of the screen.

Select only “Live Question” at this time for framework questions – support for Take-Homes will be available at a later time.

You may need to remove the default language in the Environment field in order to change the question language. To do so, simply click on the x next to the language.

In the "environment" section React is shown with an x highlighted next to it.

Then, in Environment field, choose one of the multi-file supported frameworks (ex: React, NodeJS, Vue, etc.).

The language selection list is shown.

Next, fill in all other fields as you normally would in the rest of Step 1 and in Step 2.

In Step 3, you’ll see your starter template. These files can be directly edited in this view. You can add files and folders, delete or rename existing files, etc. in order to build out the starting environment you want the candidate to work with.

You can also update the provided README file to share any additional info with candidates, or you can return to Step 2 and provide additional info for your candidates in the Candidate Instructions field.

You’ll be able to preview changes to your app in real time in Step 3 by pressing the Run button.

Once you’ve finished setup of your app, click Save and Promote To Active Question.

The question preview window with a pop up that says "Question saved as a draft!" You can then select either to promote to active question or view drafts in the drafts tab.

Then you can create a pad from this question or load it into a pad, just like for any other language.

The multifile UI with the file displayed.

✅ At this time the questions and associated app will be need to be set up for a specific frontend framework, you will not be able to automatically load a Vue question into an Angular Pad. 

Drafts and Collaboration

We’ve added draft functionality to questions. A new draft is created in your Question Bank Drafts tab as soon as you complete the first question creation step. 

A draft tab of the question bank shows a list of questions in draft along with their creators and error statuses.

As you progress through the steps of creating a question, it continues to be saved on each step. This means you don’t have to create the entire question in a single session, you can come back to it later on.

Once you’re done editing you’re draft, click Save to finalize it- you can then choose to view the draft in your drafts tab, or publish it as an active question ready to be used in interviews. 

A draft tab of the question bank shows a list of questions in draft. On of the questions has the row dropdown selected with the "preview question", "publish", and "delete" options displayed.

Using a question in a pad

There are two ways to add a question to a pad — create a pad with the question or add the question from within the pad:

1. Creating a pad with a question

You can create a pad directly from the Question Bank. Simply find the question that you would like to use and click the Create Live Pad or Create Take-Home button.

The question bank, some rows have a "Create take home" button, some have "create live pad", and others have a "Create pad" button that lets you select either a live pad or a take home.

A new pad will be created with your question preloaded. You can also preview the question from the expanded view.

2. Add a question from within the pad

It’s simple to load a question from the IDE view. Once you’re in the pad, click on the Questions button (1) and then Select A Question (2) if it’s not already selected. You can then search for a particular question using the search bar, filter by language, or view questions by Organization, My Content, or Example categories (3).

The question selection screen is open. The organization filter is selected and there is a python question selected in the list. The question started code is displayed on the right and there is an "add question" button at the bottom right of the window.

Once you select the question, you can preview it on the right screen (4). Then click Add Question to add it to the pad (5).

Edit an existing question

If you want to update an existing question, navigate to the question you want to edit in the Question Bank, select the additional options menu, and then select Edit:

A question bank row is shown the the question options dropdown shown: preview question, edit, edit a copy, and delete.

This will load your existing question data into the question wizard, and you can make updates as needed.

❗Keep in mind that test cases are currently only available for take-homes questions. If you add live interview type to an existing question with test cases, it will remove the test cases.

If you’ve toggled the question type and accidentally removed test cases, you can close the tab before saving on the final step – this will revert your changes and bring the test cases back.