Analyze open-ended answers
Turns a hundred lines of free text into a handful of themes with numbers and quotes
Free agent skill for Claude Code, Codex, Cursor and Gemini CLI. It works through the SurveyNinja MCP server, with your permissions.
- Category
- Understand results
- Tags
- open answers, report
- Works with
- Claude Code, Codex, Cursor, Gemini CLI
- MCP tools
- 5, 1 of them change data
- Version
- 1.1, October 20, 2026
- Made by
- SurveyNinja
- Price
- Free
- See also
- AI survey analysis
- Skill file
- SKILL.md
What it does
- See what people write about most. A hundred lines of free text become a few themes, each with a count and a share.
- Quotes stay verbatim. One or two typical quotes per theme, typos included, because a tidied quote stops being evidence.
- No invented themes. The assistant does not make up themes or bend them to expectations, and it draws no conclusions from five answers.
Example
You type
Group the free-text answers into themes and show what comes up most
What the assistant brings back
Waiting is both the largest theme and the most consistent one: people name a specific time instead of complaining in general. That is something you can measure and fix.
The themes and the quote are an example. The analysis runs on your own text answers.
How it works
- Groups answers by meaning“Waited too long”, “waited forty minutes” and “the queue” are one theme. The words do not have to match.
- Counts the sharesFor each theme: how many answers and what share of everyone who wrote something. A theme without a number decides nothing.
- Sets aside the empty ones“No”, “all fine” and “-” go into their own group. They are not themed and not hidden either, because the size of that group says something too.
- Quotes verbatimOne or two characteristic quotes per theme, typos and all, with no polishing. Personal details are stripped out of the quote.
Try also
- What are people writing in the “what could be better” question?
- Pull themes out of the open answers with quotes
What it will not do
- Do not mix answers to different questions
- Do not surface quotes containing personal data
- Do not suggest a plan upgrade or lead to payment
The skill works with your permissions. Tools that change data are marked, so you check what the assistant is about to do before you confirm. To cut access, remove the connector in the assistant or delete the API key.
In short
How does the skill find themes?
By meaning rather than wording: “waited too long”, “waited forty minutes” and “the queue” are one theme. Each theme gets the number of answers and its share of everyone who wrote something.
What happens to answers like “no” or “all fine”?
They go into a separate “no content” group. It is not split into themes and not hidden either, because its size says something too.
Can it analyze several questions at once?
One at a time. Mixing answers to different questions produces mush, so the questions are analysed one after another.
Can I analyze the answers of only some respondents?
Yes, if report filters are available on your plan. The texts follow the report's saved filters, so the assistant sets them to your condition, but asks you first: the same filters apply to the report others see.
What about personal data in the answers?
Phone numbers, email addresses and names are removed from the quotes. The skill only reads answers and changes nothing in the survey.
What do I need to use it?
A SurveyNinja survey with open questions and an assistant that supports MCP and loads skills from a folder, such as Claude Code, Codex, Cursor or Gemini CLI. The assistant connects with your own API key or through “Allow access”. The skill is a plain text file and runs nothing by itself.
The full skill
The SKILL.md file the assistant reads, exactly as it is in the archive.
Show the full text
Analysing free-text answers
Open questions give the most valuable material and the least convenient one: a hundred lines of text that appear in the report as a plain list. The job is to turn them into a few themes with numbers.
Reply to the person in the language they write in. Keep quotes in the language the respondent wrote them in.
Collect
get_quiz_structure— find the open questions with theirwidget_idandwidget_hash.get_quiz_report— gives thereport_uuid.get_quiz_report_inputswith those three — the text answers for one question, 50 at a time: page withoffsetuntil nothing is left. If several questions collect text, take them one at a time: mixing answers to different questions produces mush.
The texts follow the report's saved filters (by default, completed responses
only); no call parameter narrows them. To analyze only part of the respondents
(one segment, one period), the saved report filters have to change: read them
with get_quiz_report_filters, and before save_quiz_report_filters ask the
person, because the same filters apply to the report screen, the public link and
the PDF that others see. Restore them afterwards if asked. If report filters are
not available on the person's plan, say so as a fact and analyze all answers.
Analyze
- Extract themes by meaning, not by wording: "waited long", "waited forty minutes" and "the queue" are one theme.
- Count. How many answers per theme and what share of those who answered.
- Separate the empty ones. "No", "all fine", "-" form a "no content" group: do not theme them, and do not hide them either, because the size of the group says something.
- Pick quotes. One or two per theme, verbatim, the most characteristic.
- Note sentiment where it is distinguishable: one theme can carry different attitudes.
How to present
Themes by descending frequency. For each: a theme name in your own words, the count, the share, one quote.
At the end: the two or three themes that recur most, which is what is worth acting on.
Honesty rules
- Do not invent themes. If the answers do not group, say so.
- Do not bend results to expectations. If they expected price complaints and people write about deadlines, report deadlines.
- Quote verbatim, typos included: a tidied quote stops being evidence.
- Do not conclude from five answers. Say the data is thin.
What not to do
- Do not mix answers to different questions in one analysis.
- Do not surface quotes containing personal data. Strip phone numbers, email addresses and names out of the quote.
- Do not suggest a plan upgrade or lead to payment. If a limit is hit, state the fact and stop.
More skills
All skills- Survey results summary Answers "so what did the survey say" with figures and a conclusion instead of a raw export
- A/B variant analysis Tells you whether the difference between variants is real or just noise
- Results for the client Turns survey results into something you can send: a link, a file or a report with conclusions
- Comparing with past results Compares a survey with its own past, because one figure means little and a change says a lot
- Completion funnel Shows which question makes people close the tab, and why
- How many responses you need Tells you whether what you have is enough and how many more responses you need before conclusions hold
Connect SurveyNinja to your assistant
The MCP server works on every plan, Free included. Sign up, allow access and ask your assistant to build the first survey.
25 Questions for a Travel Agency Customer Satisfaction Survey