[{"data":1,"prerenderedAt":910},["ShallowReactive",2],{"$fxE1s_otBWhJ_ii9WdDfZiIy1SILo6uBTwpR4Czf98iU":3},{"newThing":4,"project":5,"cycle":8,"sections":22,"threads":892,"otherDocs":893,"documents":896,"images":907,"archiveItems":908,"links":909},null,{"id":6,"label":7,"liveBase":4},"market-analyst","Market Analyst",{"id":9,"num":10,"dir":11,"name":12,"title":12,"focus":13,"status":14,"statusNote":15,"created":16,"completed":4,"mode":4,"report":4,"recordless":17,"thumbnail":4,"imageCount":18,"artifactCount":19,"lastActivity":20,"hasPickup":21,"hasInitialPrompt":17},"c7",7,"c7.avoma-notes","avoma-notes","Explore and integrate Avoma notes data into extraction pipeline and dashboard visualizations.","parked","parked — see PICKUP.md","2026-02-25",false,0,5,"2026-08-20",true,[23,62,298,419,511,549,855],{"key":24,"title":25,"empty":17,"ast":26},"why","Why",{"type":27,"children":28},"root",[29,37,42],{"type":30,"tag":31,"props":32,"children":33},"element","p",{},[34],{"type":35,"value":36},"text","When extraction began, only raw transcripts were available. Avoma now provides structured notes alongside transcripts — summaries, talking points, action items, and other metadata that can enrich our analysis. This data could improve extraction accuracy, provide additional signals for visualization, and help us understand prospect intent more deeply.",{"type":30,"tag":31,"props":38,"children":39},{},[40],{"type":35,"value":41},"Early Avoma API work (c6.sagetap-integration context) confirmed notes endpoint is accessible. A sample note has been examined but we need a broader sample to understand:",{"type":30,"tag":43,"props":44,"children":45},"ol",{},[46,52,57],{"type":30,"tag":47,"props":48,"children":49},"li",{},[50],{"type":35,"value":51},"What information is consistently present across calls?",{"type":30,"tag":47,"props":53,"children":54},{},[55],{"type":35,"value":56},"Which fields are most useful for segmentation, filtering, or insights?",{"type":30,"tag":47,"props":58,"children":59},{},[60],{"type":35,"value":61},"Can notes improve extraction quality or provide complementary signals?",{"key":63,"title":64,"empty":17,"ast":65},"objective","Objectives",{"type":27,"children":66},[67,74,128,134,196,214,220],{"type":30,"tag":68,"props":69,"children":71},"h3",{"id":70},"phase-1-data-exploration-understand-what-we-have",[72],{"type":35,"value":73},"Phase 1: Data exploration (understand what we have) ✓",{"type":30,"tag":75,"props":76,"children":79},"ul",{"className":77},[78],"contains-task-list",[80,92,101,119],{"type":30,"tag":47,"props":81,"children":84},{"className":82},[83],"task-list-item",[85,90],{"type":30,"tag":86,"props":87,"children":89},"input",{"checked":21,"disabled":21,"type":88},"checkbox",[],{"type":35,"value":91}," Download 7 sample calls with notes from Avoma API (Brooks, Starbucks, Surepath, Wunderkind, Dropbox, Airbnb, Cam)",{"type":30,"tag":47,"props":93,"children":95},{"className":94},[83],[96,99],{"type":30,"tag":86,"props":97,"children":98},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":100}," Compare note structure across calls — two distinct templates discovered (sales vs. technical chat)",{"type":30,"tag":47,"props":102,"children":104},{"className":103},[83],[105,108,110,117],{"type":30,"tag":86,"props":106,"children":107},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":109}," Catalog which note fields appear consistently vs. sporadically (see ",{"type":30,"tag":111,"props":112,"children":114},"code",{"className":113},[],[115],{"type":35,"value":116},"findings.md",{"type":35,"value":118},")",{"type":30,"tag":47,"props":120,"children":122},{"className":121},[83],[123,126],{"type":30,"tag":86,"props":124,"children":125},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":127}," Document data quality patterns — AI-generated custom sections vary per call; standard sections consistent across sales calls",{"type":30,"tag":68,"props":129,"children":131},{"id":130},"phase-2-analysis-how-does-it-help-us",[132],{"type":35,"value":133},"Phase 2: Analysis (how does it help us?) ✓",{"type":30,"tag":75,"props":135,"children":137},{"className":136},[78],[138,178,187],{"type":30,"tag":47,"props":139,"children":141},{"className":140},[83],[142,145,147,153,155],{"type":30,"tag":86,"props":143,"children":144},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":146}," Compared 5 calls side-by-side: Claude extraction vs. Avoma notes (see ",{"type":30,"tag":111,"props":148,"children":150},{"className":149},[],[151],{"type":35,"value":152},"comparison.md",{"type":35,"value":154},")\n",{"type":30,"tag":75,"props":156,"children":157},{},[158,163,168,173],{"type":30,"tag":47,"props":159,"children":160},{},[161],{"type":35,"value":162},"Pain points: strong overlap (3\u002F5 calls). Classification differs — Avoma uses Risk for things Claude calls pain points",{"type":30,"tag":47,"props":164,"children":165},{},[166],{"type":35,"value":167},"Feature requests: fundamentally different — Avoma conflates features demoed with features requested. Claude is far more useful for roadmap prioritization",{"type":30,"tag":47,"props":169,"children":170},{},[171],{"type":35,"value":172},"Value signals: Claude significantly better — Avoma misattributes team member quotes as positive moments in 2\u002F5 calls",{"type":30,"tag":47,"props":174,"children":175},{},[176],{"type":35,"value":177},"New data only in notes: action items (5\u002F5), decision making (3\u002F5), risks\u002Fblockers (4\u002F5), current workflow (5\u002F5)",{"type":30,"tag":47,"props":179,"children":181},{"className":180},[83],[182,185],{"type":30,"tag":86,"props":183,"children":184},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":186}," Identified top 3 fields for integration: actionItems, decisionMaking, risks",{"type":30,"tag":47,"props":188,"children":190},{"className":189},[83],[191,194],{"type":30,"tag":86,"props":192,"children":193},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":195}," Assessed notes as supplementary context — should feed into Claude prompt as appendix, not replace extraction",{"type":30,"tag":31,"props":197,"children":198},{},[199,205,207,212],{"type":30,"tag":200,"props":201,"children":202},"strong",{},[203],{"type":35,"value":204},"Key finding:",{"type":35,"value":206}," The two systems are ",{"type":30,"tag":200,"props":208,"children":209},{},[210],{"type":35,"value":211},"complementary, not redundant",{"type":35,"value":213},". Claude wins on insight quality (verbatim quotes, speaker attribution, interest scoring). Avoma wins on deal mechanics (action items, decision authority, deployment risks).",{"type":30,"tag":68,"props":215,"children":217},{"id":216},"phase-3-integration-planning-scope-for-future-cycles",[218],{"type":35,"value":219},"Phase 3: Integration planning (scope for future cycles) ✓",{"type":30,"tag":75,"props":221,"children":223},{"className":222},[78],[224,280,289],{"type":30,"tag":47,"props":225,"children":227},{"className":226},[83],[228,231,233,239,240],{"type":30,"tag":86,"props":229,"children":230},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":232}," Designed integration plan with 3 additions + 1 enhancement (see ",{"type":30,"tag":111,"props":234,"children":236},{"className":235},[],[237],{"type":35,"value":238},"integration-plan.md",{"type":35,"value":154},{"type":30,"tag":75,"props":241,"children":242},{},[243,254,265,275],{"type":30,"tag":47,"props":244,"children":245},{},[246,252],{"type":30,"tag":111,"props":247,"children":249},{"className":248},[],[250],{"type":35,"value":251},"actionItems",{"type":35,"value":253}," — parsed from Avoma notes at index time (no re-extraction)",{"type":30,"tag":47,"props":255,"children":256},{},[257,263],{"type":30,"tag":111,"props":258,"children":260},{"className":259},[],[261],{"type":35,"value":262},"decisionMaking",{"type":35,"value":264}," — added to Claude extraction prompt (requires re-extraction)",{"type":30,"tag":47,"props":266,"children":267},{},[268,274],{"type":30,"tag":111,"props":269,"children":271},{"className":270},[],[272],{"type":35,"value":273},"risks",{"type":35,"value":264},{"type":30,"tag":47,"props":276,"children":277},{},[278],{"type":35,"value":279},"Feed Avoma notes as supplementary context in extraction prompt",{"type":30,"tag":47,"props":281,"children":283},{"className":282},[83],[284,287],{"type":30,"tag":86,"props":285,"children":286},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":288}," Identified implementation order: notes fetching → action items → prompt changes → batch re-extract",{"type":30,"tag":47,"props":290,"children":292},{"className":291},[83],[293,296],{"type":30,"tag":86,"props":294,"children":295},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":297}," Identified dashboard opportunities: action items view, decision maker map, risk heatmap, deal readiness score",{"key":299,"title":300,"empty":17,"ast":301},"scope","Scope",{"type":27,"children":302},[303,311,398,406],{"type":30,"tag":31,"props":304,"children":305},{},[306],{"type":30,"tag":200,"props":307,"children":308},{},[309],{"type":35,"value":310},"Key files:",{"type":30,"tag":75,"props":312,"children":313},{},[314,340,353,372,385],{"type":30,"tag":47,"props":315,"children":316},{},[317,319,325,327,333,334],{"type":35,"value":318},"Pipeline: ",{"type":30,"tag":111,"props":320,"children":322},{"className":321},[],[323],{"type":35,"value":324},"pipeline\u002Fextract.ts",{"type":35,"value":326},", ",{"type":30,"tag":111,"props":328,"children":330},{"className":329},[],[331],{"type":35,"value":332},"pipeline\u002Fbatch.ts",{"type":35,"value":326},{"type":30,"tag":111,"props":335,"children":337},{"className":336},[],[338],{"type":35,"value":339},"pipeline\u002Fprompts\u002Fextract-call.md",{"type":30,"tag":47,"props":341,"children":342},{},[343,345,351],{"type":35,"value":344},"Schema: ",{"type":30,"tag":111,"props":346,"children":348},{"className":347},[],[349],{"type":35,"value":350},"schemas\u002Fcall.ts",{"type":35,"value":352}," (may need new optional fields)",{"type":30,"tag":47,"props":354,"children":355},{},[356,358,364,366],{"type":35,"value":357},"Data: ",{"type":30,"tag":111,"props":359,"children":361},{"className":360},[],[362],{"type":35,"value":363},"data\u002Fraw\u002F",{"type":35,"value":365}," (sidecar metadata), Avoma API integration in ",{"type":30,"tag":111,"props":367,"children":369},{"className":368},[],[370],{"type":35,"value":371},".claude\u002Fmemory\u002Favoma-api.md",{"type":30,"tag":47,"props":373,"children":374},{},[375,377,383],{"type":35,"value":376},"Site: ",{"type":30,"tag":111,"props":378,"children":380},{"className":379},[],[381],{"type":35,"value":382},"site\u002Fpages\u002Fcalls.vue",{"type":35,"value":384},", component display logic",{"type":30,"tag":47,"props":386,"children":387},{},[388,390,396],{"type":35,"value":389},"Sample note: ",{"type":30,"tag":111,"props":391,"children":393},{"className":392},[],[394],{"type":35,"value":395},"cycles\u002Fc7.avoma-notes\u002Fsample-note.md",{"type":35,"value":397}," (reference)",{"type":30,"tag":31,"props":399,"children":400},{},[401],{"type":30,"tag":200,"props":402,"children":403},{},[404],{"type":35,"value":405},"Not in scope yet:",{"type":30,"tag":75,"props":407,"children":408},{},[409,414],{"type":30,"tag":47,"props":410,"children":411},{},[412],{"type":35,"value":413},"Full re-extraction with notes integrated (defer to Phase 3 → future cycle)",{"type":30,"tag":47,"props":415,"children":416},{},[417],{"type":35,"value":418},"Dashboard UI redesign (explore only in Phase 2)",{"key":420,"title":421,"empty":17,"ast":422},"key-changes","Key Changes",{"type":27,"children":423},[424],{"type":30,"tag":75,"props":425,"children":427},{"className":426},[78],[428,445,462,478,495],{"type":30,"tag":47,"props":429,"children":431},{"className":430},[83],[432,435,437,443],{"type":30,"tag":86,"props":433,"children":434},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":436}," Downloaded 7 sample notes from Avoma API → ",{"type":30,"tag":111,"props":438,"children":440},{"className":439},[],[441],{"type":35,"value":442},"cycles\u002Fc7.avoma-notes\u002Fsamples\u002F",{"type":35,"value":444}," (md + raw JSON)",{"type":30,"tag":47,"props":446,"children":448},{"className":447},[83],[449,452,454,460],{"type":30,"tag":86,"props":450,"children":451},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":453}," Created ",{"type":30,"tag":111,"props":455,"children":457},{"className":456},[],[458],{"type":35,"value":459},"cycles\u002Fc7.avoma-notes\u002Ffindings.md",{"type":35,"value":461}," — note structure, section consistency matrix, data quality observations",{"type":30,"tag":47,"props":463,"children":465},{"className":464},[83],[466,469,470,476],{"type":30,"tag":86,"props":467,"children":468},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":453},{"type":30,"tag":111,"props":471,"children":473},{"className":472},[],[474],{"type":35,"value":475},"cycles\u002Fc7.avoma-notes\u002Fcomparison.md",{"type":35,"value":477}," — 5-call side-by-side comparison with quality scoring",{"type":30,"tag":47,"props":479,"children":481},{"className":480},[83],[482,485,487,493],{"type":30,"tag":86,"props":483,"children":484},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":486}," Built ",{"type":30,"tag":111,"props":488,"children":490},{"className":489},[],[491],{"type":35,"value":492},"cycles\u002Fc7.avoma-notes\u002Ffetch-sample-notes.ts",{"type":35,"value":494}," — reusable script for fetching\u002Fformatting Avoma notes",{"type":30,"tag":47,"props":496,"children":498},{"className":497},[83],[499,502,503,509],{"type":30,"tag":86,"props":500,"children":501},{"checked":21,"disabled":21,"type":88},[],{"type":35,"value":453},{"type":30,"tag":111,"props":504,"children":506},{"className":505},[],[507],{"type":35,"value":508},"cycles\u002Fc7.avoma-notes\u002Fintegration-plan.md",{"type":35,"value":510}," — 3 schema additions + 1 prompt enhancement, ordered by dependency",{"key":512,"title":513,"empty":17,"ast":514},"outcome","Outcome",{"type":27,"children":515},[516,528],{"type":30,"tag":31,"props":517,"children":518},{},[519,521,526],{"type":35,"value":520},"Avoma notes are a ",{"type":30,"tag":200,"props":522,"children":523},{},[524],{"type":35,"value":525},"complementary data source",{"type":35,"value":527}," to our Claude extraction — not redundant, not a replacement. Claude wins on insight quality (verbatim quotes, speaker attribution, interest scoring). Avoma wins on deal mechanics (action items, decision authority, deployment risks).",{"type":30,"tag":31,"props":529,"children":530},{},[531,533,539,541,547],{"type":35,"value":532},"All 24 synced calls now have notes sidecars at ",{"type":30,"tag":111,"props":534,"children":536},{"className":535},[],[537],{"type":35,"value":538},"data\u002Fraw\u002F{uuid}.notes.json",{"type":35,"value":540},". Future ",{"type":30,"tag":111,"props":542,"children":544},{"className":543},[],[545],{"type":35,"value":546},"npm run fetch",{"type":35,"value":548}," calls save notes automatically.",{"key":550,"title":551,"empty":17,"ast":552},"extra","Implementation Plan",{"type":27,"children":553},[554,566,579,592,597,605,638,650,675,685,705,713,723,737,747,760,770,782,795,841,850],{"type":30,"tag":68,"props":555,"children":557},{"id":556},"step-1-schema-additions-schemascallts",[558,560,565],{"type":35,"value":559},"Step 1: Schema additions (",{"type":30,"tag":111,"props":561,"children":563},{"className":562},[],[564],{"type":35,"value":350},{"type":35,"value":118},{"type":30,"tag":31,"props":567,"children":568},{},[569,571,577],{"type":35,"value":570},"Add three new optional fields to ",{"type":30,"tag":111,"props":572,"children":574},{"className":573},[],[575],{"type":35,"value":576},"CallData",{"type":35,"value":578},":",{"type":30,"tag":580,"props":581,"children":587},"pre",{"className":582,"code":583,"language":584,"meta":585,"style":586},"language-ts","\u002F\u002F After positioning field:\nactionItems?: ActionItem[]\ndecisionMaking?: DecisionMaking\nrisks?: Risk[]\n","ts","","undefined",[588],{"type":30,"tag":111,"props":589,"children":590},{"__ignoreMap":585},[591],{"type":35,"value":583},{"type":30,"tag":31,"props":593,"children":594},{},[595],{"type":35,"value":596},"New interfaces:",{"type":30,"tag":580,"props":598,"children":600},{"className":582,"code":599,"language":584,"meta":585,"style":586},"interface ActionItem {\n  text: string          \u002F\u002F what needs to be done\n  owner: string         \u002F\u002F who is responsible\n  timestamp?: string    \u002F\u002F mm:ss into call\n  source: 'avoma'       \u002F\u002F always from Avoma notes\n}\n\ninterface DecisionMaking {\n  decisionMaker?: string\n  authority?: string           \u002F\u002F description of authority level\n  process?: string             \u002F\u002F committee, sole authority, etc.\n  approvers?: string[]\n  verbatim?: string\n  speaker?: string\n  confidence: 'high' | 'medium' | 'low'\n}\n\ninterface Risk {\n  text: string\n  verbatim?: string\n  speaker?: string\n  category: RiskCategory\n  confidence: 'high' | 'medium' | 'low'\n}\n\ntype RiskCategory =\n  | 'technical-compatibility'    \u002F\u002F conflicts with existing tools (CrowdStrike, eBPF)\n  | 'deployment-blocker'         \u002F\u002F missing prerequisites (object store, namespace)\n  | 'organizational'             \u002F\u002F approval needed, wrong team, politics\n  | 'security-privacy'           \u002F\u002F data sensitivity, privacy policy conflicts\n  | 'resource-constraints'       \u002F\u002F team bandwidth, competing priorities\n",[601],{"type":30,"tag":111,"props":602,"children":603},{"__ignoreMap":585},[604],{"type":35,"value":599},{"type":30,"tag":31,"props":606,"children":607},{},[608,610,615,616,621,623,628,630,636],{"type":35,"value":609},"Also add ",{"type":30,"tag":111,"props":611,"children":613},{"className":612},[],[614],{"type":35,"value":251},{"type":35,"value":326},{"type":30,"tag":111,"props":617,"children":619},{"className":618},[],[620],{"type":35,"value":273},{"type":35,"value":622},", and ",{"type":30,"tag":111,"props":624,"children":626},{"className":625},[],[627],{"type":35,"value":262},{"type":35,"value":629}," summary fields to ",{"type":30,"tag":111,"props":631,"children":633},{"className":632},[],[634],{"type":35,"value":635},"CallIndexEntry",{"type":35,"value":637}," for list views.",{"type":30,"tag":68,"props":639,"children":641},{"id":640},"step-2-extraction-prompt-updates-pipelinepromptsextract-callmd",[642,644,649],{"type":35,"value":643},"Step 2: Extraction prompt updates (",{"type":30,"tag":111,"props":645,"children":647},{"className":646},[],[648],{"type":35,"value":339},{"type":35,"value":118},{"type":30,"tag":31,"props":651,"children":652},{},[653,665,667,673],{"type":30,"tag":200,"props":654,"children":655},{},[656,658,663],{"type":35,"value":657},"Add ",{"type":30,"tag":111,"props":659,"children":661},{"className":660},[],[662],{"type":35,"value":262},{"type":35,"value":664}," to output schema",{"type":35,"value":666}," (after ",{"type":30,"tag":111,"props":668,"children":670},{"className":669},[],[671],{"type":35,"value":672},"positioning",{"type":35,"value":674},"):",{"type":30,"tag":580,"props":676,"children":680},{"className":677,"code":678,"language":679,"meta":585,"style":586},"language-json","\"decisionMaking\": {\n  \"decisionMaker\": \"\u003Cname of person with authority to approve, or null>\",\n  \"authority\": \"\u003Cdescription: 'unilateral', 'needs VP approval', 'committee', etc.>\",\n  \"process\": \"\u003Chow decisions are made if discussed>\",\n  \"approvers\": [\"\u003Cother people who need to sign off>\"],\n  \"verbatim\": \"\u003Cexact quote revealing decision dynamics>\",\n  \"speaker\": \"\u003Cname>\",\n  \"confidence\": \"\u003Chigh|medium|low>\"\n}\n","json",[681],{"type":30,"tag":111,"props":682,"children":683},{"__ignoreMap":585},[684],{"type":35,"value":678},{"type":30,"tag":31,"props":686,"children":687},{},[688,698,699,704],{"type":30,"tag":200,"props":689,"children":690},{},[691,692,697],{"type":35,"value":657},{"type":30,"tag":111,"props":693,"children":695},{"className":694},[],[696],{"type":35,"value":273},{"type":35,"value":664},{"type":35,"value":666},{"type":30,"tag":111,"props":700,"children":702},{"className":701},[],[703],{"type":35,"value":262},{"type":35,"value":674},{"type":30,"tag":580,"props":706,"children":708},{"className":677,"code":707,"language":679,"meta":585,"style":586},"\"risks\": [\n  {\n    \"text\": \"\u003Cdescription of deployment risk or blocker>\",\n    \"verbatim\": \"\u003Cexact quote if available>\",\n    \"speaker\": \"\u003Cname>\",\n    \"category\": \"\u003Ctechnical-compatibility|deployment-blocker|organizational|security-privacy|resource-constraints>\",\n    \"confidence\": \"\u003Chigh|medium|low>\"\n  }\n]\n",[709],{"type":30,"tag":111,"props":710,"children":711},{"__ignoreMap":585},[712],{"type":35,"value":707},{"type":30,"tag":31,"props":714,"children":715},{},[716,721],{"type":30,"tag":200,"props":717,"children":718},{},[719],{"type":35,"value":720},"Add guideline 15",{"type":35,"value":722}," distinguishing risks from objections:",{"type":30,"tag":724,"props":725,"children":726},"blockquote",{},[727],{"type":30,"tag":31,"props":728,"children":729},{},[730,735],{"type":30,"tag":200,"props":731,"children":732},{},[733],{"type":35,"value":734},"Risks vs. objections:",{"type":35,"value":736}," An objection is pushback (\"I don't think this will work\"). A risk is a factual obstacle (\"our CrowdStrike agent also uses eBPF\"). Risks are deployment blockers that need mitigation, not persuasion. Include risks from both prospect and Qpoint speakers — risks are factual, not opinion.",{"type":30,"tag":31,"props":738,"children":739},{},[740,745],{"type":30,"tag":200,"props":741,"children":742},{},[743],{"type":35,"value":744},"Add guideline 16",{"type":35,"value":746}," for decision-making:",{"type":30,"tag":724,"props":748,"children":749},{},[750],{"type":30,"tag":31,"props":751,"children":752},{},[753,758],{"type":30,"tag":200,"props":754,"children":755},{},[756],{"type":35,"value":757},"Decision making:",{"type":35,"value":759}," Look for who has budget authority, who can approve a POC, and what the procurement process looks like. Only extract what is explicitly stated — do not infer decision authority from job titles alone.",{"type":30,"tag":31,"props":761,"children":762},{},[763,768],{"type":30,"tag":200,"props":764,"children":765},{},[766],{"type":35,"value":767},"Add Risk Categories section",{"type":35,"value":769}," at the end alongside existing category lists.",{"type":30,"tag":68,"props":771,"children":773},{"id":772},"step-3-feed-avoma-notes-as-supplementary-context-pipelineextractts",[774,776,781],{"type":35,"value":775},"Step 3: Feed Avoma notes as supplementary context (",{"type":30,"tag":111,"props":777,"children":779},{"className":778},[],[780],{"type":35,"value":324},{"type":35,"value":118},{"type":30,"tag":31,"props":783,"children":784},{},[785,787,793],{"type":35,"value":786},"In ",{"type":30,"tag":111,"props":788,"children":790},{"className":789},[],[791],{"type":35,"value":792},"extractCall()",{"type":35,"value":794},", after the metadata sidecar injection (line ~159), add notes sidecar injection:",{"type":30,"tag":43,"props":796,"children":797},{},[798,809,829],{"type":30,"tag":47,"props":799,"children":800},{},[801,803],{"type":35,"value":802},"Check for ",{"type":30,"tag":111,"props":804,"children":806},{"className":805},[],[807],{"type":35,"value":808},"data\u002Fraw\u002F{callId}.notes.json",{"type":30,"tag":47,"props":810,"children":811},{},[812,814,820,822,828],{"type":35,"value":813},"If found, parse blocks into readable markdown (extract a ",{"type":30,"tag":111,"props":815,"children":817},{"className":816},[],[818],{"type":35,"value":819},"notesToMarkdown()",{"type":35,"value":821}," helper from ",{"type":30,"tag":111,"props":823,"children":825},{"className":824},[],[826],{"type":35,"value":827},"fetch-sample-notes.ts",{"type":35,"value":118},{"type":30,"tag":47,"props":830,"children":831},{},[832,834,840],{"type":35,"value":833},"Inject before ",{"type":30,"tag":111,"props":835,"children":837},{"className":836},[],[838],{"type":35,"value":839},"## Transcript",{"type":35,"value":578},{"type":30,"tag":580,"props":842,"children":845},{"className":843,"code":585,"language":35},[844],"language-text",[846],{"type":30,"tag":111,"props":847,"children":848},{"__ignoreMap":585},[849],{"type":35,"value":585},{"type":30,"tag":851,"props":852,"children":853},"style",{},[854],{"type":35,"value":585},{"key":550,"title":856,"empty":17,"ast":857},"Avoma AI Notes (supplementary context)",{"type":27,"children":858},[859,864,869,878,883],{"type":30,"tag":31,"props":860,"children":861},{},[862],{"type":35,"value":863},"The following AI-generated notes were produced by Avoma's meeting intelligence system.\nUse these as supplementary context — they may surface details the transcript alone misses.\nDo NOT treat these as ground truth. If notes conflict with the transcript, trust the transcript.\nAvoma sometimes misattributes speakers or conflates features demoed with features requested.",{"type":30,"tag":31,"props":865,"children":866},{},[867],{"type":35,"value":868},"{notes markdown}",{"type":30,"tag":580,"props":870,"children":873},{"className":871,"code":872,"language":35},[844],"\nAlso add matching injection logic to `pipeline\u002Fbatch.ts`.\n\n### Step 4: Parse action items from notes (`pipeline\u002Fbuild-index.ts`)\n\nAt index build time, for each call:\n1. Check for `data\u002Fraw\u002F{callId}.notes.json`\n2. Find `highlight_category_action_item` section\n3. Parse list items into `ActionItem[]` (owner from sub-list grouping, text from content, timestamp from transcript blocks)\n4. Inject into processed JSON as `actionItems` field\n\nThis runs without re-extraction — it enriches existing processed data with notes-derived action items.\n\n### Step 5: Batch re-extraction\n\nAfter steps 1-3 are complete:\n1. Run `npm run extract:batch -- --force` to re-extract all calls with the expanded prompt + notes context\n2. Then run step 4 to layer action items on top\n3. Run `npm run index` to rebuild the aggregated index\n\n**Estimated cost:** ~$0.90 for 24 calls ($0.037\u002Fcall baseline, slightly more input tokens from notes).\n\n### Step 6: Validation\n\n- [ ] Spot-check 3-5 re-extracted calls for `decisionMaking` and `risks` quality\n- [ ] Verify `actionItems` parsed correctly across all calls\n- [ ] Check `max_tokens: 4096` is still sufficient with new fields (monitor for truncation)\n- [ ] Run `npm run index` and verify new fields appear in `all-calls.json`\n\n---\n\n### Implementation order and dependencies\n\n",[874],{"type":30,"tag":111,"props":875,"children":876},{"__ignoreMap":585},[877],{"type":35,"value":872},{"type":30,"tag":31,"props":879,"children":880},{},[881],{"type":35,"value":882},"Step 1 (schema) ──→ Step 2 (prompt) ──→ Step 5 (re-extract)\n↓\nStep 3 (notes context in extract.ts) ────→ Step 5\n↓\nStep 4 (action items parser) ─────────→ runs after Step 5\n↓\nStep 6 (validation)",{"type":30,"tag":580,"props":884,"children":887},{"className":885,"code":886,"language":35},[844],"\nSteps 1-3 are code changes (no API cost). Step 5 is the single batch re-extraction. Step 4 layers on action items post-extraction. Step 6 validates everything.\n",[888],{"type":30,"tag":111,"props":889,"children":890},{"__ignoreMap":585},[891],{"type":35,"value":886},[],[894,152,116,895],"PICKUP.md","sample-note.md",[897,899,901,903,905],{"file":894,"title":898},"Pickup Note",{"file":152,"title":900},"Avoma Notes vs Claude Extraction: Comparison Analysis",{"file":116,"title":902},"Findings: Avoma Notes Structure",{"file":238,"title":904},"Integration Plan: Avoma Notes into Extraction Pipeline",{"file":895,"title":906},"Brooks | Qpoint Introduction+ Demo",[],[],[],1794599366234]