refinement
Refine how extracted data is displayed in the dashboard and improve extraction quality where gaps exist.
Why
With the pipeline and dashboard functional from earlier cycles, the focus shifts to quality. Some calls have missing or incorrect extracted data, some display elements don't surface the right information, and the extraction prompt may need adjustments for better coverage. This cycle is about iterating on both ends — what we extract and how we show it — then doing a clean full re-extraction to lock in improvements.
Objective
A polished dashboard that accurately displays call insights, with extraction gaps identified and fixed. "Done" means: display issues cataloged and resolved, extraction prompt adjusted where needed, all processed data deleted and re-extracted from raw transcripts with the improved prompt.
Scope
- Display refinement — Walk through each page/component, identify issues with how data is rendered, fix layout/logic/content problems
- Extraction evaluation — Review processed JSON for missing fields, incorrect classifications, or shallow insights; adjust the extraction prompt accordingly
- Full re-extraction — Delete all
data/processed/*.jsonand re-run extraction on all raw transcripts with the updated prompt - Re-index — Rebuild
data/all-calls.jsonanddata/index.jsonfrom fresh extractions
Plan
Phase 1: Display audit
Walk through each dashboard page and component, catalog issues as they're found:
- Dashboard (index.vue) — stat cards, distributions, overall layout
- Calls list (calls/index.vue) — table/list rendering, filtering
- Call detail (calls/id.vue) — all sections of a single call
- Insights (insights.vue) — insight cards, categories, quotes
- Segments (segments.vue) — segmentation views
- Components — FilterBar, InterestDots, DistributionBar, StatCard, Insight, InsightQuote, InsightCategoryCard, TimeframeFilter
Phase 2: Extraction evaluation
- Review a sample of
data/processed/*.jsonfor quality issues - Compare extracted data against raw transcripts for completeness
- Identify patterns in what's missing or incorrect
- Update
pipeline/prompts/extract-call.mdas needed - Update
schemas/call.tsif schema changes are warranted
Phase 3: Full re-extraction
- Delete all
data/processed/*.json - Re-run extraction:
npm run extract - Rebuild index:
npm run index - Verify dashboard displays correctly with fresh data
Key Changes
- Updated
pipeline/prompts/extract-call.md— Added guideline #1: insights and key quotes must come from non-Qpoint speakers only. Includes explicit list of Qpoint team names. Qpoint employee framing of customer pain points excluded unless the customer confirmed it. - Fixed
site/composables/useCallData.ts— Added missingspeakerfield toInsightinterface - Added speaker role to aggregated insights —
insights.vueresolves role from attendees, threaded throughInsightCategoryCard→Insight→InsightQuote - Created company pages —
/companiesindex (sortable table) and/companies/[name]detail page showing company info, all participants, calls, and themes - Updated
Insight.vue— company names now link to company page; calls grouped by company - Updated
calls/index.vue— company column links to company page - Added "Companies" to nav in
layouts/default.vue - Added urgency & timeline extraction — New
Urgencyschema with urgencyLevel (1-5), budgetSignals, timelineSignals, urgencyDrivers, and nextSteps (with commitment levels: concrete/verbal/vague). Distinguishes real pipeline from friendly interest. - Added positioning resonance extraction — New
Positioningschema with resonantFramings (which pitch angle landed), valueEchoes (prospect describing value in their own words), and strongestAngle. Directly informs GTM messaging. - Updated extraction prompt with guidelines 10-13 (urgency rubric, commitment levels, positioning extraction rules, speaker rule for new fields)
- Added validation for all new fields in
schemas/validation.ts - Updated
build-index.tsto include urgencyLevel in index entries - Dashboard: 6 stat cards (added Avg Urgency + Concrete Next Steps), urgency distribution chart, positioning angles chart
- Call detail page: new Urgency & Timeline section and Positioning Resonance section
- Call list: sortable urgency column
- Segment card entity lists — Each segment card now lists the specific entities in that segment (companies, attendees, or calls depending on segment type). Collapsible with 5-item default and "Show all" toggle. Companies deduplicated with highest interest; persona view shows attendee name + role @ company; call type view shows individual calls with dates.