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

# Applications

> List, filter, and review job applications by status and candidate; view candidate details, advance or screen applicants, and make or reject offers.

Applications is available at route `/hr/ats/applications`. Access follows your organization's role and module configuration.

## Overview

The Applications list page shows all job applications with a total count header. Filter controls include a candidate name/email search field, a status dropdown (all or one of: applied, screening, interview scheduled, interviewed, offer pending, offer sent, accepted, hired, rejected, withdrawn), and a job posting dropdown populated from active postings. Applications are displayed as `ApplicationCard` components with checkbox selection for bulk actions via `ApplicationBulkActions`. Pagination renders when results exceed 20 per page with up to five page links shown.

## Who it's for

Access follows your organization's role and module configuration. Also accessible as the **Applications** tab inside the ATS Dashboard hub at `/hr/ats/dashboard`.

## Before you start

* No preconditions; the list will be empty if no applications have been submitted.

## Steps

<Steps>
  <Step title="Open Applications">Navigate to `/hr/ats/applications`.</Step>
  <Step title="Filter">Use the search field, status dropdown, or job posting dropdown to narrow results.</Step>
  <Step title="Select for bulk action">Check individual application rows and use `ApplicationBulkActions` to perform bulk operations.</Step>
  <Step title="Open details">Click an `ApplicationCard` to navigate to `/hr/ats/applications/:id`.</Step>
</Steps>

## Key concepts

| Term                     | Meaning in code                                                 |
| ------------------------ | --------------------------------------------------------------- |
| `ApplicationFilters`     | Filter shape: `status`, `job_posting_id`, `search`              |
| `ApplicationStatus`      | Full set of pipeline statuses from `applied` to `withdrawn`     |
| `ApplicationBulkActions` | Component rendering bulk status-change actions for selected IDs |

## Viewing an application

The Application Details page is available at route `/hr/ats/applications/:id`. It shows a two-column layout. The main column contains the candidate's name, email, phone, applied date with an `ApplicationStatusBadge`, linked job posting, an interviews section with linked interview cards (type, schedule, feedback count), and a background check section. The sidebar shows a timeline (applied, screened, rejected timestamps) and the application source. Action buttons in the header vary by status: **Mark Screened** (applied), **Schedule Interview** (applied or screening), **Make Offer** (interview\_scheduled or interview\_completed), and **Reject** (any non-terminal status). Rejection requires selecting a reason from a predefined list and optional notes.

Before you start: an application must exist in the system; navigate from `/hr/ats/applications`.

1. Navigate to `/hr/ats/applications` and click an application row to open its detail page.
2. Check name, contact details, and job posting in the candidate information card.
3. Click **Mark Screened** or **Schedule Interview** to move the application forward.
4. After at least one completed interview, click **Make Offer** to open the guided offer wizard at `/hr/ats/applications/:id/offer`. The wizard route requires the `hr.ats.offers.create` permission.
5. Click **Reject**, select a reason, optionally add notes, and confirm.

**Key detail concepts:**

| Term                     | Meaning in code                                                                                                                                         |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ApplicationStatus`      | `applied`, `screening`, `interview_scheduled`, `interview_completed`, `offer_pending`, `offer_sent`, `offer_accepted`, `hired`, `rejected`, `withdrawn` |
| `rejection_reason`       | Stored from predefined labels: Not Qualified, Position Filled, Not a Cultural Fit, Salary Expectations Too High, Candidate Withdrew, Other              |
| `BackgroundCheckSection` | Component for initiating and viewing background check results                                                                                           |
| `OfferLetterWizard`      | Guided flow for creating an employment offer linked to the application                                                                                  |

## Related

<Columns cols={2}>
  <Card title="Human Resources" icon="users" href="/hr/overview">
    Human Resources core overview.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index">
    Documentation coverage and governance.
  </Card>
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/hr.tsx
  * src/cores/hr/pages/ats/ApplicationListPage.tsx
  * src/cores/hr/pages/ats/ApplicationDetailPage.tsx
  * src/cores/hr/hooks/ats/useApplications.ts
  * src/cores/hr/hooks/ats/useApplicationDetail.ts
  * src/cores/hr/hooks/ats/useApplicationMutation.ts
</Accordion>
