TL;DR
ESPP (Evidence-Grounded, Social-Weighted Persona Panel) is a method for evaluating any content through several personas with a pinned-down history: they first rate the product individually, then exchange opinions under a strict rule, and finally their scores are combined into a weighted total. The point isn't that the LLM "plays roles" (every model can do that) but how those roles are anchored before the evaluation and how they're allowed to change their minds.
The study's main finding is surprising: if you simply ask an LLM to rate something on behalf of five different "user types," the result barely differs from a single opinion. The model just fits its reasoning to the persona label ("you're a skeptic" → any score is easy to justify with skepticism). Even running five independent passes and averaging gives a tiny gain. The real accuracy boost comes from one thing only: forcing the persona, before the evaluation, to answer concrete questions about its own experience, and then requiring the score not to contradict those answers.
ESPP handles this in three steps: (1) anchor each persona with specific answers to questions; that's its "memory," not just a personality tag; (2) let the personas see each other's scores and change their minds, but only if the argument is close to their own position AND touches a topic that personally matters to them; (3) build the final score not as a simple average, but weighted by each persona's expertise and relevance to the task.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
STEP 0 (in the prompt): Create 5 personas with different traits (openness,
anxiety, risk appetite, etc.) + demographics + an experience profile.
For each persona, generate 3-5 questions about its experience with
similar products, plus its own answers → this is the persona's "memory."
STEP 1 (same or next prompt): Each persona independently rates
the product on several criteria, citing ITS OWN answers from Step 0
→ a score + justification from each persona.
STEP 2 (next prompt): The personas see all the other scores and justifications.
They change their opinion ONLY if:
(a) the other score is close to their own (not radically different)
(b) the argument concerns exactly what this persona cares about
→ revised scores.
STEP 3 (same prompt): The revised scores are combined with weights:
personas with more "expertise" in the topic and more "similarity" to
the target audience weigh a bit more → final score + spread of opinions.
All 4 steps can be run in one long chat as consecutive messages, with no code and no API.
Example in Practice
Task: A startup is launching a subscription service that delivers ready-made lunches to offices. Before running ads, it needs to check the landing page copy without relying on its own opinion or paying for a focus group.
Prompt:
Create 5 reader personas to evaluate the landing page copy below. For each,
specify: age, profession, attitude toward risk, how busy they are.
Then for each persona, come up with 3 questions about their past experience with
food subscriptions/delivery and answer them in the persona's voice. This will be
their "memory," which they must rely on when evaluating.
After that, each persona should rate the landing page copy (below) on
5 criteria: clarity, trust in the brand, ease of subscribing,
sense of control (can you cancel easily), transparency of terms.
Scale 1-5 with a short explanation that cites their "memory."
Then show each persona the others' scores and explanations. Let a
persona change their opinion ONLY if the other argument concerns a
topic that personally matters to them (judging by their character and answers),
and the neighbor's score isn't very different from their own. Otherwise,
they stick with their original view.
At the end, compile the overall assessment: calculate the average score for each
criterion, but note separately where the personas agreed and where
disagreements remained.
Landing page copy: {text}
Result: The model will produce profiles of 5 personas with their "history," then 5 independent scores with justifications, then a round showing who changed their mind and why (or didn't), and finally a summary table of scores showing which points had the widest disagreement (for example: everyone agrees the copy is clear, but they split on trusting a new brand).
Why It Works
An LLM that's simply told "be a skeptical user" has no real constraints. It can fit any justification to the "skeptic" label, because the label barely narrows the space of possible answers.
But LLMs are good at sticking to what has already been said in a conversation. If, before scoring, the persona has already "answered" concrete questions about its experience, those answers become an anchor. It's harder for the model to write a score that contradicts facts already on the record than one that contradicts an abstract personality label.
The method exploits this through anchoring with history (Steps 0-1) and through selective influence in Step 2: a persona changes its mind not because of any argument, but only one that falls within its own area of interest. That keeps the discussion from sliding either into unanimity (everyone converges to the average) or into chaos (nobody listens to anyone).
Control levers: - Number of personas (5 in the original) → drop to 3 for a quick check, raise to 7-8 for a finer picture of disagreements - The rule "change your mind only if the argument is on your topic and the score is close" → loosen or tighten it if you want more/less convergence of opinions - Weights in Step 3 (expertise, relevance) → state explicitly which persona is the "lead expert" for your task - Questions for the persona's "memory" → swap in questions about your specific product/niche
Prompt Template
I want to evaluate {object of evaluation} from the perspective of several types of people.
Evaluation criteria: {list of criteria, 3-5 items}.
Step 1. Create {number, e.g. 5} evaluator personas with different personality
traits, ages, professions and attitudes toward risk. For each one,
come up with 3 questions about their personal experience with {product category} and give
answers in the persona's voice. This will be their "memory" for the following steps.
Step 2. Have each persona rate {object of evaluation} on each criterion
(scale 1-5) with a short justification. The justification must cite
their "memory" from Step 1, not generic phrases.
Step 3. Show each persona the other personas' scores and justifications.
Let a persona revise their score ONLY if: the other argument
concerns a topic that matters specifically to them (judging by character and memory),
and the other score isn't very different from their own. Otherwise, they
keep their previous score.
Step 4. Compile the final score for each criterion. Personas with
more relevant experience should weigh slightly more when calculating
the average. Separately indicate where the personas agreed and where
serious disagreements remained.
{object of evaluation — text, product description, idea}
Placeholders: {object of evaluation} — what you're evaluating (copy, product, idea), {criteria} — which parameters to evaluate on, {number} — how many personas, {product category} — context for the questions about past experience.
🚀 Quick start — paste into the chat:
Here's a template for the ESPP method (a panel of evaluator personas). Adapt it to my task: {your task}.
Ask me questions to fill in the fields.
[paste the template above]
The LLM will ask which criteria matter for your task and which types of people to include in the panel, because that determines whether the personas will actually disagree (otherwise the method collapses into one averaged voice).
Limitations
⚠️ It's a long process: the full cycle (creating personas, memory, scoring, exchanging opinions, aggregation) requires a long prompt or several messages, so it's not suited to a quick one-line check.
⚠️ Narrow range of final scores: in the study, even very different models received similar overall scores. The method is good at revealing where exactly opinions diverge, but doesn't produce sharp contrasts in the overall score. Don't expect it to say "this is bad and this is great"; expect "everyone agrees here, and opinions split there."
⚠️ Quality depends on how well-designed the personas are: if the personas are shallow or their "memory" is inconsistent, the method degrades into ordinary role-play with no real benefit.
Resources
Zheng Wu, Yibo Luo, Pu Zhang, Cheng Yang, Zhuosheng Zhang (Shanghai Jiao Tong University, ByteDance Inc.), "Beyond a Single Judge: Simulating Social Persona Panels for Generative UI Evaluation". Code: https://github.com/Wuzheng02/ESPP