| name | interview-prep |
| description | Senior data analyst interview prep. Tailors behavioral and project stories for HR, Hiring Manager, Peer/Senior Analyst, and VP/Executive interviewers using STAR + 4D Action (Diagnose/Decide/Drive/De-risk) + 4O Result (Outcome/Impact/Evidence/Learning) frameworks. Generates a formatted .docx story pack. |
| allowed-tools | WebSearch WebFetch Bash(python *) Bash(interview-pack *) |
Senior Data Analyst Interview Prep Skill
When This Skill Is Invoked
Use this skill when the user asks to:
- Prepare, rewrite, or tailor interview stories or behavioral answers
- Adapt stories for HR, hiring manager, peer analyst, or VP/executive audiences
- Make answers sound more senior or analytically rigorous
- Predict likely interview questions when no stories or JD are provided
- Generate an interview story pack as a .docx file
Required Inputs (Ask If Not Provided)
- Story files — raw project stories, behavioral stories, resume excerpts, or pasted notes
- Job description — paste or file; used for role priority analysis
If either is missing, acknowledge it explicitly and follow the fallback paths defined in each stage.
Skill Data Directory
At the start of every session, resolve the data path using this logic:
- Run
interview-pack --skill-dir. If it succeeds, store the printed path as SKILL_DATA_DIR.
- If
interview-pack is not found (skill was installed via direct git clone — Option 1), use ${CLAUDE_SKILL_DIR} as SKILL_DATA_DIR instead. The full repo is present there and all data files are accessible directly.
All Reference: paths and config loading below use SKILL_DATA_DIR.
Docx Generation
When any stage requires generating or refreshing the .docx file:
- Run
interview-pack interview_pack_data.json if interview-pack is available in PATH.
- If not available, run
python ${CLAUDE_SKILL_DIR}/scripts/generate_docx.py interview_pack_data.json instead.
Configuration
Load defaults from $SKILL_DATA_DIR/config/settings.json. Key settings:
scoring_threshold: minimum score (default 8.5/10) before output is finalized
max_rewrite_attempts: max revision loops (default 3)
fallback_web_research_enabled: use web search when JD or stories are missing (default true)
realism_review_required: run Stage 4 plausibility review (default true)
role_priority_analysis_required: run Stage 0 (default true)
Stage Gate Protocol
This rule applies to every stage that generates substantive content (Stages 2–5):
- Do NOT print the generated content (questions, story versions, scorecards, plausibility findings) into the chat.
- Write all generated content into
interview_pack_data.json in the current working directory.
- Generate or refresh the
.docx file using the Docx Generation method defined above.
- Notify the user in chat with:
- The stage name and a one-sentence summary of what was generated
- The exact
.docx file path
- A prompt asking them to review and confirm before the next stage begins
- Wait for the user's confirmation ("looks good", "continue", or feedback) before proceeding.
If the user provides feedback instead of approval, incorporate it, regenerate the docx, and ask again.
Stages 0 and 1 are diagnostic — show a brief analysis summary in chat (no long content blocks) and proceed automatically unless a critical gap requires user input.
Workflow — Execute All Stages in Order
STAGE 0 — Role Priority Analysis
Reference: $SKILL_DATA_DIR/prompts/role_priority_analysis.md
Purpose: Determine what the role cares about most before writing anything.
Tasks:
- Read the job description if provided
- Identify top competencies, seniority signals, technical expectations, collaboration requirements
- Map likely priorities by interviewer type: HR, Hiring Manager, Peer Analyst, VP/Executive
- If no JD: use web research (company name + role if known) or generate a best-effort role map
- Produce a concise "What This Role Cares About Most" summary
Chat output: Show the role priority summary and interviewer priority map briefly in chat — this is diagnostic context the user should see before stories are drafted.
Completion message: Stage 0 Completed — proceeding to intake review.
STAGE 1 — Intake and Review
Reference: $SKILL_DATA_DIR/prompts/intake_review.md
Purpose: Understand what the user has actually done and where the gaps are.
Tasks:
- Review all provided story files and background
- Identify: vague ownership, missing metrics, weak results, unclear problem framing, poor seniority signals, missing stakeholder logic
- Determine if enough information exists for grounded story drafting
- If insufficient: switch to guided drafting mode with explicit placeholders
Chat output: Show the intake summary and gaps list in chat — the user needs to see what gaps were identified and confirm the readiness assessment before drafting begins. If critical gaps exist that require user input, stop and ask before proceeding.
Completion message: Stage 1 Completed — proceeding to draft stories. (or Stage 1 Completed — switching to research fallback mode. if materials are insufficient)
STAGE 2 — Research Fallback (Run Only If JD or Stories Are Missing)
Reference: $SKILL_DATA_DIR/prompts/fallback_research.md
Purpose: Provide value even when source materials are absent.
Tasks:
- If JD missing: research company/role interview patterns, likely competencies, recent expectations
- If stories missing: generate likely questions by interviewer type using role/company knowledge
- Cluster questions by: behavioral, project/technical, stakeholder/collaboration, business judgment, strategic
- Label all research-based content clearly as: "Likely Questions", "Probable Interview Focus", or "Research-Based Estimate"
- Never present predictions as verified facts
Gate behavior (Stage Gate Protocol applies):
- Write the full question pack and focus areas into
interview_pack_data.json
- Generate the
.docx file
- Do NOT print the questions to chat
- Notify the user:
Stage 2 Completed. The likely question pack has been written to [filename.docx]. Please open and review — reply "continue" to proceed to story drafting, or share feedback to revise.
- Wait for confirmation before proceeding to Stage 3.
STAGE 3 — Draft Interviewer-Specific Story Versions
Reference: $SKILL_DATA_DIR/prompts/story_rewrite_rules.md
Reference: $SKILL_DATA_DIR/templates/interviewer_output_formats.md
Purpose: Rewrite or draft optimized stories for each interviewer type.
Core Writing Rules (must follow for every story):
STAR Structure:
- Situation: enough context only — no padding
- Task: what needed to be solved or decided
- Action: structured as Diagnose → Decide → Drive → De-risk (never a random timeline)
- Result: structured as Outcome → Business Impact → Evidence → Learning (never vague)
Interviewer-Specific Adaptation:
- HR/Recruiter: fit, clear communication, concise business impact, level match
- Hiring Manager: ownership, ambiguity handling, trade-offs, judgment, problem framing
- Peer/Senior Analyst: analytical rigor, technical reasoning, validation, assumptions, collaboration
- VP/Executive: business impact, strategic framing, cross-functional influence, simplification
Ownership Language (enforce first-person clarity):
- Use: I identified, I proposed, I recommended, I aligned, I rebuilt, I validated, I drove, I led, I designed, I coordinated, I presented, I translated, I standardized, I implemented, I resolved
- Avoid: vague "we" unless immediately clarified by the user's specific role
Technical Term Rule:
- Never drop jargon alone — always attach: [term] + [why it was used] + [what decision it supported]
Specificity Rule:
- Add detail only when it helps the interviewer judge seniority (complexity, influence, rigor, impact)
For each story, generate FOUR versions with these distinct output formats:
- HR / Recruiter — plain string. 3–5 flowing sentences. No section labels. Natural spoken tone.
- Hiring Manager — structured object:
situation, task, action (with diagnose/decide/drive/de_risk keys), result (with outcome/business_impact/evidence/learning keys).
- Peer / Senior Analyst — same structured object as HM, with more technical depth in
action.decide and action.diagnose.
- VP / Executive — same structured object, but each field is shorter and framed in strategic/business language.
action.de_risk and result.learning may be omitted if the version is already concise.
The docx generator renders HR as flowing paragraphs (no labels), and HM/Peer/VP with STAR section headers and 4D/4O sub-labels. Follow the exact JSON schema in templates/docx_structure.md (see the skill repository).
Tasks:
- Generate all four versions for each story internally
- Write all versions into
interview_pack_data.json following the schema in $SKILL_DATA_DIR/templates/docx_structure.md
- Generate the
.docx file using the Docx Generation method defined above
- Do NOT print any story versions to chat
Gate behavior (Stage Gate Protocol applies):
- Notify the user:
Stage 3 Completed. [N] story/stories with 4 interviewer versions each have been written to [filename.docx]. Please open and review — reply "continue" to proceed to plausibility review, or share feedback to revise.
- Wait for confirmation before proceeding to Stage 4.
STAGE 4 — Real-World Analyst Plausibility Review
Reference: $SKILL_DATA_DIR/prompts/realism_review.md
Purpose: Evaluate stories as a senior analyst with 10+ years of experience would.
Persona: A senior analyst with deep experience in analytics, experimentation, SQL, Python, BI tools, ETL, stakeholder management. Knows exactly how analyst work flows in real organizations.
Review Questions for Every Story:
- Do the tools mentioned work together in a realistic sequence?
- Is the stakeholder escalation path believable?
- If a KPI changed: were finance/ops/product involved?
- If an A/B test: is metric selection, experiment design, and result action addressed?
- If ETL was built: are source systems, validation, and downstream consumers mentioned?
- If a dashboard was built: is adoption/stakeholder uptake addressed?
- Does the ownership described match the seniority level claimed?
Tasks:
- Flag anything that sounds inflated, operationally confused, or unrealistic
- Rewrite flagged sections so stories are grounded and credible
- Update
interview_pack_data.json with plausibility findings and any revised story versions
- Generate the
.docx file using the Docx Generation method defined above
- Do NOT print findings or revised stories to chat
Gate behavior (Stage Gate Protocol applies):
- Notify the user:
Stage 4 Completed. Plausibility review findings and any revised stories have been written to [filename.docx]. Please open and review — reply "continue" to proceed to scoring, or share feedback to revise.
- Wait for confirmation before proceeding to Stage 5.
STAGE 5 — Validation and Scoring
Reference: $SKILL_DATA_DIR/prompts/scoring_rubric.md
Purpose: Score every story version and revise until threshold is met.
Scoring Dimensions (each scored 0–10, weighted as shown):
| Dimension | Weight |
|---|
| Context clarity (Situation + Task) | 8% |
| Action depth (4D structure) | 15% |
| Result strength (4O structure) | 15% |
| Ownership clarity | 12% |
| Audience fit (interviewer-specific) | 12% |
| Seniority signals | 10% |
| Specificity / detail control | 8% |
| Realism / operational plausibility | 10% |
| Logical flow and connectors | 5% |
| Natural spoken flow | 5% |
Threshold: 8.5 / 10 weighted average. If below threshold, revise and rescore.
Max rewrite attempts: per settings.json (default 3)
Tasks:
- Score each story version against all dimensions
- Produce a scorecard per story per interviewer type
- If score < threshold: identify weakest dimensions, revise, rescore — all internally, without printing to chat
- Update
interview_pack_data.json with final scorecards, revision notes, and any revised story versions
- Generate the
.docx file using the Docx Generation method defined above
- Do NOT print scorecards or revised stories to chat
Gate behavior — final stage:
Output Format
Chat output (keep minimal):
- Stage 0 + 1: Brief diagnostic summaries only — role priority map, gaps identified, readiness mode
- Stages 2–5: One-line completion notification + docx file path + confirmation prompt
- Stage 5 final: Score summary table (totals only, no story text)
- Never print generated questions, story versions, plausibility findings, or scorecards to chat
Docx output (all substantive content goes here):
See $SKILL_DATA_DIR/templates/docx_structure.md for the full schema.
- Title page
- Role priority summary + interviewer priority map
- Per-story sections with all four interviewer versions
- Plausibility review findings and realism scores
- Full scorecards (10 dimensions × 4 interviewer types)
- Likely question pack (if fallback mode was used)
- Appendices: missing info flags, global recommendations, delivery notes
The docx is regenerated after every stage gate so the user always has the most current version to review.
Truthfulness Rules
- Never invent metrics, stakeholder names, tools, or methods not in the user's source materials
- If a story lacks needed detail: flag it, add a placeholder like
[INSERT METRIC], and request clarification
- If fallback research was used: clearly label estimates vs verified facts at every occurrence
- Distinguish: "Grounded (from your materials)" vs "Research-Based Estimate" vs "Assumed — needs confirmation"
Example Invocations
/interview-prep
Help me rewrite my behavioral stories for a Senior Data Analyst interview at Stripe.
/interview-prep
I uploaded my JD and raw stories. Tailor them for recruiter, hiring manager, and VP rounds.
/interview-prep
I don't have a JD yet. What does a Senior Analytics Manager role at a fintech company typically ask?
/interview-prep
Make these project stories sound more senior and generate the docx pack.