← All Projects

Market Analyst

Call transcript pipeline and customer intelligence dashboard. From raw recordings to structured insights.

OldestNewest

Avoma Notes Research

c7February 2026

Two AI systems compared. Claude wins on insight quality, Avoma wins on deal mechanics.

ResearchAdded

5-call side-by-side comparison of Claude extraction vs. Avoma AI notes. Scored across pain points, feature requests, value signals, and new-data-only categories.

Integration PlanAdded

3 new schema fields designed: actionItems (from Avoma notes at index time), decisionMaking and risks (added to Claude extraction prompt). Notes feed as supplementary context.

Narrative

Avoma now provides structured AI notes alongside transcripts — summaries, action items, talking points. The question: does this data replace, duplicate, or complement our Claude extraction? A 5-call deep comparison answered definitively: complementary, not redundant.

Claude excels at insight quality — verbatim quotes with speaker attribution, interest scoring, positioning resonance. Avoma excels at deal mechanics — action items, decision authority, deployment risks. Avoma also misattributes team member quotes as positive moments and conflates features demoed with features requested. The integration plan feeds notes as supplementary context into the Claude prompt, letting Claude do what it does best with richer input.

Sagetap Integration

c6February 25, 2026

Second call source integrated. Pipeline is now source-aware.

PipelineModified

Sagetap calls detected via purpose/type label, routed around external-call filter. Pipeline is source-aware.

DashboardModified

Source pills (AV/ST) distinguish Avoma and Sagetap calls in the UI.

DataAdded

data/raw-sagetap/ directory for Sagetap call transcripts.

Narrative

Sagetap calls come through a different channel than Avoma — they're analyst-mediated conversations with a different dynamic than direct sales calls. The pipeline needed to detect the source and route accordingly, since the external-call filter that works for Avoma would incorrectly exclude Sagetap calls.

The dashboard now shows source pills so the viewer can factor in the conversation context. An Avoma call with a prospect has different weight than a Sagetap call with an analyst. Making the source visible lets the reader calibrate.

Analysis Agent

c5February 24, 2026

Ad-hoc querying with citations. Ask questions, get answers grounded in specific calls.

SkillAdded

/analyze — loads full call dataset + strategic goals, answers questions with company/date citations and verbatim quotes.

GoalsAdded

goals.md — 7 strategic questions: product-market fit, urgent pain points, feature drivers, recurring objections, competitive losses, funnel stalls, emerging segments.

Narrative

The analysis agent bridges the gap between structured dashboard views and open-ended questions. It loads the full dataset and can read raw transcripts for deeper context when a surface-level answer isn't enough.

Every answer cites specific calls — company name, date, and verbatim quotes. Sample size caveats are included automatically. The strategic goals in goals.md keep the agent focused on product-market fit decisions rather than generic summarization.

Data Refinement

c4February 2026

Display audit, extraction quality improvements, and two new signal dimensions: urgency and positioning resonance.

ExtractionModified

Insights and quotes now required from non-Qpoint speakers only. Added urgency/timeline extraction (5-level scale, budget signals, next steps with commitment levels) and positioning resonance (which pitch angles landed, prospect echoing value in their own words).

DashboardModified

6 stat cards (added Avg Urgency + Concrete Next Steps), urgency distribution chart, positioning angles chart.

CompaniesAdded

Company pages — /companies index (sortable table) and /companies/[name] detail showing all participants, calls, and themes.

SegmentsModified

Segment cards now list specific entities with collapsible 5-item default. Companies deduplicated with highest interest.

Narrative

The first three cycles built the pipeline and dashboard. This cycle asked: is the extracted data actually good? Walking through every page revealed display issues, but more importantly, extraction gaps. The prompt was generating insights from Qpoint speakers framing customer problems — not from customers themselves.

Urgency and positioning resonance were the biggest additions. Urgency distinguishes real pipeline from friendly interest — a 5-level scale with concrete/verbal/vague commitment tracking. Positioning resonance captures which pitch angles actually land with prospects, directly informing GTM messaging. Both require reading between the lines of conversation dynamics.

Dashboard + Brand Styling

c2February 24, 2026

Interactive Nuxt dashboard with filtering, segmentation, and Qpoint visual identity.

SiteAdded

Nuxt 3 dashboard with pages: Dashboard (overview), Calls (list), Insights (themes), Segments (company grouping).

ComponentsAdded

StatCard, FilterBar, InterestDots, DistributionBar. useCallData composable for shared data loading.

StylingModified

Modular brand styling foundation — Qpoint visual identity applied to all dashboard views.

Narrative

The dashboard makes the extracted data explorable. Filtering by company, date range, interest level, and segment lets you slice the 79 calls in different ways. The README carries an important caveat: this is directional signal, not ground truth.

Several layers of distortion exist between reality and what the dashboard shows — conversation dynamics, AI extraction artifacts, small sample size, and selection bias. The dashboard acknowledges these limitations explicitly rather than presenting data as definitive.

Data Extraction Pipeline

c1February 24, 2026

Avoma API integration. 257 meetings fetched, 79 with transcripts extracted through Claude.

PipelineAdded

extract.ts (per-call), batch.ts (bulk via Claude Batches API), build-index.ts (aggregation), avoma.ts (Avoma API fetch).

SchemasAdded

CallData, Company, Insights TypeScript types with runtime validation for Claude output.

DataAdded

all-calls.json (205 KB aggregated), index.json (18 KB indexed), per-call JSONs in data/processed/.

Narrative

The pipeline ingests call transcripts from Avoma and processes them through Claude to extract structured insights — pain points, feature requests, objections, competitive mentions, interest levels, and company segmentation. The Batches API handles bulk extraction cost-efficiently.

Metadata sidecar support captures call date and duration alongside the transcript. A later patch (March 5) backfilled 15 of 18 calls that had null dates. The pipeline is deterministic: same transcript in, same structured JSON out.