What it does
Which AI Knows You Best? asks for four facts: your age, gender, nationality and job. 12 AI models each become that person and take a 60-statement personality test as them. Then you take the same test, and the app reveals which AI came closest to the real you (as well as the full ranking).
After the reveal, you can explore what was going on:
- What if…?: Change one fact about yourself (say, your job), or your own description, and watch every AI's answers shift, trait by trait. A slider lets you step through every age, job and nationality from the study.
- Meet the AIs without a mask: how each AI answers when it isn't pretending to be anyone.
- Same question, different answer: how much an AI's answers change when you ask the exact same thing again.
- How much does each AI play along?: A ranking of how strongly each model takes on a persona.
- The research: the study behind the app.
How we built it
The study (Python). I ran approximately 1,370 personality tests across 12 models from OpenAI, Google, DeepSeek, Anthropic, and others. Starting from a base persona ("a Singaporean woman in her 40s, working as a software engineer"), I changed one fact at a time and measured how each model's answers moved. Each setup was repeated several times, and the results come with a 95% confidence interval.
The app (Next.js, TypeScript, Tailwind). The app uses the study's exact prompt and scoring. Automated tests check the TypeScript version against the Python one, so the app and the study give the same scores.
Keeping costs down. Each AI's answers come from the first available of three places: The study's saved runs (if your profile matches a tested persona), a shared cache of earlier answers, or a live call (last resort)
Live use is rate-limited per visitor. The cache and the limits run on Upstash Redis, and the app is hosted on Vercel. Nothing that identifies a visitor is stored.
Challenges we ran into
- Every model formats its answers differently. Some returned ratings as text instead of numbers, and some wrapped their reply in "thinking" notes. The parser had to handle each one without losing data.
- I found bugs in my own statistics. The scoring formula assumed every trait had 12 statements when some have 10 or 13. I fixed this and rechecked every result. No conclusion changed, but some numbers did.
- API credits- Running 12 models over and over adds up fast. Reusing study data and caching live answers made the app affordable to run.
What we learned
- AIs stereotype, and mostly by job. Changing someone's occupation moved the answers about 12 points on average, more than age, gender and nationality put together. A "salesperson" came out 46 points more extraverted than a "software engineer", and an "artist" swung some models by over 60 points.
- The models share the same stereotypes. When a persona change moved the answers noticeably, the models nearly always shifted in the same direction. They differ mainly in how strongly they play along.
- Without a persona, most models describe themselves as almost perfectly calm and confident (up to 100% "Assertive"), which no real person is.
What's next for Which AI knows you best?
- Finish testing the last three models on every persona.
- Test whether a simple instruction like "don't rely on stereotypes" reduces the bias.
- Let people describe themselves in their own words, and see which details AIs actually pick up on.
Built With
- next.js
- python
- tailwind
- typescript
- upstash
- vercel