# How the Story Bank Accumulates and Facilitates Reuse of STAR+R Stories

> Discover how the Story Bank automatically accumulates and facilitates reuse of STAR+R stories from job applications, making them easily accessible for interviews.

- Repository: [Santiago Fernández de Valderrama/career-ops](https://github.com/santifer/career-ops)
- Tags: internals
- Published: 2026-06-07

---

**The Story Bank automatically accumulates STAR+R stories from job applications and enables their reuse across interviews by storing them in a structured markdown format that both the Oferta and Interview-Prep modes can read, search, and append to.**

The `santifer/career-ops` repository implements a **Story Bank** ([`interview-prep/story-bank.md`](https://github.com/santifer/career-ops/blob/main/interview-prep/story-bank.md)) that functions as a persistent, machine-readable repository of behavioral interview responses. This system captures narratives written in the STAR+R format (Situation, Task, Action, Result, Reflection) and makes them retrievable for future interview preparations, eliminating redundant story creation for every new job opportunity.

## Automatic Accumulation via Oferta Mode

The accumulation process triggers whenever the **Oferta mode** ([`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md)) generates **Block F** (the Interview Plan). During this generation phase, the mode extracts STAR+R stories created for the specific job application and appends them to the Story Bank if they do not already exist.

According to the source logic documented in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) at lines 72-75: “If `interview‑prep/story‑bank.md` exists, check if any of these stories are already there. If not, append new ones.” This deduplication check ensures the bank grows without creating duplicate entries for the same experience.

## Structured STAR+R Format

Each entry in the bank follows a strict markdown template defined in [`interview-prep/story-bank.md`](https://github.com/santifer/career-ops/blob/main/interview-prep/story-bank.md) (lines 16-25). This standardized structure includes:

- A **theme header** and source reference
- The five STAR+R sections (Situation, Task, Action, Result, Reflection)
- Tags indicating which interview questions the story best answers

This uniform formatting makes the bank searchable by theme, question type, or reflection, facilitating rapid retrieval during preparation sessions.

A concrete entry appears as follows:

```markdown

### [Leadership] Turnaround of Legacy Service

**Source:** Report #042 — AcmeCorp — Senior Backend Engineer
**S (Situation):** The legacy payment service suffered 30% monthly outages.
**T (Task):** Lead the effort to redesign the architecture and improve reliability.
**A (Action):** Designed a micro‑service split, introduced circuit‑breaker patterns, and set up automated canary deployments.
**R (Result):** Reduced outage frequency by 90% and increased transaction throughput by 25%.
**Reflection:** Learned the importance of incremental rollout and monitoring early‑stage metrics.
**Best for questions about:** “Tell me about a time you improved system reliability.”

```

## Facilitating Reuse Across Interviews

The **Interview-Prep mode** ([`modes/interview-prep.md`](https://github.com/santifer/career-ops/blob/main/modes/interview-prep.md)) enables reuse by reading the Story Bank at the start of every preparation session. As documented at lines 9-10, the mode includes the bank in its input list, making all historical stories available for mapping to new interview questions.

During **Step 5 – Story Bank Mapping**, the mode:
1. Looks up existing stories in the bank
2. Matches them to the specific audience (recruiter, hiring manager, or peer-tech)
3. Flags any gaps where new stories are needed

This workflow allows candidates to **reuse a curated set of 5-10 master stories** for any behavioral question by selecting the appropriate entry from the bank and reframing it for the specific context.

## The Growth Loop

After each interview preparation cycle, updated stories are written back to [`interview-prep/story-bank.md`](https://github.com/santifer/career-ops/blob/main/interview-prep/story-bank.md). This creates a compounding effect: the next time the candidate prepares for a different role, the bank already contains relevant, battle-tested anecdotes. Over time, the bank evolves into a curated collection of high-impact narratives that can be **re-framed** for different interview audiences, significantly reducing the cognitive load of interview preparation.

The following pseudo-code illustrates how the Oferta mode appends new stories while preventing duplicates:

```javascript
// Inside Block F generation (modes/oferta.md)
for (const story of generatedStories) {
  const entry = `

### ${story.theme} ${story.title}

**Source:** Report #${reportId} — ${company} — ${role}
**S (Situation):** ${story.situation}
**T (Task):** ${story.task}
**A (Action):** ${story.action}
**R (Result):** ${story.result}
**Reflection:** ${story.reflection}
**Best for questions about:** ${story.tags}
`;
  // Append only if not already present
  if (!storyBank.includes(entry)) {
    fs.appendFileSync('interview-prep/story-bank.md', entry);
  }
}

```

## Summary

- **[`interview-prep/story-bank.md`](https://github.com/santifer/career-ops/blob/main/interview-prep/story-bank.md)** serves as the central markdown store for all STAR+R stories in the repository.
- **Oferta mode** ([`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md)) automatically accumulates new stories during Block F generation, checking for duplicates at lines 72-75.
- **Interview-Prep mode** ([`modes/interview-prep.md`](https://github.com/santifer/career-ops/blob/main/modes/interview-prep.md)) reads the bank at lines 9-10 to enable Story Bank Mapping and story reuse across different interview contexts.
- The strict markdown template ensures machine-readability and searchability by theme, question type, or reflection.

## Frequently Asked Questions

### How does the Story Bank prevent duplicate entries?

The Oferta mode implements a deduplication check before appending. According to the logic in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) lines 72-75, the system verifies whether a story already exists in [`interview-prep/story-bank.md`](https://github.com/santifer/career-ops/blob/main/interview-prep/story-bank.md) before writing new content, ensuring each unique narrative appears only once.

### What is the STAR+R format used in the Story Bank?

STAR+R stands for **Situation, Task, Action, Result, Reflection**. This format extends the traditional STAR method by adding a reflection component that captures lessons learned. Each story in the bank follows this five-section structure as defined in the template at [`interview-prep/story-bank.md`](https://github.com/santifer/career-ops/blob/main/interview-prep/story-bank.md) lines 16-25.

### Can stories from the bank be reused for different interview audiences?

Yes. During Step 5 of the Interview-Prep mode, the system maps existing stories to specific audiences including recruiters, hiring managers, and peer technical interviewers. This allows a single master story to be reframed for different contexts without rewriting the core narrative.

### How does the Interview-Prep mode access the Story Bank?

The Interview-Prep mode reads the Story Bank at the beginning of each preparation session. The input list at [`modes/interview-prep.md`](https://github.com/santifer/career-ops/blob/main/modes/interview-prep.md) lines 9-10 explicitly includes the bank file, making all accumulated stories available for mapping to behavioral questions and identifying gaps.