# Candidate shortlist

Source: https://routineos.org/templates/candidate-shortlist

> Scores applicants against your rubric with evidence per criterion and suggests a shortlist. The prompt forbids rejecting anyone.

Template: recruiting

# A shortlist with evidence for every score. The prompt forbids rejecting anyone, and a person reviews each score.

Candidate shortlist is a Claude routine that scores new applicants against a written rubric you set, quotes the evidence for each criterion, and suggests who to look at first. A person reviews every candidate and makes every decision.

[Get started](https://routineos.org/#start)[Install it](#install)

unpilotedwatchrecruitingstarts report-only

At a glance

## How the candidate shortlist is built

On weekdays it lists new applicants for the roles you name and reads each CV. For each criterion in your rubric it marks met, partly met or not met, with a short quote as evidence.

A small script, not the model, turns the marks into a weighted score from 0 to 100. Must-have criteria count double and nice-to-have count once. The Desk shows candidates by score, with a suggestion of shortlist or review.

**Kind**Watch

**Schedule**Weekdays, 21:00 UTC (default)

**First run**Report-only

**Needs**An applicant tracking system (read)

**Maturity**Unpiloted: it passed validation, no real run has checked it (per the catalog)

Safety

## What it is told never to do

- The prompt forbids rejecting, advancing, contacting or moving an applicant. The first run is report-only.
- The prompt tells it to score only the written criteria and record evidence for each mark.
- The prompt treats CV text as data. An instruction hidden in a CV is ignored and noted for the reviewer.
- The prompt forbids writing your settings. If a change looks right, it proposes one and you accept or reject it.

These are rules in the routine's prompt. See [honest limits](https://routineos.org/honest-limits) for what is and is not checked by code.

Settings

## Rubric and score settings

| Setting | Key | Default | Note |
|---|---|---|---|
| Open roles | `roles` | none | Each role adds its new applicants to the run. |
| Must have (weight 2) | `must_have` | one placeholder criterion | Each criterion adds one mark per applicant. |
| Nice to have (weight 1) | `nice_to_have` | none | Each criterion adds one mark per applicant. |
| Shortlist size | `shortlist_size` | 5 | 1 to 20. |
| Inbox messages per run | `max_inbox_per_run` | 5 | 0 to 20. |

How it runs

## Stages and the ATS connector

| Stage | Kind | Does |
|---|---|---|
| Read new applicants | model | Lists new applicants per role and reads each CV. |
| Mark the rubric | model | Marks each criterion met, partly or not, with a short quote as evidence. |
| Score | code | Turns the marks into a weighted 0 to 100 score. |
| Learn | code | Turns feedback on earlier runs into learning and proposals before the write. |
| Write | code | Applies the run under the write contract. |

| Connector | Needed | Used for |
|---|---|---|
| Applicant tracking system | Required | Read new applicants and their CVs. Read access only. If you have no connector, CVs placed in the run folder with an applicant reference each is the alternative the pack names. |

The Desk

## What the Desk shows

The Desk for this template has one record type, Candidate, and one view. [How the Desk works](https://routineos.org/concepts/desk).

| View | Shows | Columns |
|---|---|---|
| By score | Active candidates, highest score first | Applicant reference, role, score, suggestion |

Install

## Install the candidate shortlist

1. **Install the plugin**In Claude Code 2.1.275 or later. The command line tool needs Python 3.11 or later.

`/plugin install routineos --marketplace devkindhq/routineos`

2. **Install the pack**From a clone of the repository root. It writes a routine folder, prints what you must connect, runs nothing and connects nothing.

`python3 skills/routineos/scripts/routineos.py pack install catalog/candidate-shortlist.json --dir my-candidate-shortlist`

3. **Connect, publish, run once**Connect what the pack lists, publish the Desk, and let the first run go. Nothing leaves the routine on the first run.

The [first routine guide](https://docs.routineos.org/guides/first-routine) walks a template to a first run, and [Install a pack](https://docs.routineos.org/templates/install) lists every refusal the installer can give. Free (MIT). Needs a paid Claude plan.

Limits

## Known risks and limits

- Automated screening can carry bias in from the rubric or from the CV text. The routine scores only written criteria and records evidence for each mark, and a person makes every decision.
- Hiring rules on automated decisions differ by country. Check yours before use. This page makes no legal claim.
- A CV can hide instructions aimed at the model. The prompt ignores them, which is a prompt rule, not a guarantee.
- Whether your applicant tracking system offers read access through a connector is unverified.
- Scheduling is a research preview and may change. See [honest limits](https://routineos.org/honest-limits).

Related

## Related templates and reading

 [

### Jobs watch

Tracks public job postings and links each role to its company.

piloted
Open ](https://routineos.org/templates/jobs-watch) [

### Use cases

Routines grouped by the team that runs them.

use cases
Open ](https://routineos.org/use-cases) [

### Approvals

How a routine asks before it sends, posts or deletes.

concept
Open ](https://routineos.org/concepts/approvals)

More: [questions and answers](https://routineos.org/faq), [schedule a routine in Claude Code](https://routineos.org/learn/schedule-claude-code), [how RoutineOS maps to Rails](https://routineos.org/concepts/rails-map).

## Read one shortlist before you trust a score.

Install RoutineOS, add Candidate shortlist, and read the scores with their evidence before anything else.

[Get started](https://routineos.org/#start)[Read the docs](https://docs.routineos.org)
