# Hiring

URL: /workflows/processes/hiring · Id: `process:hiring`

> Hiring brings a Human into a Role through a paid work trial instead of interviewing.

Hiring brings a [Human](/business/nouns/human) into a [Role](/business/nouns/role) through a paid work trial instead of interviewing.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each Opening is backed by Evidence, and each Human hired passed a paid work trial graded against the incumbent Agent. |
| Reads | [Role](/business/nouns/role), [Opening](/business/nouns/opening) |
| Leaves | [Human](/business/nouns/human), [Agreement](/business/nouns/agreement), [Opening](/business/nouns/opening), [Candidate](/business/nouns/candidate), [Evidence](/business/nouns/evidence), [Project](/business/nouns/project) |
| Runs in | Each Startup |

## Accountable
[People Lead](/agents/people/people-lead), [People Team](/agents/people).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Hire a human](/workflows/processes/hiring/hire-human) | on `Opening.created` | [People Team](/agents/people) |
| [Compute openings](/workflows/processes/hiring/compute-openings) | every day | [People Team](/agents/people) |
| [Run a tryout](/workflows/processes/hiring/run-tryout) | on [`Candidate.screened`](/business/events/Candidate.screened) | [People Team](/agents/people) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Hire a human](/workflows/processes/hiring/hire-human) | 1. Write the Role’s requirements, including any Credential, on the Opening. | [Recruiter](/agents/people/recruiter) | [Opening.update](/business/nouns/opening/update) | None |
| [Hire a human](/workflows/processes/hiring/hire-human) | 2. Source candidates, starting with the best Customers and contributors. | [Recruiter](/agents/people/recruiter) | [Human.recruit](/business/nouns/human/recruit) | None |
| [Hire a human](/workflows/processes/hiring/hire-human) | 3. Hold a two-week paid work trial graded by the usual checks. | [Recruiter](/agents/people/recruiter) | [Candidate.update](/business/nouns/candidate/update) | None |
| [Hire a human](/workflows/processes/hiring/hire-human) | 4. Verify identity and Credentials. | [Recruiter](/agents/people/recruiter) | [Credential.verify](/business/nouns/credential/verify) | Within a Mandate |
| [Hire a human](/workflows/processes/hiring/hire-human) | 5. Sign the Agreement, onboard the Human, and hand pay to the Payroll Specialist. | [Recruiter](/agents/people/recruiter) | [Human.onboard](/business/nouns/human/onboard) | None |
| [Compute openings](/workflows/processes/hiring/compute-openings) | 1. Read each Role’s eval pass rates, escalations, waiting Approvals, and stalled Metrics. | [People Lead](/agents/people/people-lead) | [Role.review](/business/nouns/role/review) | None |
| [Compute openings](/workflows/processes/hiring/compute-openings) | 2. List the legal floor acts and Reserved Acts no Worker in the Startup can perform. | [People Lead](/agents/people/people-lead) |  |  |
| [Compute openings](/workflows/processes/hiring/compute-openings) | 3. Subtract what the Founder and the Agents already cover. | [People Lead](/agents/people/people-lead) |  |  |
| [Compute openings](/workflows/processes/hiring/compute-openings) | 4. Open an unlisted Opening for each gap past its Setting, citing Evidence for every requirement. | [People Lead](/agents/people/people-lead) | [Opening.create](/business/nouns/opening/create) | None |
| [Compute openings](/workflows/processes/hiring/compute-openings) | 5. Close any Opening whose gap an Agent has since closed. | [People Lead](/agents/people/people-lead) | [Opening.update](/business/nouns/opening/update) | None |
| [Run a tryout](/workflows/processes/hiring/run-tryout) | 1. Cut Tasks from the Role’s backlog, preferring those the Agent failed, escalated, or left waiting. | [Recruiter](/agents/people/recruiter) | [Task.create](/business/nouns/task/create) | None |
| [Run a tryout](/workflows/processes/hiring/run-tryout) | 2. Grant the Candidate a scoped Mandate that expires with the tryout. | [Recruiter](/agents/people/recruiter) | [Mandate.authorize](/business/nouns/mandate/authorize) | Asks first; waits 1 business hour |
| [Run a tryout](/workflows/processes/hiring/run-tryout) | 3. Give the Candidate and the incumbent Agent the same Tasks. | [Recruiter](/agents/people/recruiter) | [Task.assign](/business/nouns/task/assign) | None |
| [Run a tryout](/workflows/processes/hiring/run-tryout) | 4. Grade both arms blind with the Role’s Evaluators. | [Reviewer](/agents/quality/reviewer) | [Action.evaluate](/business/nouns/action/evaluate) | None |
| [Run a tryout](/workflows/processes/hiring/run-tryout) | 5. Write the per-Verb delta and a proposed split as Evidence on the Candidate. | [Recruiter](/agents/people/recruiter) | [Evidence.create](/business/nouns/evidence/create) | None |
| [Run a tryout](/workflows/processes/hiring/run-tryout) | 6. Pay the Candidate in full, whatever the grade. | [Payroll Specialist](/agents/people/payroll-specialist) | [Human.remit](/business/nouns/human/remit) | Asks first; waits 1 business hour |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | On `Opening.created` | Starts [Hire a human](/workflows/processes/hiring/hire-human) |
| In | Every day | Starts [Compute openings](/workflows/processes/hiring/compute-openings) |
| In | On [`Candidate.screened`](/business/events/Candidate.screened) | Starts [Run a tryout](/workflows/processes/hiring/run-tryout) |
| Out | `Opening.updated` | Raised by step 1 of [Hire a human](/workflows/processes/hiring/hire-human) |
| Out | [`Human.recruited`](/business/events/Human.recruited) | Raised by step 2 of [Hire a human](/workflows/processes/hiring/hire-human) |
| Out | `Candidate.updated` | Raised by step 3 of [Hire a human](/workflows/processes/hiring/hire-human) |
| Out | [`Credential.verified`](/business/events/Credential.verified) | Raised by step 4 of [Hire a human](/workflows/processes/hiring/hire-human) |
| Out | [`Human.onboarded`](/business/events/Human.onboarded) | Raised by step 5 of [Hire a human](/workflows/processes/hiring/hire-human) |
| Out | [`Role.reviewed`](/business/events/Role.reviewed) | Raised by step 1 of [Compute openings](/workflows/processes/hiring/compute-openings) |
| Out | `Opening.created` | Raised by step 4 of [Compute openings](/workflows/processes/hiring/compute-openings) |
| Out | `Task.created` | Raised by step 1 of [Run a tryout](/workflows/processes/hiring/run-tryout) |
| Out | [`Mandate.authorized`](/business/events/Mandate.authorized) | Raised by step 2 of [Run a tryout](/workflows/processes/hiring/run-tryout) |
| Out | [`Task.assigned`](/business/events/Task.assigned) | Raised by step 3 of [Run a tryout](/workflows/processes/hiring/run-tryout) |
| Out | [`Action.evaluated`](/business/events/Action.evaluated) | Raised by step 4 of [Run a tryout](/workflows/processes/hiring/run-tryout) |
| Out | `Evidence.created` | Raised by step 5 of [Run a tryout](/workflows/processes/hiring/run-tryout) |
| Out | [`Human.remitted`](/business/events/Human.remitted) | Raised by step 6 of [Run a tryout](/workflows/processes/hiring/run-tryout) |

## Plays
- [Work trial](/workflows/people/plays/work-trial)

## Controls
- [Worker competence](/systems/trust-and-governance/controls/worker-competence)

## Settings
None.

## Failure
A failed step retries; when retries run out, the Action goes to the [People Lead](/agents/people/people-lead).

## Loop
No loop: the path is never randomized, because it serves [Worker competence](/systems/trust-and-governance/controls/worker-competence).

## Code

**Ask**

```text
Turn on hiring
```

**API**

```bash
curl -X POST https://api.sb/leaseline.app/processes/process_1/enable \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

**SDK**

```ts
import { $ } from 'startup-builder'

await $.Process.enable({ process: 'process_1' })
```

**CLI**

```bash
npx startup-builder do Process.enable --json '{"process":"process_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Process.enable({ process: 'process_1' })"
  }
}
```

## Enable
On by default for every Product Template. [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

## Example
A tax-preparation service needs a credentialed preparer to sign returns. [Compute openings](/workflows/processes/hiring/compute-openings) opens the [Opening](/business/nouns/opening), three of its best [Customers](/business/nouns/customer) apply, and each runs a paid two-week tryout beside the [Agent](/business/nouns/agent). The best tryout result gets the seat.