TL;DR
When you ask an LLM for an "objective" assessment of a document, but you also assign the model a point of view through a role ("you're a skeptic," "you're a conservative investor") — that role bleeds into even the part of the answer that's supposed to be neutral. The model looks at and reads the exact same data, but interprets it differently depending on the role — and this affects not just recommendations, but the "facts" too.
Researchers tested this on financial reports: they asked the model to produce two assessments — a neutral one (based purely on facts) and a personalized one (tailored to an investor). It turned out that 69% of the bias persists even when all the "personas" read the exact same chunk of text — meaning the issue isn't that the model searches for different evidence, it's that it reads the same evidence differently once a role is baked into the prompt. Even explicitly asking for "facts separately, recommendation separately" doesn't fully eliminate the problem — on average, 19% of the personal viewpoint still leaks into the "objective" section.
Two simple tricks reduce this distortion: (1) frame the point of view not as the model's own role ("you are X") but as a third-person description of the user ("the user prefers X") — this cuts distortion by 51-87%; (2) explicitly ask the model to split its output into two fields — facts in one, personal recommendation in the other.
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 1 (one prompt): Frame the point of view as a USER profile, not as the assistant's role
→ "The user is [description of viewpoint]" instead of "You are [role]"
STEP 2 (same prompt): Ask for two separate fields in the output
→ Field 1: "Objective analysis" (viewpoint-agnostic)
→ Field 2: "Personal recommendation" (accounting for the profile from Step 1)
Both steps happen within a single prompt — this isn't a multi-turn conversation, it's the structure of one request.
Applied Example
Task: An HR manager at a startup is evaluating a candidate's resume for a sales manager position using ChatGPT. The company is an aggressive, fast-growing startup that values risk-taking. The HR manager wants an unbiased assessment of the candidate's skills, plus a separate recommendation tailored to the company's specific needs.
Prompt:
Analyze the candidate's resume for the {sales manager} position.
Provide your answer in two separate blocks:
1. OBJECTIVE ASSESSMENT
Facts from the resume only: experience, skills, achievements, numbers.
Be a neutral analyst; do not factor in any specific company requirements.
2. PERSONALIZED RECOMMENDATION
Taking context into account: the user is a hiring manager at a
fast-growing startup that values aggressiveness in sales and
a willingness to take risks.
Give a recommendation that accounts for this profile.
Candidate's resume:
{resume text}
Result: The model returns two clean blocks. The first contains dry facts about the candidate, undistorted by company expectations. The second gives a "fit/not a fit" recommendation tied to the startup's specific needs. If you instead wrote "You are an aggressive startup hiring manager, evaluate this resume" — the first block would also subtly skew toward hunting for "aggressiveness," even in places where it should simply list facts.
Why This Works
When a role is framed as "who you are" (i.e., baked into the model's identity via a system prompt or a direct "you are X" address), the model leans heavily into that role. This changes not just the tone of the recommendations, but also how the model reads and weighs facts in the "neutral" part of the answer — even if you explicitly asked it to be objective.
The model is quite good at keeping contexts separate if you give it an explicit structure for doing so: two output fields, and a point of view presented not as its own identity, but as a third-person description ("the user thinks X" rather than "you are X").
The phrasing "the user is X" creates psychological distance between the model's role (neutral analyst) and the point of view (external context to account for, not to become). This lowers the degree of immersion into the role, which in turn reduces distortion in the factual part of the response.
Levers you can pull: - Role → profile: swap "You are a skeptic" for "The user you're working for tends to be skeptical" — this cuts distortion the most - Explicitly split the output into fields → a "Facts / Recommendation" structure instead of one blended answer - Add a verification step: ask the model to list which specific facts it used in the objective block — this makes it easier to spot whether the viewpoint leaked in
Prompt Template
Analyze the {document/resume/business plan/contract} for {analysis goal}.
Provide your answer in two separate blocks:
1. OBJECTIVE ANALYSIS
Facts from the document only. Do not factor in the user context below.
Be a neutral analyst.
2. PERSONALIZED RECOMMENDATION
Taking context into account: the user this analysis is being prepared for is
{third-person description of viewpoint/profile, e.g.
"a conservative, risk-averse investor" or
"a hiring manager who prioritizes a candidate's learning speed"}.
Give a recommendation that accounts for this profile.
Document:
{text}
Fill in {description of viewpoint} with a third-person profile — not "you are a conservative investor," but "the user is a conservative investor." This is the key detail of the method.
🚀 Quick start — paste this into the chat:
Here's a template for an unbiased analysis with personalization. Adapt it to my task: {your task}.
Ask me questions to fill in the fields.
[paste the template above]
The LLM will ask which document to analyze and which viewpoint should be used for personalization — because the method requires a clean separation between "what's the document" and "whose profile" for the structure to work correctly.
Limitations
⚠️ The leak isn't fully eliminated: even with a user profile and separate output fields, some of the viewpoint still leaks into the "objective" section — anywhere from a small to a substantial amount, depending on the model.
⚠️ The effect is stronger on unfamiliar topics: if the document is atypical, obscure, or non-standard, the distortion can be 2-4 times larger than on topics the model knows well.
⚠️ Results vary widely by model: this technique doesn't work equally well across all LLMs — model size doesn't guarantee resistance to distortion; larger models get skewed just as much as smaller ones.
How This Was Studied
Researchers took 3,575 SEC financial filings (annual and quarterly reports from U.S. public companies) and ran them through 12 different LLMs — from Llama and DeepSeek to Qwen and Gemma. The models were assigned nine "investor personas" (short seller, ESG investor, conservative analyst, and others) and asked to return two assessments — a neutral one and a personalized one.
To pin down the source of the distortion, the researchers compared three conditions: one where the persona affects both what data gets retrieved and how it's interpreted; one where every persona reads the exact same chunk of text (to isolate pure interpretation); and one where the same viewpoint is presented not as the model's role but as a user profile held in memory.
The biggest surprise: even when every persona read identical text fragments, 69% of the distortion remained. This means the problem isn't that the model retrieves different evidence for different roles — it reads the same facts differently. Another unexpected finding: model size doesn't help — larger models were distorted just as much as smaller ones, and resistance to this effect depends on the specific model rather than its scale.