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

# Job pipelines

> Move candidates through your hiring stages on a Kanban board, reuse pipeline templates, and automate outreach at each stage.

Every job has a **pipeline**: the stages a candidate passes through, from first contact to hired. You manage candidates on a Kanban board, one
column per stage.

## Watch it live

* [Jobin.cloud Basics: Jobs, Sourcing, Screening & Sequences (Course 1)](https://www.youtube.com/watch?v=JbrjO_kMpGI)

## Recommended workflow

1. **Start from a template.** Choose a built-in or workspace pipeline template, and set a workspace default for future jobs. Then define the job's [Ideal Candidate Profile](#ideal-candidate-profile-icp).
2. **Adjust the stages.** Rename, recolor, and reorder stages so they match your real process.
3. **Link a sequence** to the job so contacted and replying candidates are tracked in it.
4. **Automate stage entry** where it helps, for example launching a sequence when candidates reach a stage.
5. **Bring candidates in.** Assign contacts to the job, or let linked sequences place them.
6. **Work the board.** Drag cards between stages, review profiles beside the board, and leave notes on cards.
7. **Use bulk actions** to move or tag a batch at once. Before you contact anyone new, check the **Assigned** stage, or filter to **Not in this pipeline**, to avoid [double-messaging](#avoid-double-messaging).
8. **Close the loop.** Drag hires to **Accepted**, and check progress from the stage tabs in [Contacts](/contacts.md).

## The pipeline board

Open a job and choose its pipeline.

* **Move candidates** by dragging a card into another stage. Drag to **Accepted** to mark a hire.
* **Review a profile beside the board.** Select a card to open the full [contact profile](/contact-profile.md) next to the pipeline, and
  review the candidate's resume without leaving the board. Select the card again to close it.
* **Leave a note.** Add a short note to a card with rich-text formatting. The whole workspace sees the same note, which is useful for reminders.
* **Run bulk actions.** Select several cards and run the same bulk actions as in [Contacts](/contacts.md), without leaving the pipeline.

## Build your workflow

In the job builder, open **Workflow** to set up stages. See [Create and edit a job](/job-builder.md).

1. Click **Add stage** below the stage list.
2. Name the stage, such as *Technical interview*, and choose **Add** to open its settings.
3. Set its name, color, and details, then click **Save stage**.
4. Drag the stage's handle to reorder it. With a keyboard, press **Space**, use the arrow keys, then press **Space** again.

Jobin also manages some stages for you, such as **Assigned**, **Rejected**, and **Accepted**.

### Pipeline templates

Standardize your hiring process with reusable templates.

* Start a job's pipeline from a built-in Jobin template or one of your workspace templates.
* Apply a template to an individual job.
* Choose the default template for future jobs. Existing jobs don't change when you change the default.

## Ideal Candidate Profile (ICP)

A job's **Ideal Candidate Profile** describes who fits the role, using the same filters as the Contacts database. It works as a live talent pool: the contacts who match it change
as your data changes, with no tags to maintain.

> [!TIP]
>
> **Pro tip:** use the ICP, or a [Saved Search](/contacts.md#saved-searches), to define a talent pool instead of tagging people. Refresh your profiles with
> [**Update profiles**](/contact-enrichment.md#refresh-profile-data) and the pool updates itself, adding contacts who start to match and dropping those who no longer do.

### Define it

Choose **Ideal candidate** in the pipeline header or the job's menu, or use the ideal candidate card on the job's **Brief** tab. Build the criteria with the Contacts filters. Mark what the candidate must have, and what is nice to have. To start faster, choose
**Use AI to define the ICP** to have AI read the job description and pre-fill the criteria. You can add a focus, such as "prioritize candidates with startup experience". AI replaces any
criteria you've already entered, so you're asked to confirm first. Save the result as the job's Ideal Candidate. You can also save the criteria as a saved search.

### Use it

* **Filter Contacts by the ICP.** In Contacts, open the **Job pipeline** filter and choose **Show only Fitting** to see only contacts who meet the ICP. Use the **Minimum pipeline fit**
  slider to also require a share of the nice-to-haves: **All must-haves + Required % of nice-to-haves**.
* **Read the fitting index.** The fit bar on a contact shows how well they match. It reads *Is Fitting + nice-to-haves at X%*, or *Minimum Fitting requirements not met*. If the ICP isn't defined
  yet, select it to define it.

## Automate outreach at each stage

Connect a pipeline to your outreach so candidates are contacted as they progress.

* **Link a sequence to the job.** Contacts the sequence reaches, and people who reply, are tracked in the job. Link it from the sequence's **Linked job** card or
  from **Linked sequences** in the job's hiring workflow. See [Sequences](/sequences.md).
* **Move candidates automatically.** Select a stage name, or choose **Stage actions** > **Stage automations** on the column. In the **Assign stage** card, choose when
  candidates arrive: **Contact assigned to sequence**, **First successful outreach**, **First human reply**, or **Interested**. These events come from the job's linked
  sequences, and candidates only move forward.
* **Launch a sequence on stage entry.** In the **Trigger action** card, choose **Add sequence**. It runs for everyone who reaches the stage, however they got there.
  A stage launches one sequence, because a contact runs one sequence at a time. You can add one to the managed stages too.
* **Route replies.** In a sequence's **Reply Identification**, a reply type can also tag the contact, move them to a stage, or add them to another sequence.
  See [Reply handling](/sequence-automation.md#reply-handling).

Jobin warns you before you move a sequence that is already linked to another job.

## Avoid double-messaging

When a [sequence](/sequences.md) is linked to a job, the job tracks everyone for you. Contacts are placed in the job's pipeline as they are **assigned**, **contacted**, and **reply**, each in its own stage. So you
don't have to remember who has been messaged. The pipeline already knows, and you can use it to avoid contacting anyone twice.

### How contacts land in the Assigned stage

By default, the stage before successful outreach is **Assigned**. A contact sitting in Assigned is one of two kinds of people:

* **Already in a sequence but not messaged yet.** Adding them to the sequence again is safe, because Jobin skips contacts who are already in it.
* **New to the job.** Any contact you import into a job is added to that job's Assigned stage.

If a contact is already in your database and further along in the pipeline, they stay in their current stage. They are never moved backward.

### Find who hasn't been reached yet

Use either of these:

1. **Filter by stage.** In [Contacts](/contacts.md), filter the job's pipeline to the stages that come before successful outreach, starting with **Assigned**. Everyone there still has to be contacted.
2. **Switch the pipeline filter to Not in this pipeline.** Everyone added to a sequence is placed in the linked job's pipeline, so a contact who isn't in the pipeline hasn't been contacted for that job yet.

### Don't re-contact someone messaged for a different job

The pipeline only knows about its own job. If you also want to skip anyone who already received a message about another job or sequence, use the **Last message** filter in [Contacts](/contacts.md):

1. Set the date range, for example the last 30 days.
2. Choose the message type: **Any message** for anyone you messaged, or **Replies only** for people who replied.
3. Set the filter mode to **Exclude**.

## See stages from Contacts

Stage information also shows up in [Contacts](/contacts.md):

* With a pipeline selected, **stage tabs** above the list show how many contacts are in each stage.
* The table can show a contact's stages across several pipelines, and a separate **Past job stage** column for closed jobs.
* The **Job Applications** tab on a profile lets you review and change a candidate's stage and substage.

## How-to guides

Quick, step-by-step answers for common tasks:

* [How to prevent double-messaging candidates](/how-to/avoid-messaging-the-same-person-twice.md)
* [How to add stages to a hiring pipeline](/how-to/add-stages-to-a-hiring-pipeline.md)
* [How to use a pipeline template for your jobs](/how-to/use-a-pipeline-template.md)
* [How to define an ideal candidate profile (ICP) for a job](/how-to/define-an-ideal-candidate-profile.md)
* [How to assign contacts to a job](/how-to/assign-contacts-to-a-job.md)
* [How to move candidates through a hiring pipeline](/how-to/move-candidates-through-a-pipeline.md)
* [How to link a sequence to a job to track candidates](/how-to/link-a-sequence-to-a-job.md)
* [How to move candidates to a pipeline stage automatically](/how-to/move-candidates-to-a-stage-automatically.md)
* [How to start a sequence when a candidate reaches a stage](/how-to/start-a-sequence-when-a-candidate-reaches-a-stage.md)
* [How to automate candidate follow-up to interview](/how-to/automate-candidate-follow-up-from-first-message-to-interview.md)

## Related

> **[Sequences](/sequences.md)**
>
> Outreach you can launch from a stage.

> **[Client Portal](/client-portal.md)**
>
> Share a pipeline with your client.


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