L3 Academy

Module 5: Meeting Review Flow

Know how meeting transcripts become actionable Linear issues.

Estimated time: 10 minutes

The Problem

After every client meeting, someone has to manually extract action items, figure out who's responsible, create Linear issues, and assign them to the right team. This is tedious, error-prone, and often delayed.

The Meeting Review feature automates the extraction and makes issue creation a one-click operation.

The Flow

Notion Database (unprocessed meetings, last 24h)

"Extract meetings" button in platform UI

Backend fetches page blocks → assembles transcript

Claude API extracts action items (forced tool use)

Resolve assignees → Linear user IDs
Resolve teams → Linear team IDs (from meeting title + keywords)

User reviews items in the UI

"Create X issues" → Linear API

Notion pages marked as followed-up

Step 1: Extraction

When you click "Extract meetings" in the platform UI, the backend:

  1. Queries a Notion database for pages where Followed-up? is false and Date is within the last 24 hours
  2. For each meeting page, fetches all block children and concatenates the rich text into a transcript
  3. Sends each transcript to Claude (claude-sonnet-4-6) with forced tool use (extract_meeting_items)

Claude extracts only actionable items — not status updates, FYIs, or discussion points. Each item gets:

  • Description — concise action text
  • Typebug, feature, improvement, or task
  • Assignee — person name (resolved to a Linear user ID via a lookup map)

Step 2: Team Resolution

The system automatically assigns each item to a Linear team based on two signals:

Meeting Title Matching

The meeting title is matched against patterns to identify the client:

PatternClient
[Anthos], Anthos...Loop3Anthos Capital
[KV], KV <> L3, KhoslaKhosla Ventures
GreylockGreylock
Loop3, LVL10, L3Loop3 internal

Sub-Team Assignment

Within each client group:

  • task items always go to the parent team (e.g., Anthos Capital, Khosla Ventures)
  • bug, feature, and improvement items are scored against each sub-team's keyword list and assigned to the best match

For example, a bug mentioning "API endpoint" in a Greylock meeting would be routed to [GL] Data Intel BE based on backend keywords.

Step 3: Review in the UI

The Meeting Review page (platform.loop3.ai) shows:

  • Meeting cards — one per meeting, with expand/collapse and a badge showing selected / total items
  • Action items — each row has a checkbox, type emoji, description, assignee, and a team dropdown
  • Bulk action bar — fixed at the bottom with "Select all", "Deselect all", and "Create X issue(s)"

As a reviewer, you can:

  • Toggle items on/off (unchecked items won't become issues)
  • Override the team using the dropdown (the AI pre-selects, but you have final say)
  • Create all selected items at once

Step 4: Issue Creation

When you click "Create issues":

  1. Each selected item becomes a Linear issue via the issueCreate GraphQL mutation
  2. The issue gets the item's description as title, medium priority, and the selected team/assignee
  3. After all issues are created, each source meeting is marked as Followed-up? = true in Notion
  4. The UI shows a success banner with clickable Linear links for every created issue

The Components

ComponentPurpose
MeetingsPageMain page — orchestrates extraction, state, and creation
MeetingCardExpandable card per meeting with item count badge
ActionItemSingle action item row with checkbox, type, assignee, team
TeamSelectDropdown with all 13 Linear teams, AI pre-selected
BulkActionBarFixed bottom bar with select all / create buttons

Check Your Understanding

What does Claude extract from meeting transcripts?
How are 'task' type items assigned to Linear teams?

Checkpoints

I've walked through a past meeting review in the platform UI
I understand how meeting title patterns map to client teams

Module Assessment

Module Assessment

1. What Notion field determines whether a meeting has already been processed?

2. What happens after all selected issues are created?

3. Can you override Claude's team assignment for an action item?