Market Analyst
Call transcript pipeline and customer intelligence dashboard. From raw recordings to structured insights.
Avoma Notes Research
c7February 2026Two AI systems compared. Claude wins on insight quality, Avoma wins on deal mechanics.
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.
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, 2026Second call source integrated. Pipeline is now source-aware.
Sagetap calls detected via purpose/type label, routed around external-call filter. Pipeline is source-aware.
Source pills (AV/ST) distinguish Avoma and Sagetap calls in the UI.
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, 2026Ad-hoc querying with citations. Ask questions, get answers grounded in specific calls.
/analyze — loads full call dataset + strategic goals, answers questions with company/date citations and verbatim quotes.
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 2026Display audit, extraction quality improvements, and two new signal dimensions: urgency and positioning resonance.
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).
6 stat cards (added Avg Urgency + Concrete Next Steps), urgency distribution chart, positioning angles chart.
Company pages — /companies index (sortable table) and /companies/[name] detail showing all participants, calls, and themes.
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, 2026Interactive Nuxt dashboard with filtering, segmentation, and Qpoint visual identity.
Nuxt 3 dashboard with pages: Dashboard (overview), Calls (list), Insights (themes), Segments (company grouping).
StatCard, FilterBar, InterestDots, DistributionBar. useCallData composable for shared data loading.
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, 2026Avoma API integration. 257 meetings fetched, 79 with transcripts extracted through Claude.
extract.ts (per-call), batch.ts (bulk via Claude Batches API), build-index.ts (aggregation), avoma.ts (Avoma API fetch).
CallData, Company, Insights TypeScript types with runtime validation for Claude output.
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.