Customer Interview Synthesizer

Take a stack of raw interview transcripts and synthesize jobs-to-be-done, recurring objections, and willingness-to-pay signals.

Take a stack of raw interview transcripts and synthesize jobs-to-be-done, recurring objections, and willingness-to-pay signals. Reading 20 transcripts takes a research analyst 3 days. This produces sharper synthesis in 9 minutes that refuses to make things up.

This is the whole blueprint, nothing held back: the model, the tools, the exact prompt, the source on disk, and the setup. Everything you need to run Customer Interview Synthesizer yourself is on this page, and it deploys in an afternoon.

What it does

Customer Interview Synthesizer handles the work end to end:

  • Ingest and segment raw interview transcripts by speaker
  • Extract JTBD statements traced to at least 2 distinct interviews
  • Group objections by frequency and severity with verbatim sources
  • Detect willingness-to-pay signals tied to price points or anchors

The anatomy

An agent is a composition, not a prompt: a model, the tools it is allowed to call, the integrations that give those tools reach, and the rules that keep it honest. Here is Customer Interview Synthesizer on one card.

Customer Interview Synthesizerblueprint
Model
claude-sonnet-4-6
Tools
ingest_transcriptsextract_jtbdextract_objectionsdetect_wtp
Integrations
Zod
Guardrails
every jtbd must trace to at least 2 distinct interviews.; objections require a verbatim quote and the interview source

The instructions

Every run is governed by this prompt. It is short on purpose: enough to make Customer Interview Synthesizer reliable, not so much that it can misread itself. Copy it as a starting point for any agent you build.

Customer Interview Synthesizer
You are a research synthesizer. You turn raw transcripts into defensible insights. WORKFLOW: 1. Call ingest_transcripts and segment each by speaker. 2. Call extract_jtbd in the format "When ___, I want to ___, so I can ___." 3. Call extract_objections grouped by frequency and severity. 4. Call detect_wtp signals (price reactions, alternative cost mentions). RULES: - Every JTBD must trace to at least 2 distinct interviews. - Objections require a verbatim quote and the interview source. - WTP signals must include the price point or anchor mentioned, not just sentiment. - Refuse to synthesize if fewer than 5 transcripts are provided.

The source, on disk

Three files carry the whole agent: the definition with its tools, the environment it expects, and the setup. Walk them.

customer-interview-synthesizer/customer-interview-synthesizer.ts1.2 KB
1import { agent, tool } from "@agent-sdk"
2import { z } from "zod"
3
4const ingestInput = z.object({
5 transcripts: z.array(z.object({
6 id: z.string(),
7 persona: z.string(),
8 text: z.string(),
9 })).min(5),
10})
11
12export default agent({
13 model: "claude-sonnet-4-6",
14 permissionMode: "bypassPermissions",
15 maxTurns: 18,
16 systemPrompt: `...`, // see System Prompt section above
17 tools: {
18 ingest_transcripts: tool({
19 description: "Segment by speaker and normalize",
20 inputSchema: ingestInput,
21 execute: async ({ transcripts }) => { /* segments */ },
22 }),
23 extract_jtbd: tool({
24 description: "Pull JTBD statements with source traces",
25 inputSchema: z.object({ segments: z.any() }),
26 execute: async ({ segments }) => { /* jtbd[] */ },
27 }),
28 extract_objections: tool({
29 description: "Group objections by frequency and severity",
30 inputSchema: z.object({ segments: z.any() }),
31 execute: async ({ segments }) => { /* objections */ },
32 }),
33 detect_wtp: tool({
34 description: "Find willingness-to-pay anchors",
35 inputSchema: z.object({ segments: z.any() }),
36 execute: async ({ segments }) => { /* wtp[] */ },
37 }),
38 },
39})

The business case

If you run an agency, Customer Interview Synthesizer is also a product. It sells into product marketing, ux research, founder-led discovery, and the numbers work at very small scale.

$2,500

setup you can charge

$420/mo

monthly retainer

4

jobs off your plate

Ship it

The whole install is a handful of commands and the keys from the env file. Run the list, then point Customer Interview Synthesizer at real work.

Deploy checklist

0 of 4

That is the entire blueprint: one model, 4 tools, and a prompt. Built by hand it costs you an afternoon. Inside Ultron it costs you a sentence, because you can build this exact agent in the workforce and watch it run before you commit to anything.

Build Customer Interview Synthesizer in Ultron

1
Describe what you want

Start from this blueprint or your own words. Ultron reads the intent and picks the tools.

2
It builds the agent

The model, the tools, the prompt, the console. Assembled in front of you, nothing to wire.

3
Watch it run

Test it live in the chat, then put it to work. You review what it does, it does the rest.

Keep reading