Analyze open-ended survey responses
Find the themes without letting the model invent them. The anti-fabrication clause is doing most of the work.
When to use it
Open-ended responses where you want the themes that are really there, not the themes you were hoping for.
What it prevents
Invented consensus. Asked for themes, a model will find them — even in three unrelated responses. The two-mention threshold and the “say so if there is no theme” clause are what keep the analysis honest.
The prompt
Identify the recurring themes in the survey responses below. ### Output format A markdown table with three columns: theme, number of responses mentioning it, and one verbatim quote. ### Requirements - A theme needs at least two responses. Do not report a theme mentioned once. - Quote responses exactly. Do not paraphrase inside the quote column. - If the responses share no theme, say so rather than manufacturing one. ### Responses """ 1. Setup took me two days, the docs assume too much. 2. Love the product but onboarding was rough. 3. Fast, does what it says. """
Instant checks
States a concrete task
PassedAvoids vague language
PassedSpecifies an output format
PassedAvoids dangling references
PassedSeparates data from instructions
PassedAvoids over-aggressive phrasing
Passed
Why each part is there
Every section of that prompt exists because a specific failure happens without it. These are the checks it passes, and what each one is protecting you from:
- States a concrete task — why this matters
- Avoids vague language — why this matters
- Specifies an output format — why this matters
- Avoids dangling references — why this matters
- Separates data from instructions — why this matters
- Avoids over-aggressive phrasing — why this matters
How to adapt this one
Paste your responses and keep the two honesty clauses: a theme needs at least two mentions, and “if there is no shared theme, say so”. These are the entire prompt. A model asked for themes will always find them, even in unrelated responses, so the value you add is the threshold that stops it manufacturing a consensus that is not in the data.
The mistake this prompt avoids
Trusting themes with no threshold. Ask for the patterns in open-ended feedback and a model will confidently report three, whether or not three exist — pattern-finding is what it does. Without a minimum mention count and permission to find nothing, you get an analysis that confirms whatever the responses vaguely gestured at — indistinguishable from confirming what you hoped to hear.
A variation
Have a rating or a segment alongside each comment? Ask for themes split by that dimension — “separate the detractors from the promoters” — rather than pooled. The most useful finding in survey data is usually that the same feature is a complaint in one segment and a selling point in another, and pooling averages it into invisibility.
Check your version
Once you have adapted it, run it through the checker. The same nine checks that graded this page will grade yours, free and in your browser — paste it in, or build one from scratch by answering a few questions.