@forwardimpact/basecamp 2.9.1 → 2.9.2
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/template/.claude/agents/recruiter.md +5 -5
- package/template/.claude/skills/assess-interview/SKILL.md +37 -36
- package/template/.claude/skills/extract-entities/SKILL.md +9 -8
- package/template/.claude/skills/hiring-decision/SKILL.md +21 -17
- package/template/.claude/skills/meeting-prep/SKILL.md +2 -2
- package/template/.claude/skills/screen-cv/SKILL.md +8 -6
- package/template/.claude/skills/track-candidates/SKILL.md +14 -11
- package/template/.claude/skills/workday-requisition/SKILL.md +2 -0
- package/template/CLAUDE.md +7 -7
package/package.json
CHANGED
|
@@ -30,11 +30,11 @@ reference framework data — never rely on subjective impressions.
|
|
|
30
30
|
Every candidate progresses through three assessment stages. Each stage has a
|
|
31
31
|
dedicated skill and produces a specific artifact:
|
|
32
32
|
|
|
33
|
-
| Stage
|
|
34
|
-
|
|
35
|
-
| 1. Screen | `screen-cv`
|
|
36
|
-
| 2. Assess | `assess-interview` | Transcript arrives
|
|
37
|
-
| 3. Decide | `hiring-decision`
|
|
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
38
|
|
|
39
39
|
**Stage progression rules:**
|
|
40
40
|
|
|
@@ -46,8 +46,8 @@ Run this skill:
|
|
|
46
46
|
## Outputs
|
|
47
47
|
|
|
48
48
|
- `knowledge/Candidates/{Name}/interview-{date}.md` — per-interview assessment
|
|
49
|
-
- `knowledge/Candidates/{Name}/panel.md` — brief for next-stage
|
|
50
|
-
|
|
49
|
+
- `knowledge/Candidates/{Name}/panel.md` — brief for next-stage interviewers (if
|
|
50
|
+
further interviews are planned)
|
|
51
51
|
- Updated `knowledge/Candidates/{Name}/brief.md` — pipeline and notes enriched
|
|
52
52
|
|
|
53
53
|
---
|
|
@@ -56,19 +56,19 @@ Run this skill:
|
|
|
56
56
|
|
|
57
57
|
Read the transcript file(s). For each transcript, extract:
|
|
58
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
|
|
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
72
|
|
|
73
73
|
## Step 2: Load Framework Reference
|
|
74
74
|
|
|
@@ -122,23 +122,23 @@ how someone acts, not what they've done.
|
|
|
122
122
|
|
|
123
123
|
For each framework behaviour, look for:
|
|
124
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
|
|
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
132
|
|
|
133
133
|
Rate each behaviour using maturity levels:
|
|
134
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
|
|
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
142
|
|
|
143
143
|
## Step 5: Assess Level Fit
|
|
144
144
|
|
|
@@ -150,13 +150,13 @@ should change:
|
|
|
150
150
|
npx fit-pathway progress {discipline} {level} --track={track}
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
| Level Signal in Interview
|
|
153
|
+
| Level Signal in Interview | Implication |
|
|
154
154
|
| ------------------------------------------------------------------- | ------------------------------ |
|
|
155
|
-
| Candidate needed guidance on structuring their approach
|
|
156
|
-
| Candidate self-directed, made sound trade-offs independently
|
|
157
|
-
| Candidate mentored or coached others during the exercise
|
|
158
|
-
| Candidate struggled with complexity appropriate to the target level
|
|
159
|
-
| Interviewer explicitly suggested a different level
|
|
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
160
|
|
|
161
161
|
## Step 6: Write Interview Assessment
|
|
162
162
|
|
|
@@ -368,7 +368,8 @@ Update `knowledge/Candidates/{Name}/brief.md`:
|
|
|
368
368
|
|
|
369
369
|
- Add the interview to the **Pipeline** section with date, type, and outcome
|
|
370
370
|
- Add **Interview Notes** section if not present, with key observations
|
|
371
|
-
- Link to the interview assessment:
|
|
371
|
+
- Link to the interview assessment:
|
|
372
|
+
`- [Interview Assessment](./interview-{date}.md)`
|
|
372
373
|
- Link to panel brief if created: `- [Panel Brief](./panel.md)`
|
|
373
374
|
- Update **Status** field to reflect current pipeline stage
|
|
374
375
|
|
|
@@ -401,8 +401,8 @@ Scan email subjects and bodies for requisition numbers (e.g. 7-digit Workday
|
|
|
401
401
|
IDs). When found:
|
|
402
402
|
|
|
403
403
|
1. Check if a Role file exists: `ls knowledge/Roles/ | grep "{req_number}"`
|
|
404
|
-
2. If **no Role file exists**, create a stub (see `track-candidates` Step 0b
|
|
405
|
-
|
|
404
|
+
2. If **no Role file exists**, create a stub (see `track-candidates` Step 0b for
|
|
405
|
+
the template). Search the knowledge graph for context:
|
|
406
406
|
```bash
|
|
407
407
|
rg "{req_number}" knowledge/
|
|
408
408
|
```
|
|
@@ -412,6 +412,7 @@ IDs). When found:
|
|
|
412
412
|
### Hiring Manager Inference from Calendar Events
|
|
413
413
|
|
|
414
414
|
When a calendar event title matches interview-related patterns:
|
|
415
|
+
|
|
415
416
|
- "Interview", "Screening", "Screen", "Decomposition", "Panel", "Technical
|
|
416
417
|
Assessment", "Candidate"
|
|
417
418
|
- Combined with a person name (cross-reference `knowledge/Candidates/`)
|
|
@@ -421,8 +422,8 @@ Extract the **organizer** of the event. If the organizer is NOT the user (from
|
|
|
421
422
|
|
|
422
423
|
1. Look up the organizer in `knowledge/People/` — check if they have a role
|
|
423
424
|
indicating they manage a team or are described as a hiring manager.
|
|
424
|
-
2. Look up which candidate is being interviewed — check their `brief.md` for
|
|
425
|
-
|
|
425
|
+
2. Look up which candidate is being interviewed — check their `brief.md` for a
|
|
426
|
+
`Req` field.
|
|
426
427
|
3. If a Req is known, update the corresponding `knowledge/Roles/*.md` file's
|
|
427
428
|
`Hiring manager` field (only if currently `—`).
|
|
428
429
|
4. Update the candidate's `brief.md` `Hiring manager` field if currently `—`.
|
|
@@ -436,8 +437,8 @@ When processing email threads that reference candidates (by name match against
|
|
|
436
437
|
2. If a CC'd person's note mentions "recruiter", "talent acquisition", or a
|
|
437
438
|
similar recruiting role, they are likely the internal recruiter for this
|
|
438
439
|
candidate's role.
|
|
439
|
-
3. Update the candidate's `brief.md` recruiter field and the corresponding
|
|
440
|
-
|
|
440
|
+
3. Update the candidate's `brief.md` recruiter field and the corresponding Role
|
|
441
|
+
file if the field is currently `—`.
|
|
441
442
|
|
|
442
443
|
### Domain Lead Resolution
|
|
443
444
|
|
|
@@ -445,8 +446,8 @@ When a hiring manager is newly identified (from calendar or email inference),
|
|
|
445
446
|
attempt to resolve the domain lead:
|
|
446
447
|
|
|
447
448
|
1. Read the hiring manager's People note for a `**Reports to:**` field.
|
|
448
|
-
2. Walk up the reporting chain until reaching a VP or senior leader listed in
|
|
449
|
-
|
|
449
|
+
2. Walk up the reporting chain until reaching a VP or senior leader listed in a
|
|
450
|
+
stakeholder map or organizational hierarchy note.
|
|
450
451
|
3. Update both the Role file's `Domain lead` and the candidate brief's
|
|
451
452
|
`Domain lead`.
|
|
452
453
|
|
|
@@ -32,7 +32,8 @@ Run this skill:
|
|
|
32
32
|
|
|
33
33
|
- `fit-pathway` CLI installed (`npx fit-pathway` must work)
|
|
34
34
|
- Screening assessment: `knowledge/Candidates/{Name}/screening.md`
|
|
35
|
-
- At least one interview assessment:
|
|
35
|
+
- At least one interview assessment:
|
|
36
|
+
`knowledge/Candidates/{Name}/interview-*.md`
|
|
36
37
|
- Candidate brief: `knowledge/Candidates/{Name}/brief.md`
|
|
37
38
|
- Transcripts provide additional context but are not strictly required if
|
|
38
39
|
interview assessments exist
|
|
@@ -72,9 +73,9 @@ Read in order:
|
|
|
72
73
|
|
|
73
74
|
Build a chronological evidence timeline:
|
|
74
75
|
|
|
75
|
-
| Date
|
|
76
|
-
|
|
77
|
-
| {date} | CV Screening
|
|
76
|
+
| Date | Stage | Source | Key Finding |
|
|
77
|
+
| ------ | ---------------- | ------------------- | ------------- |
|
|
78
|
+
| {date} | CV Screening | screening.md | {key finding} |
|
|
78
79
|
| {date} | {Interview type} | interview-{date}.md | {key finding} |
|
|
79
80
|
|
|
80
81
|
## Step 2: Build Final Skill Profile
|
|
@@ -104,14 +105,14 @@ For each skill, record:
|
|
|
104
105
|
- **Final rating** — the proficiency level supported by the best evidence
|
|
105
106
|
- **Best evidence source** — which stage provided the strongest signal
|
|
106
107
|
- **Trajectory** — did the rating improve, decline, or hold across stages?
|
|
107
|
-
- **Confidence** — high (demonstrated live), medium (discussed well), low
|
|
108
|
-
|
|
108
|
+
- **Confidence** — high (demonstrated live), medium (discussed well), low (CV
|
|
109
|
+
only or thin evidence)
|
|
109
110
|
|
|
110
111
|
## Step 3: Build Final Behaviour Profile
|
|
111
112
|
|
|
112
113
|
For each framework behaviour, determine the **final maturity** using the same
|
|
113
|
-
evidence hierarchy. Behaviours assessed in interviews carry far more weight
|
|
114
|
-
|
|
114
|
+
evidence hierarchy. Behaviours assessed in interviews carry far more weight than
|
|
115
|
+
CV signals.
|
|
115
116
|
|
|
116
117
|
```bash
|
|
117
118
|
npx fit-pathway behaviour --list
|
|
@@ -125,7 +126,8 @@ For each behaviour:
|
|
|
125
126
|
|
|
126
127
|
## Step 4: Confirm Level and Track
|
|
127
128
|
|
|
128
|
-
Using the complete evidence profile, make a final level and track
|
|
129
|
+
Using the complete evidence profile, make a final level and track
|
|
130
|
+
recommendation:
|
|
129
131
|
|
|
130
132
|
```bash
|
|
131
133
|
# Compare adjacent levels
|
|
@@ -134,13 +136,13 @@ npx fit-pathway job {discipline} {target_level} --track={track}
|
|
|
134
136
|
npx fit-pathway progress {discipline} {lower_level} --track={track}
|
|
135
137
|
```
|
|
136
138
|
|
|
137
|
-
| Question
|
|
138
|
-
|
|
|
139
|
+
| Question | Answer informs |
|
|
140
|
+
| ------------------------------------------------------------ | ----------------------- |
|
|
139
141
|
| Does the candidate meet ≥ 70% of skills at the target level? | Level confirmation |
|
|
140
|
-
| Were level concerns from screening resolved in interviews?
|
|
141
|
-
| Did interviewers explicitly suggest a different level?
|
|
142
|
-
| Does the candidate's scope and autonomy match the level?
|
|
143
|
-
| Which track energized the candidate in interviews?
|
|
142
|
+
| Were level concerns from screening resolved in interviews? | Level upgrade/downgrade |
|
|
143
|
+
| Did interviewers explicitly suggest a different level? | Strong level signal |
|
|
144
|
+
| Does the candidate's scope and autonomy match the level? | Level fit |
|
|
145
|
+
| Which track energized the candidate in interviews? | Track confirmation |
|
|
144
146
|
|
|
145
147
|
## Step 4b: Read Role Context
|
|
146
148
|
|
|
@@ -337,14 +339,16 @@ rests with the hiring manager. All assessments are advisory.*
|
|
|
337
339
|
|
|
338
340
|
Update `knowledge/Candidates/{Name}/brief.md`:
|
|
339
341
|
|
|
340
|
-
- Update **Status** to reflect the recommendation (`recommended` /
|
|
342
|
+
- Update **Status** to reflect the recommendation (`recommended` /
|
|
343
|
+
`not-recommended`)
|
|
341
344
|
- Add link: `- [Hiring Recommendation](./recommendation.md)`
|
|
342
345
|
- Add final pipeline entry with the recommendation date and outcome
|
|
343
346
|
|
|
344
347
|
Update `knowledge/Candidates/Insights.md` with any cross-candidate observations:
|
|
345
348
|
|
|
346
349
|
- If this candidate is the strongest at their level, note it
|
|
347
|
-
- If this candidate revealed a pattern about a sourcing channel, note the
|
|
350
|
+
- If this candidate revealed a pattern about a sourcing channel, note the
|
|
351
|
+
channel
|
|
348
352
|
- If the level adjustment has implications for other candidates, note it
|
|
349
353
|
|
|
350
354
|
**Use precise edits — don't rewrite entire files.**
|
|
@@ -143,8 +143,8 @@ When preparing for interview meetings (title contains "Interview", "Screening",
|
|
|
143
143
|
3. **Include in the briefing:**
|
|
144
144
|
- Candidate's current status, skills, and screening recommendation
|
|
145
145
|
- Role context: hiring manager, domain lead, remaining positions
|
|
146
|
-
- Other candidates on the same requisition and their statuses (from the
|
|
147
|
-
|
|
146
|
+
- Other candidates on the same requisition and their statuses (from the Role
|
|
147
|
+
file's Candidates table)
|
|
148
148
|
- Previous interview assessments if this is a second/later stage
|
|
149
149
|
- Panel brief if one exists (`panel.md`)
|
|
150
150
|
4. **Format as a dedicated section:**
|
|
@@ -43,8 +43,8 @@ Run this skill:
|
|
|
43
43
|
- Existing candidate brief (if available):
|
|
44
44
|
`knowledge/Candidates/{Name}/brief.md`
|
|
45
45
|
- Role file (if candidate has a `Req`): `knowledge/Roles/*.md` — provides
|
|
46
|
-
`Level`, `Discipline`, `Hiring manager`, and `Domain lead` for
|
|
47
|
-
|
|
46
|
+
`Level`, `Discipline`, `Hiring manager`, and `Domain lead` for more accurate
|
|
47
|
+
screening
|
|
48
48
|
|
|
49
49
|
## Outputs
|
|
50
50
|
|
|
@@ -231,7 +231,7 @@ Classify each skill as:
|
|
|
231
231
|
|
|
232
232
|
Create `knowledge/Candidates/{Name}/screening.md`:
|
|
233
233
|
|
|
234
|
-
|
|
234
|
+
````markdown
|
|
235
235
|
# CV Screening — {Full Name}
|
|
236
236
|
|
|
237
237
|
**Assessed against:** {Discipline} {Level} — {Track}
|
|
@@ -323,10 +323,11 @@ These are the specific uncertainties that interviews must resolve.}
|
|
|
323
323
|
|
|
324
324
|
```bash
|
|
325
325
|
npx fit-pathway interview {discipline} {level} --track={track}
|
|
326
|
-
|
|
326
|
+
````
|
|
327
|
+
|
|
328
|
+
{Select 3-5 questions most relevant to the identified gaps and focus areas. For
|
|
329
|
+
each question, note which gap or uncertainty it targets.}
|
|
327
330
|
|
|
328
|
-
{Select 3-5 questions most relevant to the identified gaps and focus areas.
|
|
329
|
-
For each question, note which gap or uncertainty it targets.}
|
|
330
331
|
```
|
|
331
332
|
|
|
332
333
|
## Step 7: Enrich Candidate Brief
|
|
@@ -366,3 +367,4 @@ to create the candidate profile from email threads.
|
|
|
366
367
|
- [ ] Candidate brief links to screening using exact text
|
|
367
368
|
`[CV Screening](./screening.md)`
|
|
368
369
|
- [ ] Gender field set only from explicit pronouns/titles (never name-inferred)
|
|
370
|
+
```
|
|
@@ -30,7 +30,8 @@ Run this skill:
|
|
|
30
30
|
- `~/.cache/fit/basecamp/apple_mail/attachments/` — CV/resume attachments
|
|
31
31
|
- `~/.cache/fit/basecamp/apple_calendar/*.json` — synced calendar events (for
|
|
32
32
|
cross-source inference)
|
|
33
|
-
- `knowledge/Roles/*.md` — open role/requisition files (for metadata
|
|
33
|
+
- `knowledge/Roles/*.md` — open role/requisition files (for metadata
|
|
34
|
+
inheritance)
|
|
34
35
|
- `~/.cache/fit/basecamp/state/graph_processed` — tracks processed files (shared
|
|
35
36
|
with `extract-entities`)
|
|
36
37
|
- `USER.md` — user identity for self-exclusion
|
|
@@ -170,8 +171,8 @@ Sort by First seen (newest first).
|
|
|
170
171
|
If a Role file has a hiring manager but no domain lead, attempt to resolve it:
|
|
171
172
|
|
|
172
173
|
1. Read the hiring manager's People note for a `**Reports to:**` field.
|
|
173
|
-
2. Walk up the reporting chain until reaching a VP or senior leader listed in
|
|
174
|
-
|
|
174
|
+
2. Walk up the reporting chain until reaching a VP or senior leader listed in a
|
|
175
|
+
stakeholder map or organizational hierarchy note.
|
|
175
176
|
3. Set `Domain lead` on the Role file.
|
|
176
177
|
|
|
177
178
|
---
|
|
@@ -272,14 +273,16 @@ These fields are rarely available in a single email. Use the following
|
|
|
272
273
|
resolution chain, stopping at the first match:
|
|
273
274
|
|
|
274
275
|
1. **Req-first inheritance:** If the candidate has a `Req`, look up the matching
|
|
275
|
-
`knowledge/Roles/*.md` file. Inherit `Hiring manager` and `Domain lead`
|
|
276
|
-
|
|
276
|
+
`knowledge/Roles/*.md` file. Inherit `Hiring manager` and `Domain lead` from
|
|
277
|
+
the Role file.
|
|
277
278
|
|
|
278
279
|
2. **Calendar inference:** Search synced calendar events for interview events
|
|
279
280
|
mentioning the candidate's name:
|
|
281
|
+
|
|
280
282
|
```bash
|
|
281
283
|
rg -l "{Candidate Name}" ~/.cache/fit/basecamp/apple_calendar/
|
|
282
284
|
```
|
|
285
|
+
|
|
283
286
|
Read matching events. The **organizer** of an interview event (who is not the
|
|
284
287
|
user from `USER.md`) is likely the hiring manager. Record this on the
|
|
285
288
|
candidate brief and update the Role file if it was missing.
|
|
@@ -573,12 +576,12 @@ Format: one bullet per insight under `## Placement Notes`, with
|
|
|
573
576
|
|
|
574
577
|
After writing candidate notes, verify links go both ways:
|
|
575
578
|
|
|
576
|
-
| If you add... | Then also add...
|
|
577
|
-
| ------------------------ |
|
|
578
|
-
| Candidate → Organization | Organization → Candidate
|
|
579
|
-
| Candidate → Recruiter | Recruiter → Candidate (in Activity section)
|
|
580
|
-
| Candidate → Project | Project → Candidate (in People section)
|
|
581
|
-
| Candidate → Role | Role → Candidate (in Candidates table — rebuilt by sync)
|
|
579
|
+
| If you add... | Then also add... |
|
|
580
|
+
| ------------------------ | -------------------------------------------------------- |
|
|
581
|
+
| Candidate → Organization | Organization → Candidate |
|
|
582
|
+
| Candidate → Recruiter | Recruiter → Candidate (in Activity section) |
|
|
583
|
+
| Candidate → Project | Project → Candidate (in People section) |
|
|
584
|
+
| Candidate → Role | Role → Candidate (in Candidates table — rebuilt by sync) |
|
|
582
585
|
|
|
583
586
|
Use absolute paths: `[[Candidates/Name/brief|Name]]`,
|
|
584
587
|
`[[Organizations/Agency]]`, `[[People/Recruiter]]`.
|
|
@@ -209,9 +209,11 @@ The export rarely contains organizational hierarchy information directly. Use
|
|
|
209
209
|
cross-referencing to resolve it:
|
|
210
210
|
|
|
211
211
|
1. **Search the knowledge graph** for mentions of the req number:
|
|
212
|
+
|
|
212
213
|
```bash
|
|
213
214
|
rg "{Req ID}" knowledge/
|
|
214
215
|
```
|
|
216
|
+
|
|
215
217
|
Look in project timelines, People notes, and Topics for context about which
|
|
216
218
|
area/VP owns this req.
|
|
217
219
|
|
package/template/CLAUDE.md
CHANGED
|
@@ -81,14 +81,14 @@ This knowledge base is maintained by a team of agents, each defined in
|
|
|
81
81
|
`.claude/agents/`. They are woken on a schedule by the Basecamp scheduler. Each
|
|
82
82
|
wake, they observe KB state, decide the most valuable action, and execute.
|
|
83
83
|
|
|
84
|
-
| Agent | Domain | Schedule | Skills
|
|
85
|
-
| ------------------ | ------------------------------ | --------------- |
|
|
86
|
-
| **postman** | Email triage and drafts | Every 5 min | sync-apple-mail, draft-emails
|
|
87
|
-
| **concierge** | Meeting prep and transcripts | Every 10 min | sync-apple-calendar, meeting-prep, process-hyprnote
|
|
88
|
-
| **librarian** | Knowledge graph maintenance | Every 15 min | extract-entities, organize-files, manage-tasks
|
|
84
|
+
| Agent | Domain | Schedule | Skills |
|
|
85
|
+
| ------------------ | ------------------------------ | --------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
86
|
+
| **postman** | Email triage and drafts | Every 5 min | sync-apple-mail, draft-emails |
|
|
87
|
+
| **concierge** | Meeting prep and transcripts | Every 10 min | sync-apple-calendar, meeting-prep, process-hyprnote |
|
|
88
|
+
| **librarian** | Knowledge graph maintenance | Every 15 min | extract-entities, organize-files, manage-tasks |
|
|
89
89
|
| **recruiter** | Engineering recruitment | Every 30 min | track-candidates, screen-cv, assess-interview, hiring-decision, workday-requisition, right-to-be-forgotten, fit-pathway, fit-map |
|
|
90
|
-
| **head-hunter** | Passive talent scouting | Every 60 min | scan-open-candidates, fit-pathway, fit-map
|
|
91
|
-
| **chief-of-staff** | Daily briefings and priorities | 7am, Mon 7:30am | weekly-update _(Mon)_, _(reads all state for daily briefings)_
|
|
90
|
+
| **head-hunter** | Passive talent scouting | Every 60 min | scan-open-candidates, fit-pathway, fit-map |
|
|
91
|
+
| **chief-of-staff** | Daily briefings and priorities | 7am, Mon 7:30am | weekly-update _(Mon)_, _(reads all state for daily briefings)_ |
|
|
92
92
|
|
|
93
93
|
Each agent writes a triage file to `~/.cache/fit/basecamp/state/` every wake
|
|
94
94
|
cycle. The naming convention is `{agent}_triage.md`:
|