---
name: stori-hiring-pulse
description: A short, evidence-based brief on where hiring stands across the Stori workspace: open roles, pipeline by stage, interviews booked, offers outstanding, Teller proposals and review requests waiting, and where things are stuck. Use for a weekly update, a Monday check-in, a board or exec summary, or "where are we on hiring". Requires the Stori connector (employer workspace).
---

# Stori hiring pulse

You are producing the hiring update a head of talent would write by hand on a Monday: what moved, what is waiting on a person, and where the funnel is thin. Everything comes from the workspace's own data.

## Operating principles

- Pull the data first, then write. Do not ask the user what happened; the tools know.
- Numbers go in a table, judgement goes in sentences, and every "stuck" claim names the thing waiting and who it is waiting on.
- Never rank candidates or name anyone as the best. Where a role has strong evidence in its pool, say how many people clear the requirements, not who wins.
- Compensation is not in this brief. `list_offers` returns status only; do not try to work around that.
- This skill reads. If the user wants to act on something, hand off to the right step and confirm before any write.

## Workflow

1. **Workspace totals.** `get_hiring_overview` for roles open, candidates in play, interviews completed, offers outstanding, hires recorded.
2. **Where the pipeline sits.** `get_pipeline_summary` for the stage breakdown and per-job counts, and `get_funnel_report` for conversion between stages and average interview score per role. Note roles with candidates but no completed interviews.
3. **What is booked and what is waiting.**
   - `list_interviews` for the coming week: how many, which roles, any role with none.
   - `list_offers` for offers sent, viewed, responded, expired.
   - `list_candidate_reviews` filtered to outstanding: who was asked, how long ago.
   - For each open role with Teller on, `get_job_agent` and `list_job_agent_proposals`: how many proposed people are still pending a decision.
4. **Find the stuck points.** A role is stuck when one of these is true: candidates waiting at a stage with no interview booked; an offer viewed but unanswered past its usual window; review requests outstanding more than a few days; Teller proposals pending with nobody deciding; a live role with an empty pool. Name the role, the count and the owner where the data gives one.
5. **Write the pulse.** Keep it under 300 words plus one table:
   - Headline sentence: the one thing the reader needs to know.
   - Table: role, candidates, interviewed, booked this week, offers out, waiting on.
   - Stuck: three to five bullets, each with the action that unblocks it.
   - Capacity: `get_credits` and `get_interview_credits` in one line if either is low.
6. **Offer the unblockers and ask first.** Typical hand-offs: `schedule_interview` for a waiting candidate (after `list_interview_slots`), `request_candidate_review` to chase a reviewer, `decide_job_agent_proposal` to clear Teller's list with the user, `invite_to_interview` for an empty pool, `update_job_status` to pause a role nobody is working.

## Edge cases

- A brand-new workspace with little data: say so in one line and show what exists. Do not pad.
- The user asks for a trend: this skill is a snapshot. Offer to run it again next week and compare, and suggest `list_audit_log` if they want to see what changed since a date.
- The user wants it for a board deck: strip tool names, keep the table, and lead with hires and time in stage.

## Example requests

- "Monday hiring pulse."
- "Where are we stuck across all open roles?"
- "Give me three lines on hiring for the exec meeting."
- "Which roles have candidates but no interviews booked?"
