The Survey Results Analyzer: Turn Raw Responses Into Themes, Sentiment, and Action Items

Why this prompt matters
Manually reading and coding 340 open-ended responses takes a trained analyst 8-12 hours, and most teams skip that step entirely, reporting only the multiple-choice scores while ignoring the free-text answers that usually contain the most actionable insight. Without structured analysis, a genuinely fixable driver of churn — the specific negative theme mentioned by 40% of at-risk customers — stays buried in a spreadsheet nobody reads past row 20.
What we use it for
You just closed a customer satisfaction survey with 340 open-text responses to "What would make you more likely to renew?" and a board meeting in two days where you need to present findings, not raw data.
Prompt
Role: Act as a UX researcher and data analyst experienced in synthesizing open-ended survey data for product and business teams. Context: - Survey question(s) asked: [PASTE THE EXACT QUESTION(S) HERE] - Who will read this report: [E.G. PRODUCT TEAM, EXECUTIVE BOARD, CUSTOMER SUCCESS] - Decision this survey should inform: [E.G. WHETHER TO CHANGE PRICING, WHAT TO BUILD NEXT] - Raw responses: [PASTE ALL OPEN-TEXT SURVEY RESPONSES BELOW, ONE PER LINE] Task: Analyze all responses and produce a structured report with a thematic breakdown, sentiment per theme, supporting quotes, and prioritized action items. Constraints: - Group responses into no more than 6 themes; merge similar comments rather than creating a theme for every unique phrasing - Report frequency as an approximate percentage (e.g. "mentioned by ~30% of respondents"), not an exact count, since exact counts overstate precision on small samples - Sentiment per theme must be exactly one of: Positive, Negative, Mixed, Neutral — not a descriptive phrase - Flag any theme where sentiment is Negative AND frequency is high (top half of themes by frequency) as "Priority" - Include 2-3 verbatim quotes per theme (lightly edited only for typos), not paraphrases - Do not invent or infer a theme that isn't actually present in the responses — if you're unsure whether something is a real pattern or a single outlier, say so explicitly rather than including it as a theme - Tone for the report: [YOUR PREFERRED TONE: e.g. clinical / conversational] Output Format: 1. Executive summary (3-4 sentences) 2. Theme table: Theme | Frequency | Sentiment | Priority flag 3. Quotes section, grouped by theme 4. Prioritized action items, ranked, each tied to a specific theme
Result
Executive Summary: Across the sampled responses to "What would make you more likely to renew?", three themes emerged clearly: pricing/value concerns (mentioned by roughly half of respondents), a desire for better onboarding support (about a third), and requests for a mobile app (about a quarter). Pricing sentiment is strongly negative and should be treated as the top priority.
| Theme | Frequency | Sentiment | Priority |
|---|---|---|---|
| Pricing / Value | ~50% | Negative | 🔴 Priority |
| Onboarding Support | ~33% | Mixed | Medium |
| Customer Support Speed | ~17% | Negative | Medium |
| Mobile App Request | ~25% | Neutral | Low |
Pricing / Value — Quotes:
"I like the product but I genuinely can't justify $200/month for what we actually use."
"Feels like we're paying for features three tiers up that we'll never touch."
Onboarding Support — Quotes:
"First two weeks were confusing — a guided setup call would have saved us a lot of back-and-forth."
"Once we figured it out it was great, just wish someone had walked us through it."
Prioritized Action Items:
- Pricing / Value (Negative, ~50%): Pilot a tiered or usage-based pricing option for the segment citing feature bloat — the single highest-leverage fix given both frequency and sentiment severity.
- Customer Support Speed (Negative, ~17%): Audit response-time SLAs; a modest improvement here directly addresses a named renewal blocker.
- Onboarding Support (Mixed, ~33%): Pilot a guided onboarding call for new accounts next quarter — lower urgency than pricing but affects a larger share of respondents.
- Mobile App Request (Neutral, ~25%): Log as a roadmap feature request — neutral sentiment suggests a nice-to-have, not a renewal blocker.
The single most common failure in AI-generated survey analysis is theme proliferation — ask a model to categorize 300 open-text responses without a cap, and it will often produce 15 or 20 micro-themes that are really just paraphrases of each other, making the report harder to act on than the raw data. This prompt fixes that with a hard ceiling of six themes, forcing the model to merge genuinely similar feedback rather than manufacturing a distinct category for every unique phrasing.
Sentiment is restricted to four fixed labels — Positive, Negative, Mixed, Neutral — instead of open descriptive text, because a spreadsheet column that says "generally frustrated but appreciative of recent fixes" can't be sorted, filtered, or compared across survey waves. A categorical label can. The Priority flag rule (Negative sentiment plus high frequency) does the actual prioritization work: a theme mentioned by 5% of respondents, however negative, matters less than one mentioned by 40%, and forcing the model to combine both dimensions instead of ranking by frequency alone or severity alone prevents both a loud minority and a quiet majority from dominating the action list.
Requiring 2-3 verbatim quotes per theme exists because summarized survey findings routinely get challenged in meetings — someone always asks "can I see an actual example?" — and having real customer language ready, not paraphrased, settles that question immediately and carries more persuasive weight with stakeholders than a percentage on a slide.
The constraint against inventing themes not actually present in the responses matters more than it might seem: language models asked to find patterns in ambiguous data will sometimes surface a plausible-sounding theme that's actually an extrapolation rather than something respondents said, and a survey report built on a fabricated theme can send a team chasing the wrong fix entirely.