100 lines
3.0 KiB
Markdown
100 lines
3.0 KiB
Markdown
---
|
|
id: staffing-risk
|
|
name: Staffing Risk
|
|
description: Identify open roles that will not fill on their own, and say why.
|
|
category: workforce
|
|
pages:
|
|
- positions
|
|
- control-center
|
|
status: active
|
|
version: 1
|
|
triggers:
|
|
- staffing risk
|
|
- staffing gap
|
|
# `*` stands for anything in between, so one line covers "roles at risk",
|
|
# "roles that are at risk" and "roles most at risk" without listing each.
|
|
- roles*at risk
|
|
- positions*at risk
|
|
- understaffed
|
|
owliver:
|
|
enabled: true
|
|
suggestions:
|
|
- label: Which roles are at risk?
|
|
capability: list
|
|
- label: Summarize staffing risk
|
|
capability: summary
|
|
capabilities:
|
|
- summary
|
|
- list
|
|
- table
|
|
- insight
|
|
responses:
|
|
summary:
|
|
title: Staffing risk
|
|
source: positions.risk
|
|
list:
|
|
title: Roles at risk
|
|
source: positions.risk
|
|
limit: 5
|
|
table:
|
|
title: Roles at risk
|
|
source: positions.risk
|
|
insight:
|
|
title: Biggest staffing risk
|
|
source: positions.risk
|
|
---
|
|
|
|
# Staffing Risk
|
|
|
|
## Purpose
|
|
|
|
- Name the open roles that are not going to fill without intervention.
|
|
- Say which of four distinct problems each one has, because each has a
|
|
different fix.
|
|
- Rank them so the reader knows which to deal with first.
|
|
|
|
## Capabilities
|
|
|
|
- Count the open roles currently at risk.
|
|
- List those roles, worst first, with the reason for each.
|
|
- Identify the single role most in need of attention.
|
|
|
|
## Data
|
|
|
|
Reads `positions.risk`, which joins open `JobPosting` records to their
|
|
`JobApplication` records through the same `buildPosition` reading the Positions
|
|
page renders from. No separate calculation, so a risk reported here and a health
|
|
badge shown there cannot disagree.
|
|
|
|
## Analysis
|
|
|
|
A role is at risk when any of the following is true. They are kept apart rather
|
|
than combined into a score, because the score would hide the only part that
|
|
tells the reader what to do:
|
|
|
|
1. **No applicants yet** — nobody has applied. Needs sourcing.
|
|
2. **No candidate scoring 70 or above** — people applied, none are viable.
|
|
Needs the requirements or the pay revisiting.
|
|
3. **Three or more unscreened** — a backlog nobody has looked at. Needs
|
|
screening.
|
|
4. **Someone awaiting a decision** — a strong candidate has been screened and
|
|
not moved on. Needs a person to decide.
|
|
|
|
Ranking weights an empty pipeline above a busy one that needs attention, since
|
|
an empty pipeline takes longest to recover.
|
|
|
|
## Output
|
|
|
|
A count of roles at risk, then a row per role naming its department and its
|
|
reasons. A role with no problems is not listed.
|
|
|
|
## Limitations
|
|
|
|
- Only open roles are considered. A paused or closed role is not at risk.
|
|
- "Viable" means an AI score of 70 or above. An unscored candidate is not
|
|
counted as viable, so a role whose applicants nobody has screened will report
|
|
both an unscreened backlog and no viable candidate — those are two true
|
|
statements about the same cause.
|
|
- This reads the pipeline, not the roster. It does not know how many people a
|
|
role needs, because no position in this workspace states a headcount.
|