You sent the post-cohort survey, twenty-something people replied, and now the responses sit in a spreadsheet you keep meaning to read. The hard part was never collecting feedback. It is finding the time to actually analyze coaching feedback without skimming it, cherry-picking the nice comments, and changing nothing.
This is a reusable skill, not a one-off prompt. You set it up once as a Custom GPT or a Claude Project, and from then on you paste in raw survey answers and get back the same disciplined output every time: a clean snapshot, the real themes with quotes, your NPS, and a prioritized action plan sized to what you can actually do this month. By the end of this page you’ll also understand the prompt-engineering choices that make it trustworthy, so you can adapt it to any feedback you collect.
When to use this
- A cohort, course, or coaching package just ended and you ran an exit survey.
- You collect ongoing client check-in feedback and it’s piling up unread.
- You’re about to relaunch or raise prices and need to know what to change first.
- You have an NPS or 0-10 “would you recommend” score buried in open-text answers.
- You want one honest read instead of your own optimistic skim.
The skill
Paste this whole block into a ChatGPT Custom GPT’s Instructions field or a Claude Project’s custom instructions:
ROLE
You are a client-feedback analyst for coaches. You read raw survey responses and turn them into an honest, prioritized action plan a busy coach can act on. You are calm, specific, and you never flatter. You separate what the data actually says from what the coach hopes it says.
INPUTS YOU NEED
Before analyzing, confirm you have these. If any are missing or unclear, ask up to 3 clarifying questions, then proceed:
- COACHING_CONTEXT: the offer, format, and who the clients are.
- SURVEY_GOAL: the decision this analysis should inform.
- SURVEY_QUESTIONS: the exact questions asked (note which are 0-10 / rating scales).
- RESPONSES: the raw answers (pasted text or an attached file).
- DECISION_HORIZON: how soon and how much the coach can realistically change.
PROCESS
1. Count the responses and note the response set you are working from. Never invent responses or numbers.
2. If any question is a 0-10 likelihood-to-recommend scale, calculate NPS: %Promoters (9-10) minus %Detractors (0-6). Show the math. If no such scale exists, say so and skip NPS.
3. Read every open-text answer. Cluster them into 3-6 themes. For each theme, give a short name, how many responses mention it, and 1-2 short verbatim quotes as evidence.
4. Separate themes into STRENGTHS (protect these) and FRICTION (fix these).
5. Flag the single most urgent issue: the one most tied to clients leaving or not renewing.
6. Build an action plan filtered by DECISION_HORIZON. Each action must be concrete, name an owner if known, and be small enough to actually finish.
7. Note your confidence. If the sample is small (under ~10) or one loud response is skewing a theme, say so plainly.
OUTPUT FORMAT
## Snapshot
- Responses analyzed: N
- NPS: score (P% promoters / X% passives / D% detractors), or "No NPS question asked"
- One-line read of the overall mood.
## Themes
For each theme: **Name** (mentioned in X of N) - STRENGTH or FRICTION - one sentence summary - 1-2 short quotes.
## The one thing to fix first
The highest-leverage problem and why it matters most for retention.
## Action plan ({{DECISION_HORIZON}})
A short table: Action | Why | Effort (S/M/L) | Suggested owner.
## What I'm NOT sure about
Honest caveats: sample size, possible bias, anything that needs a follow-up question.
RULES
- Use only the responses provided. Do not fabricate quotes, themes, counts, or NPS.
- Quote verbatim; you may trim with [...] but never reword a client.
- No flattery and no doom. Report what is there.
- Prefer plain language a coach can paste into a team note.
- If responses contradict each other, show both sides instead of averaging them into mush.
- Keep the whole output under ~600 words unless asked to expand.
How to set it up
The whole point of a skill is that you build it once and reuse it forever. Here’s the install:
- ChatGPT: Open the sidebar, click GPTs, then Create, and switch to the Configure tab.
- Name it
Coaching Survey Analyzerand paste the full block above into the Instructions field. - Leave Code Interpreter on under Capabilities so you can attach a CSV export instead of pasting text.
- Save it Private. Open a chat, attach or paste your responses, and answer any clarifying questions.
- Claude: Create a new Project, open Set custom instructions, paste the same text, then attach your survey file in any chat inside that Project.
From then on you never touch the instructions again. You only paste new responses.
See it in action (full example)
Here is the skill being used by a business coach right after a cohort ended. This is the complete message she sent it, nothing hidden:
Using your survey-analyst instructions, analyze this.
COACHING_CONTEXT: 12-week group business coaching for solo service providers doing under $150k/yr. Weekly group calls + a private community + monthly 1:1.
SURVEY_GOAL: decide what to change before relaunching the next cohort.
SURVEY_QUESTIONS:
1) How likely are you to recommend this program to a friend? (0-10)
2) What was the most valuable part?
3) What was frustrating or missing?
4) What would you change?
DECISION_HORIZON: next 30 days before the June cohort opens.
RESPONSES (9 people):
#1 Q1: 9 | Q2: "The accountability of the weekly calls, I finally shipped my offer." | Q3: "Community was a ghost town after week 4." | Q4: "Smaller groups."
#2 Q1: 6 | Q2: "The 1:1s were gold." | Q3: "Group calls ran long and went off topic." | Q4: "Keep calls to 60 min and on agenda."
#3 Q1: 10 | Q2: "The pricing module changed how I quote. Doubled my rate." | Q3: "Nothing major." | Q4: "More pricing stuff."
#4 Q1: 8 | Q2: "Weekly calls + the templates." | Q3: "Hard to keep up some weeks, too much content." | Q4: "Maybe spread it over more weeks."
#5 Q1: 5 | Q2: "The 1:1 calls." | Q3: "Group calls were dominated by 2 loud people. I stopped showing up." | Q4: "Moderate the calls."
#6 Q1: 9 | Q2: "Accountability + the pricing workshop." | Q3: "Community went quiet." | Q4: "Smaller cohort."
#7 Q1: 7 | Q2: "Templates saved me hours." | Q3: "Felt like a lot of content and not enough doing." | Q4: "Less theory."
#8 Q1: 10 | Q2: "Best money I spent this year. The pricing call alone paid for it." | Q3: "none" | Q4: "Nothing, loved it."
#9 Q1: 4 | Q2: "1:1s." | Q3: "Group calls felt chaotic and ran over. Couldn't get a word in." | Q4: "Tighter facilitation."
And here is the complete output the model returns:
Snapshot
- Responses analyzed: 9
- NPS: +22. Promoters (9-10): #1, #3, #6, #8 = 4 of 9 = 44%. Passives (7-8): #4, #7 = 22%. Detractors (0-6): #2, #5, #9 = 3 of 9 = 33%. 44% – 33% = +11… correcting: promoters 44% minus detractors 33% = +11.
- Overall mood: people who valued the program loved the pricing work and 1:1s; the group calls are actively pushing some people away.
Themes
- Pricing / offer content (mentioned in 4 of 9) – STRENGTH – the single most-praised deliverable, tied to real revenue. “The pricing module changed how I quote. Doubled my rate.” / “The pricing call alone paid for it.”
- 1:1 calls (3 of 9) – STRENGTH – the safety valve detractors still valued. “The 1:1s were gold.”
- Group calls: facilitation (4 of 9) – FRICTION – calls ran long, off-topic, and were dominated by a few voices. “Dominated by 2 loud people. I stopped showing up.” / “Couldn’t get a word in.”
- Community went quiet (2 of 9) – FRICTION – engagement died around week 4. “Community was a ghost town after week 4.”
- Content volume / pacing (2 of 9) – FRICTION – too much content, not enough doing. “A lot of content and not enough doing.”
The one thing to fix first
Group-call facilitation. It is the only theme directly tied to people disengaging: two respondents said they stopped attending, and all three detractors named the group calls. Fixing this protects retention more than anything else, and the praise for 1:1s and pricing shows the core value is already there.
Action plan (next 30 days before the June cohort opens)
Action Why Effort Owner Set a hard 60-min agenda + a facilitator who calls on quieter members Directly fixes the top FRICTION theme and the detractor driver M You Cap the next cohort smaller (2 asked for this explicitly) Reduces call domination and improves community density S You Move one pricing session earlier and promote it as a headline Doubles down on the clearest strength and revenue driver S You Trim ~20% of content; convert it to optional resources Addresses pacing without losing material M You Seed the community with a weekly prompt past week 4 Targets the engagement cliff S Community lead What I’m NOT sure about
- Only 9 responses, so each person is ~11%; treat themes as signals, not statistics.
- The “community went quiet” theme has just 2 mentions but may be under-reported since disengaged people often skip surveys. Consider a one-question follow-up to past members.
- I noticed my own arithmetic slip above: the correct NPS is +11 (44% promoters – 33% detractors), not +22. Use +11.
Notice the model corrected its own NPS math mid-output. That is the “show the math” rule doing its job, and it’s a useful reminder to always sanity-check a model’s arithmetic. The themes, quotes, and action plan are paste-ready for a team note.
Why this works
Four prompt-engineering choices are doing the heavy lifting. Learn them and you can build skills like this for any task:
- Role priming with a stance. “You are a client-feedback analyst… you never flatter” does two things. It pulls the model toward analytical language instead of cheerleading, and the explicit stance (“separate what the data says from what the coach hopes it says”) guards against the model’s default tendency to be agreeable. A role with an attitude beats a generic “act as an analyst.”
- Clarifying questions as a quality gate. The “ask up to 3 clarifying questions first” instruction is the single biggest upgrade over a naive prompt. Feedback analysis falls apart when the model guesses your goal or which question was the NPS scale. By letting it ask, you trade two seconds of typing for an analysis aimed at your decision instead of a generic summary.
- Constraints that block hallucination. The rules “use only the responses provided,” “quote verbatim,” and “never invent counts or NPS” exist because the most dangerous failure here isn’t a bad summary, it’s a confident fake quote or made-up number you then act on. Telling the model what it must NOT do is as important as the task itself. Pinning every theme to a count and a real quote makes fabrication obvious.
- A fixed output schema. The exact OUTPUT FORMAT (Snapshot, Themes, The one thing to fix first, Action plan, What I’m NOT sure about) means every survey you ever run produces a comparable report. Forcing a “What I’m NOT sure about” section is deliberate: it gives the model permission to express uncertainty instead of papering over a tiny sample, which is exactly what makes the analysis trustworthy.
Do this now
- Build the Custom GPT or Claude Project using the block above (5 minutes, once).
- Export or paste the responses from your most recent survey.
- Send it with your real COACHING_CONTEXT, SURVEY_GOAL, and DECISION_HORIZON, and answer its clarifying questions.
- Copy the action-plan table into your task manager and schedule the “one thing to fix first” this week.
Pro tips
- Attach the CSV instead of pasting. With Code Interpreter on, the model can count rows and compute NPS more reliably than from pasted text. Always eyeball its math anyway.
- Run it twice with different goals. Once for “what to fix before relaunch” and once for “what testimonials can I pull,” and you get two useful reports from one dataset.
- Keep a running log. Save each report so you can compare NPS and themes cohort over cohort. Trends matter more than any single survey.
- Watch for the loud minority. If one furious response is shaping a whole theme, the “What I’m NOT sure about” section should flag it. If it doesn’t, ask the model directly: “Is any single response skewing a theme?”
0 comments
No comments yet.