Skip to content

Cohort

Cohort runs a cohort of distinct AI user personas — a confused First-Timer, an impatient Power User, and an Accessibility user — in parallel against any website.

Core trick

Playwright drives three persona agents through the same site in parallel, and a principal agent merges their logged friction into ranked fixes.

Tags

Description

Cohort runs a cohort of distinct AI user personas — a confused First-Timer, an impatient Power User, and an Accessibility user — in parallel against any website. Each persona autonomously browses, narrates in character, and logs the friction they hit. A principal agent then reconciles their conflicting feedback into one prioritized, segment-aware report: ranked fixes, explicit tradeoffs where personas disagreed, and segments at risk of abandoning. The problem: a single automated test gives one perspective. A site can score perfectly for power users while silently losing first-timers and being unusable on a screen reader. Cohort makes those tradeoffs visible by running many simultaneous perspectives and synthesizing the conflicts.
benjaminmerchin/Cohort★ 00 forksTypeScriptCreated May 23, 2026 · last push May 24, 2026

README excerpt

# Cohort

> **AI-powered multi-persona user testing.**
> Deploy a cohort of distinct AI personas that autonomously browse your site,
> try to complete goals, and report where the experience breaks — then a
> principal agent reconciles their conflicting feedback into a prioritized,
> segment-aware report.

Built at the Google I/O hackathon. Powered by **Gemini 3.5 Flash** via the
**Managed Agents (Interactions) API**, **Playwright**, **Next.js 16**, and
**shadcn**.

## The idea

A single automated test gives you one perspective. Cohort gives you *many
simultaneous perspectives* and reconciles the conflicts between them —
surfacing tradeoffs (e.g. *"optimized for power users at the expense of
first-timers"*) that no single test reveals.

Three distinct personas run in parallel against your site:

| Persona            | What they're sensitive to                                    |
| ------------------ | ------------------------------------------------------------ |
| 👋 First-Timer     | Jargon, missing onboarding, unlabeled icons, no obvious next steps |
| ⚡ Power User      | Extra clicks, marketing noise, slow flows, missing shortcuts |
| ♿︎ Accessibility   | Unlabeled inputs, icon-only nav, ARIA gaps, low contrast      |

Each persona runs a `perceive → decide → act` loop in its own browser
context, narrating an in-character monologue and logging friction points.
The Gemini **Managed Agents** harness drives the function-calling step
protocol; we execute the tools (`observe`, 

Team