LGJ Exclusive Skill
Lead Gen Jay
Back to Skills Marketplace

Fathom KB — Coaching Call Processor

LGJ Exclusive
Skillv1.1

Process coaching call transcripts from Fathom into structured Obsidian knowledge notes. Pulls transcripts via Fathom MCP, feeds to NotebookLM for deep extraction, generates categorized notes (frameworks, strategies, objections, lessons), and commits to the knowledge base repo.

Tagsfathomnotebooklmobsidiancoachingknowledge-extractiontranscription
Categorieslgj-exclusiveknowledge-managementcoaching
Works Withkb-sync

Fathom KB — Coaching Call Processor is a Claude Code skill. Process coaching call transcripts from Fathom into structured Obsidian knowledge notes. It includes 5 files and works well with kb-sync.

Documentation

---
name: coaching-call
description: >
  Process coaching call transcripts from Fathom into structured Obsidian knowledge notes.
  Use when the user says "coaching call", "process call", "extract coaching", "fathom transcript",
  "coaching notes", "process coaching", "extract framework from call".
-
--

# Coaching Call Processor

Transform coaching call recordings (from Fathom) into searchable, reusable knowledge in the Obsidian knowledge base. Pipeline: **Fathom transcript -> NotebookLM analysis -> Obsidian notes -> git push**.

## KB Location

```
/Users/jayfeldman/Documents/Tech & Dev/knowledge-base/Coaching/
```

## NotebookLM Notebook

Use a dedicated "Coaching Calls" notebook in NotebookLM for archival and extraction. Create it on first run if it doesn't exist.

---

## Phase 1: List & Select Calls

Pull recent calls from Fathom, apply filters, and let the user choose which to process.

### Filtering Rules

Apply these filters **before** displaying calls to the user:

1. **Recorded by Jay only** — `recorded_by.email` must be `jay@leadgenjay.com`
2. **45+ minutes** — Only calls where recording duration is >= 45 minutes
3. **Exclude "Follow up"** — Skip any call with "Follow up" or "follow up" in the title
4. **Exclude internal-only** — Skip calls where `calendar_invitees_domains_type` is `only_internal` (unless it's a group coaching call like AMA/AIA)

### Steps

1. Use Fathom MCP `list_meetings` to fetch recent calls. Paginate through all results (the API returns 10 per page — use `cursor` to get more).
2. Filter the results using the rules above.
3. Display matching calls in a table:

```
Coaching Calls (recorded by Jay, 45+ min)
------------------------------------------
#  | Date       | Title                              | Duration | Attendees
1  | 2026-03-26 | Exclusive LGJ Insiders AMA         | 88 min   | 1 (group)
2  | 2026-03-26 | AIA Bonus call                     | 62 min   | 10+
3  | 2026-03-24 | Buildout Strategy x Melissa D.     | 57 min   | 4
```

4. Ask the user which call(s) to process (single number, comma-separated, or "all")

### Fallback Inputs

If Fathom MCP is unavailable or the API key isn't set:

- Accept a **pasted transcript** directly in chat
- Accept a **file path** to a transcript file (`.txt`, `.md`, `.vtt`)
- Accept a **Fathom share URL** (attempt to fetch via WebFetch)

> [!important] API Key Required
> Fathom MCP needs `FATHOM_API_KEY` in the environment. If missing, inform the user:
> "Add your Fathom API key to `.env` or shell profile as `FATHOM_API_KEY`, then restart Claude Code."

---

## Phase 2: Pull Transcript & Summary

For each selected call, retrieve the full data from Fathom.

### Steps

1. Use Fathom MCP to get the **full transcript** (speaker-labeled, timestamped)
2. Use Fathom MCP to get the **AI summary** (if available — Fathom generates these automatically)
3. Note the call metadata:
   - Date
   - Duration
   - Attendees / coachee name
   - Fathom call ID (for linking back)

Store these in working memory for the next phases. If the transcript is very long (>50k chars), note that NotebookLM will handle the full text — don't truncate.

---

## Phase 3: Feed to NotebookLM for Analysis

Add the transcript to NotebookLM and run targeted extraction queries.

### Steps

1. **Find or create** the "Coaching Calls" notebook:
   - Use `notebook_list` to search for an existing "Coaching Calls" notebook
   - If not found, use `notebook_create` with title "Coaching Calls"

2. **Add transcript as source:**
   - Use `source_add` with `source_type="text"`, passing the full transcript
   - Title: `"[YYYY-MM-DD] Coaching — [Coachee Name]"`
   - Set `wait=true` to ensure processing completes

3. **Run extraction queries** using `notebook_query`:
   - Consult the "Query Selection by Call Type" matrix in `references/extraction-prompts.md`
   - Always run queries 1-4. Run queries 5-7 based on call type (try all, accept thin results)
   - Use the same `conversation_id` for follow-up context if needed
   - Save each response for Phase 4

> [!tip] Query Strategy
> Run queries against just the newly added source (pass `source_ids`) to avoid cross-contamination with previous calls. The archival value comes from having all transcripts in one notebook for later cross-call analysis.

---

## Phase 4: Structure Extracted Knowledge

Categorize NotebookLM outputs into discrete, typed knowledge notes.

### Steps

1. Review all 7 extraction responses from Phase 3
2. For each distinct piece of knowledge, classify using `references/frameworks-taxonomy.md`:
   - **Framework** — A 3+ step system or mental model the coachee should master
   - **Strategy** — A specific, actionable approach to a concrete problem
   - **Objection** — A common concern raised + the proven reframe/response
   - **Lesson** — A coaching practice insight (how to coach better, not what was coached)

3. Deduplicate:
   - Check existing `Coaching/` notes for overlapping frameworks or strategies
   - If a framework already exists, plan to UPDATE it with new examples rather than create a duplicate

4. Present a summary to the user for approval:

```
Extraction Summary — Coaching with Alex R. (2026-03-25)
-------------------------------------------------------
Frameworks (3):
  - The 3-Layer Outbound Stack (new)
  - AIDA for Cold Email (update existing)
  - Objection Reframe Loop (new)

Strategies (2):
  - LinkedIn Warm-Up Sequence
  - Reply Rate Optimization via Send Time

Objections (1):
  - "Cold email is spam" reframe

Lessons (1):
  - Ask before prescribing — let coachee arrive at the answer

Proceed with generating notes? [Y/n]
```

5. Wait for user approval before writing files

### Filtering Rules

**Include:**
- Reusable frameworks that apply beyond this one coachee
- Strategies with clear steps that could help other clients
- Objection-response pairs that come up repeatedly
- Coaching technique insights

**Exclude:**
- Scheduling logistics, personal details, small talk
- One-off troubleshooting specific to the coachee's unique setup
- Sensitive personal/financial information
- Action items (those belong in the coachee's own system, not the KB)

---

## Phase 5: Generate Obsidian Notes

Write each approved knowledge item as a structured Obsidian note.

### Steps

1. For each item, select the appropriate template from `references/note-templates.md`
2. Write the note with:
   - **YAML frontmatter**: title, tags, dates, source call info, Fathom ID
   - **Structured content**: following the template sections
   - **Wikilinks**: to related KB notes (check existing notes in `Coaching/` and other folders)
3. File naming convention:
   - `framework-[kebab-name].md` (e.g., `framework-3-layer-outbound-stack.md`)
   - `strategy-[kebab-name].md` (e.g., `strategy-linkedin-warmup-sequence.md`)
   - `objection-[kebab-topic].md` (e.g., `objection-cold-email-is-spam.md`)
   - `lesson-[kebab-insight].md` (e.g., `lesson-ask-before-prescribing.md`)
4. Place all notes in `/Users/jayfeldman/Documents/Tech & Dev/knowledge-base/Coaching/`
5. Create the **archive note** for the call:
   - Path: `Coaching/calls/[YYYY-MM-DD]-[coachee-kebab].md`
   - Links to all extracted notes
   - Contains the Fathom summary and metadata

### Update vs Create

Follow the same rules as `kb-sync`:

```
Does a note on this topic already exist in Coaching/?
├── YES → Merge new content, bump `updated` date, add new source
└── NO → Create new note, add to _index.md
```

> [!warning] Recency Rule
> If an existing framework note has older information, UPDATE it — newest source always wins.
> Add new examples, refine steps, but preserve the core structure.

---

## Phase 6: Update Index & Patterns

Keep the Coaching MOC and patterns file current.

### Steps

1. **Update `Coaching/_index.md`**:
   - Add wikilinks for any NEW notes created
   - Update descriptions for any notes that were significantly modified
   - Keep the table sorted by type (Frameworks, Strategies, Objections, Lessons)

2. **Update `Coaching/_coaching-patterns.md`**:
   - Read the current patterns file
   - For each extraction, check: is this a recurring theme?
   - If a theme appears in 2+ calls, add/update it in the patterns file with:
     - Theme name
     - How many calls it's appeared in
     - Wikilinks to the relevant notes
     - Brief description of the pattern
   - **Verify call counts:** Before writing a "Seen in: N calls" claim, confirm the theme was actually discussed (not just tangentially mentioned) in each listed call. Don't attribute a theme to a call just because a related keyword appeared — the theme's core concept must have been substantively discussed.

---

## Phase 7: Git Commit & Push

Commit all changes to the knowledge base repo.

### Steps

```bash
cd "/Users/jayfeldman/Documents/Tech & Dev/knowledge-base"
git add Coaching/
git commit -m "coaching: Extract knowledge from [Coachee] call ([YYYY-MM-DD])

Notes created: [count new]
Notes updated: [count updated]
Types: [X frameworks, Y strategies, Z objections, W lessons]
Source: Fathom call [call-id]"
git push origin main
```

---

## Phase 8: Summary

Print a completion report for the user.

```
Coaching Call Processed
-----------------------
Call: Coaching with Alex R. (2026-03-25, 47 min)
Fathom ID: [id]
NotebookLM: Source added to "Coaching Calls" notebook

Notes Created (4):
  - Coaching/framework-3-layer-outbound-stack.md
  - Coaching/framework-objection-reframe-loop.md
  - Coaching/strategy-linkedin-warmup-sequence.md
  - Coaching/objection-cold-email-is-spam.md

Notes Updated (1):
  - Coaching/framework-aida-cold-email.md (added new examples)

Archive:
  - Coaching/calls/2026-03-25-alex-r.md

Patterns Updated:
  - "Outbound layering" (now seen in 3 calls)

Commit: abc1234
Pushed to: origin/main
```

---

## Batch Processing

When processing multiple calls:

1. Run Phases 1-2 for all calls first (gather all transcripts)
2. Add all transcripts to NotebookLM as sources
3. Run extraction queries per-call (not across calls — keep knowledge attributed to specific calls)
4. Deduplicate across the batch in Phase 4
5. Generate all notes in Phase 5
6. Single git commit in Phase 7 covering all calls

---

## Coachee Privacy

- **Default to real names** for context and searchability
- If the user says "anonymous" or "no names", use initials or generic labels
- Never include sensitive personal information (financials, health, family details)
- Phone numbers, email addresses, and social handles are excluded unless they're business-relevant
- The user can override any of these defaults per-call

Unlock This Skill

Enter your AI Automation Insiders email to get full access to documentation and the install command.

Full documentationInstall commandPriority updates

More Exclusive Skills

LGJ-graphics

LGJ
Skill

Lead Gen Jay brand illustration style system — flat SVG with floating UI elements, 30 brand logos, shared component library, Framer Motion animations, and consistent design tokens.

brand-image-generator

LGJ
Skill

Generate brand-consistent images using fal.ai FLUX.1. Prompt templates for hero images, feature graphics, testimonial photos, and marketing visuals.

conversion-copywriting

LGJ
Skill

Write copy matched to audience awareness levels using Eugene Schwartz's framework and AIDA structure. Headlines for cold vs warm traffic, persuasion by buyer journey stage.

dan-kennedy-copywriter

LGJ
Skill

Write high-converting direct response copy using Dan Kennedy's proven principles. PAS framework, urgency tactics, message-to-market matching for sales pages and emails.

design-motion-principles

LGJ
Skill

Expert motion and interaction design auditor based on Emil Kowalski, Jakub Krehel, and Jhey Tompkins. Reviews UI animations, transitions, hover states against industry best practices.

google-tracking

LGJ
Skill

Configure Google tracking (GTM, GA4, tag scanning) and the full tracking infrastructure for Lead Gen Jay pages.

hero-section-designer

LGJ
Skill

Design high-converting hero sections combining compelling visuals, Dan Kennedy copy, and clear CTAs. Above-fold optimization where 80% of conversion decisions start.

hyros-integration

LGJ
Skill

Add Hyros conversion tracking to opt-in forms, checkout pages, and landing pages. Server-side lead tracking via API, client-side checkout intent, and Whop purchase integration.

Unlock This Skill + 50 More

AI Automation Insiders members get unlimited access to all exclusive skills, commands, and agents — plus weekly updates.

Join AI Automation Insiders

Already a member? Scroll up to enter your email.