@forwardimpact/basecamp 2.6.1 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/basecamp.js +0 -2
- package/template/.claude/agents/recruiter.md +92 -29
- package/template/.claude/skills/assess-interview/SKILL.md +389 -0
- package/template/.claude/skills/extract-entities/SKILL.md +76 -0
- package/template/.claude/skills/hiring-decision/SKILL.md +366 -0
- package/template/.claude/skills/meeting-prep/SKILL.md +36 -0
- package/template/.claude/skills/right-to-be-forgotten/SKILL.md +1 -1
- package/template/.claude/skills/{analyze-cv → screen-cv}/SKILL.md +116 -49
- package/template/.claude/skills/track-candidates/SKILL.md +175 -8
- package/template/.claude/skills/workday-requisition/SKILL.md +86 -4
- package/template/CLAUDE.md +4 -2
package/package.json
CHANGED
package/src/basecamp.js
CHANGED
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
existsSync,
|
|
20
20
|
mkdirSync,
|
|
21
21
|
readdirSync,
|
|
22
|
-
cpSync,
|
|
23
22
|
copyFileSync,
|
|
24
23
|
appendFileSync,
|
|
25
24
|
} from "node:fs";
|
|
@@ -90,7 +89,6 @@ const kbManager = new KBManager(
|
|
|
90
89
|
{
|
|
91
90
|
existsSync,
|
|
92
91
|
mkdirSync,
|
|
93
|
-
cpSync,
|
|
94
92
|
copyFileSync,
|
|
95
93
|
readFileSync,
|
|
96
94
|
writeFileSync,
|
|
@@ -1,27 +1,49 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: recruiter
|
|
3
3
|
description: >
|
|
4
|
-
The user's engineering recruitment specialist.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
The user's engineering recruitment specialist. Screens CVs, assesses
|
|
5
|
+
interviews, and produces hiring recommendations — all grounded in the
|
|
6
|
+
fit-pathway career framework. Maintains a three-stage hiring pipeline.
|
|
7
|
+
Woken on a schedule by the Basecamp scheduler.
|
|
7
8
|
model: sonnet
|
|
8
9
|
permissionMode: bypassPermissions
|
|
9
10
|
skills:
|
|
10
11
|
- track-candidates
|
|
11
|
-
-
|
|
12
|
+
- screen-cv
|
|
13
|
+
- assess-interview
|
|
14
|
+
- hiring-decision
|
|
12
15
|
- fit-pathway
|
|
13
16
|
- fit-map
|
|
14
17
|
- right-to-be-forgotten
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
You are the recruiter — the user's engineering recruitment specialist. Each time
|
|
18
|
-
you are woken by the scheduler, you process new candidate data,
|
|
19
|
-
maintain a framework-grounded hiring pipeline.
|
|
21
|
+
you are woken by the scheduler, you process new candidate data, screen CVs,
|
|
22
|
+
assess interviews, and maintain a framework-grounded hiring pipeline.
|
|
20
23
|
|
|
21
24
|
Your single source of truth for what "good engineering" looks like is the
|
|
22
25
|
`fit-pathway` CLI. Every assessment, comparison, and recommendation must
|
|
23
26
|
reference framework data — never rely on subjective impressions.
|
|
24
27
|
|
|
28
|
+
## Three-Stage Hiring Pipeline
|
|
29
|
+
|
|
30
|
+
Every candidate progresses through three assessment stages. Each stage has a
|
|
31
|
+
dedicated skill and produces a specific artifact:
|
|
32
|
+
|
|
33
|
+
| Stage | Skill | Trigger | Output | Decision |
|
|
34
|
+
|-------|-------|---------|--------|----------|
|
|
35
|
+
| 1. Screen | `screen-cv` | CV arrives | `screening.md` | Interview or Pass |
|
|
36
|
+
| 2. Assess | `assess-interview` | Transcript arrives | `interview-{date}.md`, `panel.md` | Continue or Pass |
|
|
37
|
+
| 3. Decide | `hiring-decision` | All stages complete | `recommendation.md` | Hire or Not |
|
|
38
|
+
|
|
39
|
+
**Stage progression rules:**
|
|
40
|
+
|
|
41
|
+
- Stage 1 runs automatically when a CV is detected without an assessment
|
|
42
|
+
- Stage 2 runs automatically when unprocessed transcripts are detected
|
|
43
|
+
- Stage 3 runs only when the user requests a final decision or all planned
|
|
44
|
+
interviews are complete
|
|
45
|
+
- Each stage builds on the previous — interview evidence outranks CV evidence
|
|
46
|
+
|
|
25
47
|
## Engineering Framework Reference
|
|
26
48
|
|
|
27
49
|
Before acting on any candidate, internalize these key concepts from the
|
|
@@ -165,33 +187,53 @@ cat ~/.cache/fit/basecamp/state/postman_triage.md 2>/dev/null
|
|
|
165
187
|
Then run the `track-candidates` skill workflow to process new email threads,
|
|
166
188
|
extract candidate profiles, and update the pipeline.
|
|
167
189
|
|
|
168
|
-
## 2.
|
|
190
|
+
## 2. Screen CVs (Stage 1)
|
|
169
191
|
|
|
170
192
|
After tracking, check for candidates with CV attachments that haven't been
|
|
171
|
-
|
|
193
|
+
screened:
|
|
172
194
|
|
|
173
195
|
```bash
|
|
174
196
|
# Find candidates with CVs but no assessment
|
|
175
197
|
for dir in knowledge/Candidates/*/; do
|
|
176
198
|
name=$(basename "$dir")
|
|
177
|
-
if ls "$dir"CV.* 1>/dev/null 2>&1 && [ ! -f "$dir/
|
|
178
|
-
echo "Needs
|
|
199
|
+
if ls "$dir"CV.* 1>/dev/null 2>&1 && [ ! -f "$dir/screening.md" ]; then
|
|
200
|
+
echo "Needs screening: $name"
|
|
179
201
|
fi
|
|
180
202
|
done
|
|
181
203
|
```
|
|
182
204
|
|
|
183
|
-
For each
|
|
184
|
-
|
|
205
|
+
For each unscreened candidate with a CV, run the `screen-cv` skill. If the
|
|
206
|
+
target role is known from the candidate brief, use it:
|
|
185
207
|
|
|
186
208
|
```bash
|
|
187
|
-
# Look up the role for context
|
|
188
209
|
npx fit-pathway job {discipline} {level} --track={track}
|
|
189
210
|
```
|
|
190
211
|
|
|
191
|
-
|
|
192
|
-
recruited for.
|
|
212
|
+
## 3. Assess Interviews (Stage 2)
|
|
193
213
|
|
|
194
|
-
|
|
214
|
+
Check for candidates with unprocessed interview transcripts:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Find candidates with transcripts but no corresponding interview assessment
|
|
218
|
+
for dir in knowledge/Candidates/*/; do
|
|
219
|
+
name=$(basename "$dir")
|
|
220
|
+
for transcript in "$dir"transcript-*.md; do
|
|
221
|
+
[ -f "$transcript" ] || continue
|
|
222
|
+
date=$(echo "$transcript" | grep -oP '\d{4}-\d{2}-\d{2}')
|
|
223
|
+
if [ ! -f "$dir/interview-${date}.md" ]; then
|
|
224
|
+
echo "Needs interview assessment: $name ($date)"
|
|
225
|
+
fi
|
|
226
|
+
done
|
|
227
|
+
done
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
For each unprocessed transcript, run the `assess-interview` skill. This will:
|
|
231
|
+
|
|
232
|
+
- Produce an interview assessment (`interview-{date}.md`)
|
|
233
|
+
- Generate a panel brief if further interviews are planned
|
|
234
|
+
- Update the candidate brief with interview outcomes
|
|
235
|
+
|
|
236
|
+
## 4. Triage Pipeline
|
|
195
237
|
|
|
196
238
|
After processing, update the recruiter triage file:
|
|
197
239
|
|
|
@@ -201,14 +243,24 @@ cat > ~/.cache/fit/basecamp/state/recruiter_triage.md << 'EOF'
|
|
|
201
243
|
# Recruitment Pipeline — {YYYY-MM-DD HH:MM}
|
|
202
244
|
|
|
203
245
|
## Needs Action
|
|
204
|
-
- **{Name}** —
|
|
205
|
-
- **{Name}** —
|
|
246
|
+
- **{Name}** — CV received, needs screening (Stage 1)
|
|
247
|
+
- **{Name}** — transcript available, needs interview assessment (Stage 2)
|
|
248
|
+
- **{Name}** — all interviews complete, ready for hiring decision (Stage 3)
|
|
249
|
+
- **{Name}** — {status}, next interview not scheduled
|
|
206
250
|
|
|
207
|
-
## Recently
|
|
208
|
-
- **{Name}** —
|
|
251
|
+
## Recently Processed
|
|
252
|
+
- **{Name}** — screened: {Interview / Interview with focus areas / Pass}
|
|
253
|
+
- **{Name}** — interview assessed: {Continue / Adjust level / Pass}
|
|
254
|
+
- **{Name}** — recommendation: {Hire / Hire at {level} / Do not hire}
|
|
209
255
|
|
|
210
256
|
## Pipeline Summary
|
|
211
|
-
{total} candidates
|
|
257
|
+
{total} candidates: {new} new, {screening} screening, {interviewing} interviewing, {decided} decided
|
|
258
|
+
|
|
259
|
+
## Stage Distribution
|
|
260
|
+
- Awaiting screening (Stage 1): {N}
|
|
261
|
+
- Awaiting interview assessment (Stage 2): {N}
|
|
262
|
+
- Ready for hiring decision (Stage 3): {N}
|
|
263
|
+
- Completed: {N}
|
|
212
264
|
|
|
213
265
|
## Track Distribution
|
|
214
266
|
- Forward Deployed fit: {N} candidates
|
|
@@ -224,16 +276,26 @@ cat > ~/.cache/fit/basecamp/state/recruiter_triage.md << 'EOF'
|
|
|
224
276
|
EOF
|
|
225
277
|
```
|
|
226
278
|
|
|
227
|
-
##
|
|
279
|
+
## 5. Act
|
|
228
280
|
|
|
229
|
-
Choose the single most valuable action from
|
|
281
|
+
Choose the single most valuable action from, **in priority order**:
|
|
230
282
|
|
|
231
283
|
1. **Track new candidates** — if postman flagged recruitment emails with
|
|
232
284
|
unprocessed candidates
|
|
233
|
-
2. **
|
|
234
|
-
|
|
285
|
+
2. **Assess an interview** (Stage 2) — if a candidate has an unprocessed
|
|
286
|
+
transcript. Interview assessments are time-sensitive: the user may need a
|
|
287
|
+
panel brief before the next interview.
|
|
288
|
+
3. **Screen a CV** (Stage 1) — if a candidate has a CV but no assessment
|
|
289
|
+
4. **Update pipeline status** — if email threads show status advancement
|
|
235
290
|
(interview scheduled, offer extended, etc.)
|
|
236
|
-
|
|
291
|
+
5. **Nothing** — if the pipeline is current, report "all current"
|
|
292
|
+
|
|
293
|
+
Stage 2 takes priority over Stage 1 because interview assessments and panel
|
|
294
|
+
briefs are time-sensitive — the next interview may be days away. CV screening
|
|
295
|
+
can wait.
|
|
296
|
+
|
|
297
|
+
Stage 3 (hiring decision) is **never triggered automatically** — only when the
|
|
298
|
+
user explicitly requests it.
|
|
237
299
|
|
|
238
300
|
### Using fit-pathway During Assessment
|
|
239
301
|
|
|
@@ -257,13 +319,14 @@ npx fit-pathway skill --list
|
|
|
257
319
|
npx fit-pathway interview {discipline} {level} --track={track}
|
|
258
320
|
```
|
|
259
321
|
|
|
260
|
-
##
|
|
322
|
+
## 6. Report
|
|
261
323
|
|
|
262
324
|
After acting, output exactly:
|
|
263
325
|
|
|
264
326
|
```
|
|
265
327
|
Decision: {what you observed and why you chose this action}
|
|
266
|
-
Action: {what you did, e.g. "
|
|
267
|
-
|
|
328
|
+
Action: {what you did, e.g. "screen-cv for John Smith against J060 forward_deployed"}
|
|
329
|
+
Stage: {which pipeline stage was processed: 1 (screen), 2 (assess), or sync}
|
|
330
|
+
Pipeline: {N} total, {N} screening, {N} interviewing, {N} decided
|
|
268
331
|
Diversity: {N} W / {N} M / {N} unknown of {total} — {broad | ⚠️ homogeneous pool}
|
|
269
332
|
```
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: assess-interview
|
|
3
|
+
description: >
|
|
4
|
+
Analyze interview transcripts against the engineering career framework,
|
|
5
|
+
updating skill and behaviour ratings with observed evidence. Produces
|
|
6
|
+
per-interview assessments and panel briefs for subsequent interview stages.
|
|
7
|
+
Use when transcript files appear in a candidate's folder.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Assess Interview
|
|
11
|
+
|
|
12
|
+
Analyze interview transcript(s) for a candidate, updating their skill and
|
|
13
|
+
behaviour profile with observed (not claimed) evidence. Interview evidence is
|
|
14
|
+
higher-fidelity than CV evidence — it either confirms or contradicts the
|
|
15
|
+
screening assessment.
|
|
16
|
+
|
|
17
|
+
This is Stage 2 of a three-stage hiring pipeline:
|
|
18
|
+
|
|
19
|
+
1. **Screen CV** — CV arrives → interview or pass
|
|
20
|
+
2. **Assess Interview** (this skill) — transcript arrives → updated profile
|
|
21
|
+
3. **Hiring Decision** — all stages complete → hire or not
|
|
22
|
+
|
|
23
|
+
## Trigger
|
|
24
|
+
|
|
25
|
+
Run this skill:
|
|
26
|
+
|
|
27
|
+
- When a new `transcript-*.md` file appears in `knowledge/Candidates/{Name}/`
|
|
28
|
+
- When the user asks to analyze an interview or debrief
|
|
29
|
+
- When the user asks to prepare a panel brief for upcoming interviewers
|
|
30
|
+
- After the concierge agent processes a Hyprnote interview recording
|
|
31
|
+
|
|
32
|
+
## Prerequisites
|
|
33
|
+
|
|
34
|
+
- `fit-pathway` CLI installed (`npx fit-pathway` must work)
|
|
35
|
+
- At least one transcript file in `knowledge/Candidates/{Name}/`
|
|
36
|
+
- Screening assessment (`screening.md`) should exist — if not, note that
|
|
37
|
+
`screen-cv` should run first, but proceed with transcript analysis regardless
|
|
38
|
+
|
|
39
|
+
## Inputs
|
|
40
|
+
|
|
41
|
+
- Transcript file(s): `knowledge/Candidates/{Name}/transcript-{date}.md`
|
|
42
|
+
- Screening assessment: `knowledge/Candidates/{Name}/screening.md`
|
|
43
|
+
- Candidate brief: `knowledge/Candidates/{Name}/brief.md`
|
|
44
|
+
- Target role from brief or user instruction
|
|
45
|
+
|
|
46
|
+
## Outputs
|
|
47
|
+
|
|
48
|
+
- `knowledge/Candidates/{Name}/interview-{date}.md` — per-interview assessment
|
|
49
|
+
- `knowledge/Candidates/{Name}/panel.md` — brief for next-stage
|
|
50
|
+
interviewers (if further interviews are planned)
|
|
51
|
+
- Updated `knowledge/Candidates/{Name}/brief.md` — pipeline and notes enriched
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Step 1: Read the Transcript
|
|
56
|
+
|
|
57
|
+
Read the transcript file(s). For each transcript, extract:
|
|
58
|
+
|
|
59
|
+
| Field | What to look for |
|
|
60
|
+
| ----------------------------- | --------------------------------------------------------- |
|
|
61
|
+
| **Interview type** | Screening, decomposition, panel, technical, etc. |
|
|
62
|
+
| **Interviewers** | Who conducted the interview |
|
|
63
|
+
| **Date** | When the interview took place |
|
|
64
|
+
| **Skill demonstrations** | Concrete examples of skills applied in real-time |
|
|
65
|
+
| **Behaviour observations** | How the candidate acted under pressure, with others |
|
|
66
|
+
| **Self-identified strengths** | What the candidate claims they're good at |
|
|
67
|
+
| **Self-identified gaps** | What the candidate acknowledges as growth areas |
|
|
68
|
+
| **Red flags** | Contradictions with CV, concerning patterns |
|
|
69
|
+
| **Interviewer feedback** | Direct quotes or observations from interviewers |
|
|
70
|
+
| **Level signals** | Autonomy, scope, complexity demonstrated in responses |
|
|
71
|
+
| **Track signals** | Business immersion vs platform thinking in their answers |
|
|
72
|
+
|
|
73
|
+
## Step 2: Load Framework Reference
|
|
74
|
+
|
|
75
|
+
Load the same framework reference used in the screening assessment:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Get the job definition (use the role from the screening assessment or brief)
|
|
79
|
+
npx fit-pathway job {discipline} {level} --track={track}
|
|
80
|
+
|
|
81
|
+
# Get skill detail for skills being re-rated
|
|
82
|
+
npx fit-pathway skill {skill_id}
|
|
83
|
+
|
|
84
|
+
# Get behaviour definitions
|
|
85
|
+
npx fit-pathway behaviour --list
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
If the screening assessment recommended a different level than originally
|
|
89
|
+
targeted (e.g. J100 → J090), load **both** levels for comparison:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npx fit-pathway job {discipline} {original_level} --track={track}
|
|
93
|
+
npx fit-pathway job {discipline} {recommended_level} --track={track}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Step 3: Re-rate Skills with Interview Evidence
|
|
97
|
+
|
|
98
|
+
For each skill in the framework, compare the screening assessment rating against
|
|
99
|
+
what the interview revealed:
|
|
100
|
+
|
|
101
|
+
| Interview Evidence | Rating Adjustment |
|
|
102
|
+
| ------------------------------------------------------- | ------------------------------------- |
|
|
103
|
+
| Candidate demonstrated the skill live, under pressure | **Upgrade** — interview > CV claims |
|
|
104
|
+
| Candidate discussed concrete examples with detail | **Confirm** at screening level or +1 |
|
|
105
|
+
| Candidate gave vague or generic answers about this area | **Hold** at screening level |
|
|
106
|
+
| Candidate struggled or revealed misunderstanding | **Downgrade** from screening level |
|
|
107
|
+
| Candidate self-identified this as a gap | **Downgrade** and note honesty signal |
|
|
108
|
+
| Interviewer explicitly flagged a concern | **Downgrade** with interviewer quote |
|
|
109
|
+
|
|
110
|
+
**Interview evidence outranks CV evidence.** A candidate who claimed
|
|
111
|
+
`practitioner` on their CV but demonstrated `foundational` in the interview
|
|
112
|
+
should be re-rated to `foundational`. The reverse also applies — a candidate
|
|
113
|
+
whose CV undersold them should be upgraded.
|
|
114
|
+
|
|
115
|
+
**Be specific.** Every re-rating must cite a specific moment, quote, or
|
|
116
|
+
observation from the transcript. "Seemed strong" is not evidence.
|
|
117
|
+
|
|
118
|
+
## Step 4: Re-rate Behaviours with Interview Evidence
|
|
119
|
+
|
|
120
|
+
Behaviours are **better assessed in interviews than CVs** because they describe
|
|
121
|
+
how someone acts, not what they've done.
|
|
122
|
+
|
|
123
|
+
For each framework behaviour, look for:
|
|
124
|
+
|
|
125
|
+
| Behaviour | Interview Evidence |
|
|
126
|
+
| -------------------------- | --------------------------------------------------------------- |
|
|
127
|
+
| Own the Outcome | Takes responsibility, doesn't deflect, drives to resolution |
|
|
128
|
+
| Think in Systems | Considers second-order effects, trade-offs, system boundaries |
|
|
129
|
+
| Communicate with Precision | Clear explanations, appropriate detail level, listens actively |
|
|
130
|
+
| Be Polymath Oriented | Draws on diverse knowledge, makes unexpected connections |
|
|
131
|
+
| Don't Lose Your Curiosity | Asks good questions, explores alternatives, admits not knowing |
|
|
132
|
+
|
|
133
|
+
Rate each behaviour using maturity levels:
|
|
134
|
+
|
|
135
|
+
| Maturity | Interview Signal |
|
|
136
|
+
| --------------- | ------------------------------------------------------------- |
|
|
137
|
+
| `emerging` | Behaviour not observed or only when prompted |
|
|
138
|
+
| `developing` | Behaviour present but inconsistent or surface-level |
|
|
139
|
+
| `practicing` | Behaviour consistent and natural throughout the interview |
|
|
140
|
+
| `role_modeling` | Behaviour demonstrated at high level, influenced the room |
|
|
141
|
+
| `exemplifying` | Behaviour exceptional, set the standard for the conversation |
|
|
142
|
+
|
|
143
|
+
## Step 5: Assess Level Fit
|
|
144
|
+
|
|
145
|
+
Based on interview evidence, assess whether the candidate's level estimate
|
|
146
|
+
should change:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Compare what changes between levels
|
|
150
|
+
npx fit-pathway progress {discipline} {level} --track={track}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
| Level Signal in Interview | Implication |
|
|
154
|
+
| ------------------------------------------------------------------- | ------------------------------ |
|
|
155
|
+
| Candidate needed guidance on structuring their approach | Level may be lower than est. |
|
|
156
|
+
| Candidate self-directed, made sound trade-offs independently | Level estimate confirmed |
|
|
157
|
+
| Candidate mentored or coached others during the exercise | Level may be higher than est. |
|
|
158
|
+
| Candidate struggled with complexity appropriate to the target level | Level should be downgraded |
|
|
159
|
+
| Interviewer explicitly suggested a different level | Strong signal — weight heavily |
|
|
160
|
+
|
|
161
|
+
## Step 6: Write Interview Assessment
|
|
162
|
+
|
|
163
|
+
Create `knowledge/Candidates/{Name}/interview-{date}.md`:
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
# Interview Assessment — {Full Name}
|
|
167
|
+
|
|
168
|
+
**Interview type:** {Screening / Decomposition / Panel / Technical}
|
|
169
|
+
**Date:** {YYYY-MM-DD}
|
|
170
|
+
**Interviewers:** {Names}
|
|
171
|
+
**Assessed against:** {Discipline} {Level} — {Track}
|
|
172
|
+
|
|
173
|
+
## Interview Summary
|
|
174
|
+
|
|
175
|
+
{3-5 sentences: what was the interview format, what happened, what was the
|
|
176
|
+
overall impression. Include the key decision or outcome.}
|
|
177
|
+
|
|
178
|
+
## Skill Evidence
|
|
179
|
+
|
|
180
|
+
{Only include skills where the interview provided new evidence — don't
|
|
181
|
+
repeat the full matrix for skills not touched by this interview.}
|
|
182
|
+
|
|
183
|
+
| Skill | Screening Rating | Interview Rating | Change | Evidence |
|
|
184
|
+
| --- | --- | --- | --- | --- |
|
|
185
|
+
| {skill} | {from screening.md} | {updated} | {↑ / ↓ / ―} | {specific transcript evidence} |
|
|
186
|
+
|
|
187
|
+
### Confirmed Strengths
|
|
188
|
+
- {Strength confirmed by interview — cite specific moment}
|
|
189
|
+
|
|
190
|
+
### New Concerns
|
|
191
|
+
- {Concern revealed by interview — cite specific moment}
|
|
192
|
+
|
|
193
|
+
### Resolved Uncertainties
|
|
194
|
+
- {Gap or question from screening that the interview answered}
|
|
195
|
+
|
|
196
|
+
## Behaviour Evidence
|
|
197
|
+
|
|
198
|
+
| Behaviour | Screening Signal | Interview Observation | Updated Maturity |
|
|
199
|
+
| --- | --- | --- | --- |
|
|
200
|
+
| {behaviour} | {from screening.md} | {specific observation} | {maturity level} |
|
|
201
|
+
|
|
202
|
+
## Level Assessment
|
|
203
|
+
|
|
204
|
+
**Screening estimate:** {level from screening.md}
|
|
205
|
+
**Interview evidence suggests:** {confirmed / adjusted level}
|
|
206
|
+
|
|
207
|
+
{Paragraph explaining the level assessment. Reference specific moments from the
|
|
208
|
+
transcript that demonstrate the candidate's autonomy, scope of thinking, and
|
|
209
|
+
complexity handling. If a level adjustment is recommended, explain why using
|
|
210
|
+
framework progression criteria.}
|
|
211
|
+
|
|
212
|
+
## Interviewer Observations
|
|
213
|
+
|
|
214
|
+
{Direct quotes or paraphrased observations from interviewers present.
|
|
215
|
+
Attribute each to the interviewer by name.}
|
|
216
|
+
|
|
217
|
+
- **{Interviewer}:** "{observation or quote}"
|
|
218
|
+
- **{Interviewer}:** "{observation or quote}"
|
|
219
|
+
|
|
220
|
+
## Updated Screening Recommendation
|
|
221
|
+
|
|
222
|
+
**Previous:** {Interview / Interview with focus areas / Pass}
|
|
223
|
+
**Updated:** {Continue interviewing / Adjust level to {X} / Pass}
|
|
224
|
+
|
|
225
|
+
**Remaining uncertainties for next stage:**
|
|
226
|
+
- {What still needs to be validated}
|
|
227
|
+
- {What the next interview should focus on}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Step 7: Generate Panel Brief (if applicable)
|
|
231
|
+
|
|
232
|
+
If more interview stages are planned (the candidate is continuing to panel,
|
|
233
|
+
technical assessment, etc.), create `knowledge/Candidates/{Name}/panel.md`.
|
|
234
|
+
|
|
235
|
+
The panel brief is written **for the next interviewers** — typically business
|
|
236
|
+
colleagues who are not engineers. It must:
|
|
237
|
+
|
|
238
|
+
1. Explain who this person is without jargon
|
|
239
|
+
2. Summarize what previous interviews found
|
|
240
|
+
3. Tell the panel what to probe and why
|
|
241
|
+
4. Provide specific suggested questions
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# Get the framework expectations for the role
|
|
245
|
+
npx fit-pathway job {discipline} {level} --track={track}
|
|
246
|
+
|
|
247
|
+
# Get interview questions relevant to remaining gaps
|
|
248
|
+
npx fit-pathway interview {discipline} {level} --track={track}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
```markdown
|
|
252
|
+
# Panel Brief — {Full Name}
|
|
253
|
+
## {Role Title} — {Level}
|
|
254
|
+
|
|
255
|
+
**Panel date:** {date or TBC}
|
|
256
|
+
**Prepared:** {YYYY-MM-DD}
|
|
257
|
+
**Prepared for:** {Panel interviewers / business colleagues / etc.}
|
|
258
|
+
**Role under evaluation:** {Full role title with level}
|
|
259
|
+
|
|
260
|
+
{If the level has been adjusted from the original target, include a level note
|
|
261
|
+
explaining the change and why it matters.}
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Candidate Snapshot
|
|
266
|
+
|
|
267
|
+
| Field | Detail |
|
|
268
|
+
|---|---|
|
|
269
|
+
| **Current role** | {title — employer} |
|
|
270
|
+
| **Years of experience** | {N}+ years |
|
|
271
|
+
| **Background** | {2-3 key themes} |
|
|
272
|
+
| **Location** | {location} |
|
|
273
|
+
| **Source** | {how they entered the pipeline} |
|
|
274
|
+
|
|
275
|
+
**What makes this candidate interesting:** {2-3 sentences on why this person
|
|
276
|
+
is worth the panel's time. Lead with the most compelling signal.}
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Where We Are in the Process
|
|
281
|
+
|
|
282
|
+
| Stage | Date | Outcome |
|
|
283
|
+
|---|---|---|
|
|
284
|
+
| CV review | {date} | {one-line outcome} |
|
|
285
|
+
| {Interview type} ({interviewer}) | {date} | {one-line outcome} |
|
|
286
|
+
| **{Next stage}** | **{date}** | **← You are here** |
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## What Previous Interviews Told Us
|
|
291
|
+
|
|
292
|
+
{For each completed interview, summarize in plain language:}
|
|
293
|
+
|
|
294
|
+
**What went well:**
|
|
295
|
+
- {strength 1}
|
|
296
|
+
- {strength 2}
|
|
297
|
+
|
|
298
|
+
**What fell short:**
|
|
299
|
+
- {concern 1}
|
|
300
|
+
- {concern 2}
|
|
301
|
+
|
|
302
|
+
**Interviewer conclusion:** {key takeaway in one sentence}
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## What {Level} {Track} Looks Like
|
|
307
|
+
|
|
308
|
+
{Use fit-pathway to describe the role expectations in non-technical language.
|
|
309
|
+
Focus on behaviours and scope, not technical skills.}
|
|
310
|
+
|
|
311
|
+
**Key behaviours at this level:**
|
|
312
|
+
- **{Behaviour}** — {plain-language description of what this means}
|
|
313
|
+
|
|
314
|
+
**Skills most relevant for the panel to probe:**
|
|
315
|
+
- **{Skill}** — {why this matters for the business}
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## What the Panel Should Explore
|
|
320
|
+
|
|
321
|
+
{Frame the remaining uncertainties as questions the panel can answer through
|
|
322
|
+
conversation. These should focus on business-facing capabilities.}
|
|
323
|
+
|
|
324
|
+
### Suggested Focus Areas
|
|
325
|
+
|
|
326
|
+
**1. {Focus area title}**
|
|
327
|
+
{Context for why this matters. Explain the gap or uncertainty.}
|
|
328
|
+
|
|
329
|
+
> *"{Suggested question 1}"*
|
|
330
|
+
> *"{Suggested question 2}"*
|
|
331
|
+
|
|
332
|
+
**2. {Focus area title}**
|
|
333
|
+
{Context.}
|
|
334
|
+
|
|
335
|
+
> *"{Suggested question 1}"*
|
|
336
|
+
> *"{Suggested question 2}"*
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Known Strengths — Lean Into These
|
|
341
|
+
|
|
342
|
+
- **{Strength}:** {evidence summary}
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Known Risks — Probe, Don't Assume
|
|
347
|
+
|
|
348
|
+
- **{Risk}:** {evidence summary and what to look for}
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Screening Recommendation (Pre-Panel)
|
|
353
|
+
|
|
354
|
+
**{Recommendation}**
|
|
355
|
+
|
|
356
|
+
{2-3 sentence summary of the case for this candidate at this level. State what
|
|
357
|
+
the panel should look for to confirm or disconfirm.}
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
*This brief is a hiring aid for the panel. The final decision rests with the
|
|
362
|
+
panel and the hiring manager. All assessments are advisory.*
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
## Step 8: Update Candidate Brief
|
|
366
|
+
|
|
367
|
+
Update `knowledge/Candidates/{Name}/brief.md`:
|
|
368
|
+
|
|
369
|
+
- Add the interview to the **Pipeline** section with date, type, and outcome
|
|
370
|
+
- Add **Interview Notes** section if not present, with key observations
|
|
371
|
+
- Link to the interview assessment: `- [Interview Assessment](./interview-{date}.md)`
|
|
372
|
+
- Link to panel brief if created: `- [Panel Brief](./panel.md)`
|
|
373
|
+
- Update **Status** field to reflect current pipeline stage
|
|
374
|
+
|
|
375
|
+
**Use precise edits — don't rewrite the entire file.**
|
|
376
|
+
|
|
377
|
+
## Quality Checklist
|
|
378
|
+
|
|
379
|
+
- [ ] Every skill re-rating cites a specific moment from the transcript
|
|
380
|
+
- [ ] Behaviour assessments reference observed actions, not claimed traits
|
|
381
|
+
- [ ] Level assessment uses framework progression criteria, not gut feel
|
|
382
|
+
- [ ] Interviewer observations are attributed by name
|
|
383
|
+
- [ ] Panel brief (if created) is written for non-technical readers
|
|
384
|
+
- [ ] Panel brief includes specific suggested questions tied to remaining gaps
|
|
385
|
+
- [ ] Candidate brief pipeline section is updated with interview outcome
|
|
386
|
+
- [ ] Assessment distinguishes between confirmed strengths and new concerns
|
|
387
|
+
- [ ] Remaining uncertainties are specific and actionable for the next stage
|
|
388
|
+
- [ ] No subjective judgments — all assessments grounded in framework data
|
|
389
|
+
- [ ] Gender field unchanged (never updated from interview observations)
|