> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hellorecruiter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Application Forms

> Build the application form candidates fill in for each job, reuse question sets as templates, and filter your candidates by their answers.

<Info>
  **Who is this for?** Users with **Administrator** and **Recruiter** roles.
</Info>

Every job has its own application form: the questions a candidate answers when they click **Apply Now**. You choose the questions, the order, and which are required. The answers give you a quick first screen. Candidates who don't meet a hard requirement ("5+ years of experience", "can work onsite") tend to rule themselves out, and you can filter the rest by exactly what they answered.

<Note>
  **Video walkthrough coming soon.** A short video of building and publishing an application form will appear here.
</Note>

## How Forms Fit Together

* **Form templates** live in your organization settings. They're reusable question sets.
* **One template is the default for new jobs.** Every new job starts with a copy of it.
* **Each job then has a form of its own.** You edit it on the job's **Forms** tab. Editing a template, or changing which one is the default, never changes a job that already has its copy.

## Form Templates

Go to **Settings** → **Form Templates**. The template marked **Default for new jobs** is the one every new job starts from.

<Frame caption="Your organization's form templates">
  <img src="https://mintcdn.com/hellorecruiter/TcCHKgPUd-x-q0XR/images/screenshots/forms-templates.webp?fit=max&auto=format&n=TcCHKgPUd-x-q0XR&q=85&s=ef4d47bfd076040bd03b20b28d3e4503" alt="Form Templates page listing templates, with the default template marked" style={{ borderRadius: '8px' }} width="2160" height="960" data-path="images/screenshots/forms-templates.webp" />
</Frame>

* Click **Create New Form Template** to start a new question set.
* Use a template's **⋮** menu to **Edit questions**, **Rename**, **Make default for new jobs**, or **Delete** it.

Templates are never shown to candidates directly, so they have no publish step. Your edits are saved as you go and are used the next time a job copies the template.

<Tip>
  Keep one template per kind of role, for example "Engineering", "Sales", and "Hourly / onsite". Make the one you use most the default.
</Tip>

## Editing a Job's Form

Open the job and go to its **Forms** tab. The form in the middle is exactly what candidates see. The panel on the right holds every question you can add.

<Frame caption="The form builder on a job's Forms tab">
  <img src="https://mintcdn.com/hellorecruiter/TcCHKgPUd-x-q0XR/images/screenshots/forms-builder.webp?fit=max&auto=format&n=TcCHKgPUd-x-q0XR&q=85&s=f3fbcf6105011ea6c4e9e499f82fe637" alt="Job Forms tab showing the application form, the field palette, and suggested fields" style={{ borderRadius: '8px' }} width="2160" height="1350" data-path="images/screenshots/forms-builder.webp" />
</Frame>

<Steps>
  <Step title="Add questions">
    Drag a field from **Drag & drop fields** onto the form, or click it to add it. **Suggested fields** are common questions that are already written for you.
  </Step>

  <Step title="Edit a question">
    Hover over a question and click the pencil to change its label, make it required, or open **More options**. Drag the handle on the left to reorder.
  </Step>

  <Step title="Check it">
    Switch from **Fields** to **Preview** to see the form as a candidate will.
  </Step>

  <Step title="Publish">
    Click **Publish**. Candidates only see your changes once you do.
  </Step>
</Steps>

<Frame caption="Editing a question">
  <img src="https://mintcdn.com/hellorecruiter/TcCHKgPUd-x-q0XR/images/screenshots/forms-edit-field.webp?fit=max&auto=format&n=TcCHKgPUd-x-q0XR&q=85&s=7d3a191ea0c7cc2d18b171668cf1ca76" alt="Edit field dialog with Label, Type, Required, and More options" style={{ borderRadius: '8px' }} width="1298" height="699" data-path="images/screenshots/forms-edit-field.webp" />
</Frame>

### Field Types

| Field | Use it for |
| - | - |
| **Section** | A heading that splits a long form into parts. It asks nothing. |
| **Short text** / **Long text** | A one-line answer, or a paragraph |
| **Email** / **Phone** / **Link** | Contact details and URLs, checked for the right format |
| **Dropdown** / **One choice** | Pick exactly one option, from a list or from buttons |
| **Many choices** | Tick every option that applies |
| **Number** | Years of experience, notice period in weeks, and so on. You can set the smallest and largest allowed value |
| **Date** / **Date range** | A start date or availability window. You can set the earliest and latest date, or rule out past dates |
| **File** | An upload, such as a portfolio or cover letter. You can set how many files, the largest size, and the file types |

A form can ask up to **50** questions.

**Suggested fields** include cover letter, city, portfolio or GitHub, earliest start date, years of experience, current company, notice period, expected salary, work preference (remote, hybrid, onsite), willingness to relocate, how they heard about you, and gender.

### Questions Every Form Asks

A few questions feed the candidate's profile, so they behave a little differently:

| Question | Rule |
| - | - |
| **Full name** | Always asked and always required. Can't be removed. |
| **Email address** | Always asked and always required. Can't be removed. |
| **Phone number** | Becomes the phone number on the candidate's profile. It's required automatically for a job that interviews candidates by phone. |
| **Share your resume** | Asked as required by default. Accepts PDF or Word, up to 10 MB. |
| **LinkedIn profile** | Becomes the LinkedIn link on the candidate's profile. Optional by default. |

<Warning>
  If you rely on AI resume screening for this job, keep the resume required so every candidate is screened on the same information.
</Warning>

## Drafts, Publishing, and Past Applications

Your edits save automatically as a **Draft**. Saved isn't the same as published: candidates keep seeing the version you last published until you click **Publish**, and the form then shows as **Live**.

* **Applications already sent keep the questions they were asked.** Publishing a new version never rewrites an earlier candidate's answers.
* **Once candidates have answered a question, its type is settled.** To ask something different, delete it and add a new question.
* **Start from a template** (in the builder's **⋮** menu) replaces this job's questions with a copy of a template. The copy arrives as a draft, so nothing changes for candidates until you publish.
* **Discard changes** throws away your unpublished edits and goes back to the questions candidates are already being asked.

## Filtering Candidates by Their Answers

On the job's candidate list, click **Filters**, then **Add more filters**. Every question from your form is listed under **Application Form**.

<Frame caption="Adding a filter on an application form question">
  <img src="https://mintcdn.com/hellorecruiter/TcCHKgPUd-x-q0XR/images/screenshots/forms-filters.webp?fit=max&auto=format&n=TcCHKgPUd-x-q0XR&q=85&s=b694bf1bc8525fef7a1f483f50473cf8" alt="Candidate filters panel with the Application Form questions listed under Add more filters" style={{ borderRadius: '8px' }} width="2160" height="1350" data-path="images/screenshots/forms-filters.webp" />
</Frame>

| Question type | How you filter |
| - | - |
| **Dropdown**, **One choice**, **Many choices** | Answer is **Any of** or **None of** the options you pick |
| **Short text**, **Long text**, **Email**, **Phone**, **Link** | Answer contains the text you type |
| **Number** | A **Min** and/or **Max** |
| **Date**, **Date range** | A **From** and/or **To** date |

**Section** and **File** questions can't be filtered on. A question you've since removed from the form is still listed, marked **No longer asked**, so you can filter older applications by it.

<Tip>
  Filters work best on choice and number questions, where every candidate answers in the same shape. A text filter only finds answers that contain the words you type, so ask "Years of experience" as a **Number** rather than **Short text** if you plan to filter on it.
</Tip>

## Seeing a Candidate's Answers

Open the candidate's profile and go to the **Profile** tab. **Application answers** lists every question in the order it was asked, worded exactly as the candidate saw it. Uploaded files open right there. Questions they skipped show as *Not answered*.

## What Candidates See

Candidates see your questions in your order, with required ones marked, followed by the consent checkboxes and **Submit Application**.

<Frame caption="Your form on the job's public application page">
  <img src="https://mintcdn.com/hellorecruiter/TcCHKgPUd-x-q0XR/images/screenshots/forms-apply-page.webp?fit=max&auto=format&n=TcCHKgPUd-x-q0XR&q=85&s=e306cef9ce776845d5c0ff4a4e335251" alt="Public application page showing the custom form fields" style={{ borderRadius: '8px' }} width="1676" height="1419" data-path="images/screenshots/forms-apply-page.webp" />
</Frame>

See [Applying for a Job](/candidates-guide/applying-for-a-job) for the candidate's side.

## Related Guides

<CardGroup cols={3}>
  <Card icon="plus" href="/companies/jobs/creating-a-job" title="Creating a Job" />

  <Card icon="users" href="/companies/candidates/viewing-candidates" title="Viewing Candidates" />

  <Card icon="route" href="/companies/candidates/candidate-application-flow" title="Application Flow" />
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.