Skip to content

Repository files navigation

CaseStudyBuilder

Design, run & learn from hiring case studies — a markdown-native toolkit shipped as a Claude Code plugin. Give it a role, what you want to learn about candidates, and a real challenge from your team; get back a fair, candidate-ready case pack with an evidence-based scoring rubric — and a learning loop that makes the next case better.

What's inside

Agent What it does
designer Scaffolds a brief.md, then turns it into a sanitized candidate case pack (case.md) + a frozen BARS scoring rubric (rubric.md), grounded in the assessment-practices library and your past lessons
evaluator Turns an interviewer's raw notes into an evidence-first scorecard.md — quotes first, then scores, "insufficient evidence" where notes are silent. Also preps calibration across scorecards
debrief After the round: rates how well the case did its job (signal vs. prediction, discrimination, anchor quality) and extracts reusable lessons into lessons-learned/
Skill What it holds
assessment-practices The extensible library: 8 case formats (work sample, take-home, live problem-solving, role-play, presentation & defense, reverse critique, data interpretation, inbox exercise), 4 scoring methods (BARS, evidence-first scorecard, independent-then-calibrate, signal mapping), 3 principles (structured-over-unstructured, bias interrupters, candidate experience). Add a practice by dropping a markdown file in practices/

The flow

brief.md ──designer──▶ case.md + rubric.md ──run the sessions──▶ notes
                                                                  │
lessons-learned/ ◀──debrief── debrief.md ◀──evaluator── scorecard-*.md
       └────────────────── feeds the next design ──────────────────┘

Install & try

# develop / try locally
claude --plugin-dir .

# then, in Claude Code:
#   "New case study for a Senior Product Manager"        → designer scaffolds the brief
#   "Design the case from case-studies/<slug>/brief.md"  → case pack + rubric
#   "Score this session: <paste notes>"                  → evaluator
#   "Debrief the round for <slug>: <brain-dump>"         → debrief + lessons

User content (case-studies/, lessons-learned/) lives in your workspace, not the plugin.

Also works in GitHub Copilot (VS Code)

The same toolkit is ported to GitHub Copilot as three custom agents in .github/agents/ (casestudy-designercasestudy-evaluatorcasestudy-debrief), chained with Copilot handoffs. Open this repo in VS Code, then pick an agent from the Copilot Chat agent picker (or type / and its name). The agents read the same skills/assessment-practices/ library and templates/, and .github/copilot-instructions.md gives Copilot the repo context.

Also works in Microsoft 365 Copilot (Teams / Office)

A declarative-agent build lives in copilot/m365/ — one agent covering all three modes (M365 Copilot has no handoffs), packaged as a Teams app you sideload. See copilot/m365/README.md for filling in the manifest, packaging the zip, and optionally grounding it in the full practice library via SharePoint/OneDrive.

Three packagings, one source of truth

The Claude Code plugin (agents/, skills/) is canonical. The VS Code Copilot port (.github/agents/*.agent.md) and the M365 declarative agent (copilot/m365/declarativeAgent.json) mirror it. If you change the assessment logic, update all three so they don't drift.

Fairness by construction

  • Rubrics contain only job-related competencies (max 5), each with behaviorally anchored levels.
  • Same case, same scripted probes, same rubric for every candidate in a round.
  • Evidence before scores; no evidence → null, never a guessed midpoint.
  • Independent scoring before any discussion; dissent recorded, not averaged.
  • The agents never infer or use protected characteristics — and flag notes that do.
  • Scores support a human decision. They never make it.

License

MIT

About

Design, run & learn from hiring case studies — a Claude Code plugin for HR teams

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors