Skip to content

Latest commit

 

History

History
92 lines (70 loc) · 3.49 KB

File metadata and controls

92 lines (70 loc) · 3.49 KB

Mode: rejection — Rejection Analysis & Learning Loop

When the user reports a rejection, capture structured data and surface patterns over time.

This mode is additive. It uses the existing notes column in tracker files (no new columns) and appends a section to existing reports (no changes to report format).

Use These Trigger Conditions

  • User says "I got rejected from [company]".
  • User updates a tracker entry to Rejected.
  • User runs /job-forge rejection to review patterns.

Step 1 — Record The Rejection

Update the entry in data/applications/ (the day file where the entry exists):

  • Status → Rejected
  • Notes → append rejection info in compact format: REJ@{stage}:{reason}

Stages (ask the user which applies):

Stage Code Meaning
Resume screen resume Rejected before any human contact
Phone screen phone Rejected after initial call
Technical interview tech Rejected after technical assessment
Hiring manager hm Rejected after HM interview
Final round final Rejected at final stage
Offer pulled offer Offer was extended then retracted
Unknown unk User doesn't know

Reasons (ask the user if they have signal, otherwise unk):

  • exp — not enough experience / seniority
  • skill — missing specific technical skill
  • culture — culture/team fit
  • comp — comp expectations too high
  • geo — location/timezone mismatch
  • internal — went with internal candidate
  • closed — role was closed/frozen
  • unk — no feedback given

Example notes: REJ@tech:skill — failed system design round

Step 2 — Append To Report

Append a ## Rejection section to the report in reports/ when one exists:

## Rejection
**Date:** YYYY-MM-DD
**Stage:** Technical interview
**Reason:** Missing specific skill (system design at scale)
**Signal:** What this tells us about future applications for this archetype

Step 3 — Run Pattern Analysis

Run pattern analysis when the user runs /job-forge rejection without a specific company. Analyze ALL rejected entries:

  1. Read all day files in data/applications/ — filter to Rejected entries
  2. Parse REJ@{stage}:{reason} from notes column
  3. Aggregate patterns:
## Rejection Patterns — {date}

### By Stage
- Resume screen: N rejections (N% of all rejections)
- Technical: N rejections
- ...

### By Archetype
- LLMOps roles: N/M rejected (N% rejection rate)
- Platform roles: N/M rejected
- ...

### By Score Range
- Score 4.0+: N/M rejected (should be low — if high, scoring model needs recalibration)
- Score 3.0-3.9: N/M rejected
- Score <3.0: N/M rejected (expected to be high)

### Signals
- [If 3+ resume-screen rejections for same archetype]: "Consider stronger keyword injection for {archetype} roles — see pdf.md anti-AI-detection rules"
- [If high-score offers getting rejected]: "Scoring model may be inflated — review calibration anchors in _shared.md"
- [If rejections cluster at tech stage]: "Story bank may need stronger technical stories for {archetype} — review interview-prep/story-bank.md"
- [If comp rejections]: "Consider adjusting target range in config/profile.yml"

Skip These Actions (Out Of Scope)

  • Does NOT change the scoring model or thresholds automatically
  • Does NOT modify reports retroactively (only appends Rejection section)
  • Does NOT add new columns to tracker files (uses notes column)
  • Does NOT require any changes to merge-tracker, dedup, or verify scripts