DEV Community

personalab
personalab

Posted on

I tested my AI product tester on 3 real SaaS products. Every persona said no.

Two months ago I was about to ship a crypto signal product. It "worked technically" but I had zero
signal on whether anyone would subscribe.

So I wrote 12 fictional user personas as markdown files — a burnt veteran trader, a hostile compliance
officer, a YC partner, a noise-allergic fund manager — and built a Python harness that fed each one my
actual product transcripts and asked: "what would you actually do?"

The answers were brutally helpful. They killed features I'd spent weeks on. I open-sourced the harness
as personalab (MIT).

## Then I pointed it at 3 real products

1. personalab itself — yes, I tested my own tool with my own tool. 0/8 simulated B2B SaaS buyers
said they'd pay $99/mo. The case study became my own roadmap.

2. PostHog — 6/12 personas said "yes I'd pay" after reading a 7-day product transcript. Same 12 over
5-day agentic simulation: 0/12 sustained. The "yes" was first-impression optimism; the "no" was
multi-day reality.

3. Cal.com — 8/12 yes at $5-20/mo. And here's the gold: 75% of complaints converged on ONE thing —
the free-plan "Powered by Cal.com" branding makes recipients suspect spam. 8 distinct personas
independently nailed the same conversion lever.

## A pattern emerges

After 3 case studies, the number of dominant friction clusters in a personalab run seems to correlate
with PMF stage:

  • Pre-PMF: 4-5 diffuse complaints (my own tool)
  • Mid-funnel: 5 distinct friction clusters (PostHog: price / learning / UI / compliance / privacy)
  • Late-funnel: 1-2 clean conversion levers (Cal.com: branding)

If this holds in case study #4+, personalab becomes a free PMF-stage diagnostic from a $1 LLM run.

## Honest disclaimer

The default personas accidentally encoded personalab-specific preferences, so some quotes leak when
reused on other products. I kept the bug in the case study writeup rather than rerunning with clean data
— it surfaces persona design as a real engineering concern.

## Try it


bash
  git clone https://github.com/g16253470-beep/personalab
  cd personalab && pip install -e .
  personalab run --mode static --personas ./personas --adapter your_adapter --llm gemini:gemini-2.5-flash

  40-line adapter, 12 default personas, MIT licensed.

  Repo: https://github.com/g16253470-beep/personalab

  Two questions for DEV

  1. What product would you point this at first?
  2. Real PMF business or just an OSS curiosity?

  Tell me where this falls apart — that's the next case study.
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.