Tech Arch

Enterprise AI Solution

Transcript Intelligence

Every meaningful event in a company — an outage, a launch, a competitor campaign — refracts through three kinds of conversations: support tickets, sales calls, and internal meetings. Each team sees its own slice. Nobody sees the whole story. Transcript Intelligence reads all three and reconstructs it.

What it found — demonstration corpus

Built and validated against a demonstration corpus of 100 B2B SaaS call transcripts (support / sales / internal). Every number below is regenerated from raw data by a single command — nothing is hand-curated.

70%

of support calls carried churn signals

— and clustering proved those calls live in a 100%-siloed group account managers never see. The renewal risk was invisible by org design.

30 calls

one outage's six-week tail

Engineering closed the incident in week one. The cross-call timeline showed renewal conversations still citing it a month later — across all three call types.

22 calls

one competitor, everywhere

The same rival named by independent customers in the same two weeks — an organized displacement play no single team could see from its own slice.

The common thread: every actionable finding required joining across conversation silos — which is why the cross-call view is the product's core, not a feature.

How it works

1 · Theme discovery — inspectable, not oracular

Each call is embedded (sentence-transformers) and clustered with KMeans, K chosen by silhouette score. An LLM names each cluster from its most-central calls — with a deterministic fallback, so the pipeline runs identically with no API key. The structure comes from the data; the LLM only labels it.

2 · Sentiment with trajectories

Per-call-type temperature (which conversations run cold and why), within-call trajectories (does the call recover or decay?), and typed key moments — churn signals, unresolved technical issues, positive pivots — counted where they concentrate.

3 · Cross-call narratives — the differentiator

Deterministic anchor discovery finds the customers, incidents, and competitors that appear across multiple conversation types, then assembles each one's chronological story: every call that touched it, key moments grouped by team, sentiment per slice. This is where the silo-crossing findings come from.

4 · Regenerable reporting

One command re-derives the full findings report from raw transcripts — every table, chart, and claim. If the corpus changes, the story updates. Nothing in the deliverable is hand-typed.

Python sentence-transformers scikit-learn (KMeans + silhouette) Claude — cluster naming only pandas CLI · 7 subcommands

System design

One loader, three analysis engines, one regenerable report. The LLM appears in exactly one place — naming discovered clusters — and has a deterministic fallback, so every finding is reproducible.

Call transcripts support · sales · internal transcripts + summaries + typed key moments Loader one row per call call type inferred Theme discovery embeddings → KMeans, K by silhouette LLM names clusters (heuristic fallback) → themes × call-type cross-tab Sentiment engine temperature per call type · trajectories typed key moments counted → where churn signals concentrate Cross-call narratives anchor discovery: customers · incidents · competitors, ≥2 call types → the silo-crossing timelines Report generator re-derives every number from raw data nothing hand-typed Findings report · deck · charts The LLM touches one stage (cluster naming) and has a deterministic fallback — clusters, metrics, and timelines are pure computation, reproducible on every run.

What it deliberately does not do

Your calls already contain this story.

Support, sales, and internal meetings are recorded — the cross-silo narrative just isn't being read. Let's change that.

Start a conversation →