Files
santifer--career-ops/modes/interview-redflag.md
T
wehub-resource-sync d083df1fdb
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 2s
Web CI / web typecheck + build (push) Failing after 1s
Release Please / release-please (push) Failing after 1s
CodeQL Analysis / Analyze (go) (push) Failing after 16s
chore: import upstream snapshot with attribution
2026-07-13 12:02:43 +08:00

7.3 KiB
Raw Blame History

Mode: interview-redflag — Company Red-Flag Detector

Purpose

Analyse the interviewer's side of session transcripts to surface structural red flags about a company before the candidate accepts an offer or re-applies. Complements patterns (tracker-level win/loss) and #960 / realign-targeting (candidate-side answer clustering).

This mode answers: "Even if I win this process — is this company safe to join?"

Dependency

Requires transcripts produced by modes/interview/debrief.md or modes/interview/practice.md (#956). Each transcript must be saved under interview-prep/sessions/ (gitignored). If no session files exist, exit gracefully with an onboarding message.

Inputs

  • interview-prep/sessions/ — Session transcripts (debrief + practice outputs). One file per round.
  • interview-prep/{company}-{role}.md — Company intel file (for context + output target).
  • config/profile.yml — User profile (for role/archetype context).

Expected transcript filename convention (from #956):

{company-slug}-{role-slug}-{round}-{YYYY-MM-DD}.md

Minimum Threshold

Check: does interview-prep/sessions/ contain at least 1 file?

If not:

"No session transcripts found yet. Run /career-ops interview on a role after your next interview to generate a debrief, then come back to check for red flags."

Exit gracefully.

Step 1 — Discover Sessions

List all .md files in interview-prep/sessions/. Parse each filename using the YYYY-MM-DD date segment as the anchor:

{company-slug}-{role-slug}-{round}-{YYYY-MM-DD}.md
         ↑            ↑        ↑          ↑
 everything     segment    round      date anchor
 before round   immediately label      (trailing)
                before round
  • YYYY-MM-DD is the anchor — find the date, work left from it.
  • round = segment immediately before the date anchor.
  • company+role = everything before round.

Example: acme-corp-swe-hr-2024-01-15.md → company=acme-corp, role=swe, round=hr, date=2024-01-15.

Group files by {company-slug}. For each company group, note:

  • Number of rounds on file
  • Date range of sessions
  • Role slugs covered (a company may have sessions across multiple roles)

Step 2 — Classify Interviewer Signals Per Session

For each transcript, read only the interviewer's turns (lines attributed to the interviewer, moderator, or prefixed with role labels). Ignore candidate turns for this pass.

Mark each of the four signal types as present or absent for the session. A signal is present if it is directly observable in the transcript — do not infer. Single occurrence within a session is sufficient to mark it present; noise filtering happens at the company-level aggregation step (Step 3).

Signal taxonomy

Signal What to look for
Scope ambiguity Questions with no measurable criteria ("tell me about yourself, anything really"; "just talk us through whatever you think is relevant"); no definition of what a good answer looks like; role responsibilities described in circular or contradictory terms across interviewers
Defensive closure Interviewer shortens or redirects after a technically complete / superior candidate answer; follow-up probes absent when answer exceeds expectations; session ends abruptly after candidate gives a comprehensive response without probing further
Evaluator competency gap Interviewer cannot engage with a domain-correct answer (silence, non-sequitur follow-up, pivot to unrelated topic); senior interviewer asks questions whose framing reveals unfamiliarity with the candidate's stated domain
Process signals Contradictory criteria across interviewers in the same company; structured follow-up absent across all rounds; interviewers visibly unaware of previous round's content; evaluation criteria shift mid-session

Record which signals are present per session. Do not infer — only flag what is explicitly observable in the transcript text.

Step 3 — Aggregate Per Company

For each company, count how many sessions triggered each signal type.

Compute a red-flag score:

  • Each signal type present in 1 session: +1
  • Each signal type present in 2+ sessions (pattern, not noise): +2
  • Maximum possible: 8 (4 signal types × 2)

Step 4 — Assign Warning Level

Score Level Label
01 None No structural red flags detected
23 Caution ⚠️ Enter with eyes open
4+ Warning 🚩 Reconsider

Step 5 — Generate Output

Output routing: Red-flag analysis is company-wide (signals aggregate across rounds regardless of role). Write to a single company-level file: interview-prep/{company-slug}-redflags.md. Create it if absent. If sessions span multiple role slugs, note all roles in the header. Do not append to per-role intel files — those are role-specific, this is company-specific.

Write the following structure:

# Red-Flag Analysis — {Company}

**Roles covered:** {role-slug(s)}
**Sessions analysed:** {N} round(s) — {date range}
**Warning level:** {emoji} {label}

### Signals detected

| Signal | Sessions | Severity |
|--------|----------|----------|
| Scope ambiguity | {n}/{total} | {single/pattern} |
| Defensive closure | {n}/{total} | {single/pattern} |
| Evaluator competency gap | {n}/{total} | {single/pattern} |
| Process signals | {n}/{total} | {single/pattern} |

### What this means

{13 sentences interpreting the pattern in plain language. What specifically did the interviewers do? What does this predict about the role? Be direct — if the signal predicts the candidate will absorb undefined responsibility, say so.}

### Recommended action

{One of:
- "No action needed — proceed."
- "Before accepting: clarify [specific scope/responsibility] in writing."
- "Before accepting: ask [specific questions] to verify the concern."
- "Reconsider: the pattern across {N} rounds suggests [specific risk]."}

*Analysis based on interviewer behaviour only. Candidate decides.*

Step 6 — Present Summary

After writing the file, show the user:

Red-Flag Analysis — {Company}
──────────────────────────────
Rounds analysed: {N}
Warning level:   {emoji} {label}

Signals:
  • {signal}: {n}/{total} sessions {(pattern) if 2+}
  ...

→ Full analysis written to interview-prep/{company-slug}-redflags.md

If multiple companies were analysed in one run, show a summary table:

Company          Rounds   Level
──────────────── ──────   ─────────────────────────
{Company A}      3        🚩 Reconsider
{Company B}      1        ⚠️ Enter with eyes open
{Company C}      2        No red flags

Scope / Non-Goals

  • No auto-action — never edits portals.yml, modes/_profile.md, or data/applications.md. Advisory only.
  • No new dependencies — prompt-level analysis over local files.
  • Privacy — reads only local, gitignored session files. Nothing leaves the machine.
  • Not a Glassdoor replacement — analyses this candidate's live experience in this process, not crowd-sourced opinion.
  • Candidate-side analysis is out of scope — use realign-targeting (#960) for that.