What a Virtual Focus Group Tool actually does
Generates branded synthetic-respondent panels from demographic and psychographic profiles, then clusters themes, sentiment, and follow-up questions into a PDF research report in minutes.
The tool works by taking a researcher's study brief — target demographics, psychographics, and a question set — and fanning out concurrent persona-generation calls to Claude Sonnet 4.6. Each persona is a system-prompt-cached character with consistent opinion history across a session. Responses land in parallel, theme-clustering runs via text-embedding-3-small plus pgvector, and a final summarization pass produces a structured report with quotes, sentiment heatmaps, and follow-up suggestions. Real-respondent panels can be layered in via a recruitment API integration as a premium tier.
The synthetic-focus-group category split sharply in 2026. Real-panel platforms (Remesh, Discuss.io, Recollective) are enterprise-only and do not sell white-label access. Synthetic-persona platforms (Synthetic Users at $999/mo, Vurvey, CreatorML) charge extreme markups over LLM costs. The underlying cost to generate 100 synthetic personas answering 10 questions at 200 tokens each is roughly $5 on Claude Sonnet 4.6 — making the white-label SaaS layer structurally fragile at any scale above 20 studies per month. The industry bodies have responded with caution: MRS, Insights Association, and ESOMAR all issued advisories through 2026 requiring explicit synthetic-respondent labeling on any research output. That compliance requirement is the product differentiator — and no vendor sells a consent-and-disclosure pipeline out of the box.
AI capabilities involved
Synthetic-persona generation from demographic and psychographic profiles
Real-time theme clustering across responses
Sentiment and tone analysis per persona
Question-flow optimization and follow-up suggestion
Structured PDF report generation with quotes and heatmaps
Who uses this
- Market-research agencies running 20+ concept-testing studies per month who need faster turnaround than real panels
- Brand strategy consultants who want a branded research deliverable without Remesh or Synthetic Users visible in the methodology
- Product teams at B2B SaaS companies running continuous discovery that can't justify $999/mo per study cycle
- Academic and policy researchers using synthetic respondents as a pre-screening filter before expensive real panels
- Agency founders building a branded insights product to offer alongside creative or media services
SaaS alternatives on the market
Real products you can sign up for today — with current 2026 pricing, honest pros and cons.
Synthetic Users
Solo researchers or small product teams running occasional concept tests who don't resell the research output to clients
No free tier
$999/mo
Pros
- +Fastest path to a working synthetic panel with no engineering effort
- +Pre-built demographic profile library covers common B2B and B2C archetypes
- +Results export to CSV and slide-ready charts
Cons
- −No white-label tier — the Synthetic Users brand is visible on all output
- −At $999/mo and 20 studies, cost per study is ~$50 vs ~$5 in direct LLM costs
- −No audit-ready ESOMAR disclosure documentation included
- −Cannot integrate real-respondent panels into the same workflow
Vurvey
Enterprise research teams at brands running high-budget mixed-method studies, not agencies looking to resell a branded product
Demo on request
Quote-based
Pros
- +Combines AI-moderated real panels with synthetic respondent options
- +Video-response capture adds qualitative depth beyond text
- +Enterprise-grade security posture for large organizations
Cons
- −No public pricing — enterprise-only sales process adds weeks to evaluation
- −No white-label reseller tier
- −Video processing adds per-respondent cost unpredictability
- −Minimum contract sizes are designed for Fortune 500, not agency resellers
Remesh
Large brands running rigorous consumer research where methodological credibility matters more than speed or cost
Demo only
Enterprise quote
Pros
- +Real-respondent panels with AI moderation provide methodologically stronger data than pure synthetic
- +Live session format with real-time theme clustering is a premium differentiator
- +Strong track record with CPG and healthcare research buyers
Cons
- −No white-label tier at any price — Remesh brand is on every deliverable
- −Enterprise contract minimums start well above $10K/year
- −Real-panel recruitment adds 5–10 business days per study
- −No synthetic-respondent option for rapid concept screening
The AI stack
The production pipeline for a virtual focus group tool has three cost layers: persona generation (LLM), theme extraction (embeddings + reranker), and report rendering (PDF). The LLM layer dominates quality; the embedding layer is nearly free at $0.02/M tokens; the PDF render is a one-time engineering investment.
Persona generation and response
Generates consistent persona characters and their responses to each study question using system-prompt-cached demographic profiles
Claude Sonnet 4.6
$3 / $15 per M tokens in/outPaid-tier clients who need consistent persona voice across 10+ follow-up rounds
GPT-5.4 mini
$0.75 / $4.50 per M tokens in/outFree-tier or high-volume screening runs where cost matters more than persona nuance
Gemini 3.5 Flash
$1.50 / $9.00 per M tokens in/outStudies where respondents react to visual stimuli (packaging, ads, UI screens)
Our pick: Claude Sonnet 4.6 for paid-tier studies (persona fidelity is your product quality signal). GPT-5.4 mini for free-tier or bulk screening runs where $5 vs $0.75 per study matters at volume.
Theme clustering and semantic search
Embeds all persona responses and clusters them into themes, surfaces representative quotes, and powers semantic search across the study archive
text-embedding-3-small
$0.02 / M tokensAll tiers — embedding cost is negligible even at high volume
Voyage rerank-2.5
Paid — per-query pricingPremium-tier reports where quote curation is part of the deliverable value
Our pick: text-embedding-3-small as default for all studies. Add Voyage rerank-2.5 on the PDF generation pass for paid-tier clients where quote selection quality matters.
Report generation and rendering
Converts clustered themes and ranked quotes into a structured PDF research report with sentiment heatmaps and executive summary
Claude Sonnet 4.6 (summary pass) + Puppeteer Edge Function (PDF)
$3 / $15 per M tokens for summary; ~$0 for PDF render beyond Vercel function costWhite-label reports where your agency brand and layout must appear exactly as designed
react-pdf (server-side rendering)
$0 beyond hostingTeams comfortable in React who want maintainable PDF templates without Puppeteer overhead
Our pick: Claude Sonnet 4.6 for the executive-summary and theme-labeling pass. React-pdf for the PDF template if the team knows React; Puppeteer if you need pixel-exact brand matching.
Reference architecture
The core pipeline is a fan-out: one study triggers N parallel Edge Function calls (one per persona), results stream into a Supabase table, a clustering job runs on completion, and a report-generation function produces the PDF. The hardest engineering challenge is persona consistency across follow-up rounds — solved by storing the persona system prompt as a cached row and re-injecting it on every follow-up call.
Researcher creates a study brief with target demographics, psychographic traits, and a question set
Next.js frontend (Lovable-built or custom)Study rows stored in Supabase `studies` table with JSONB `personas_config` (age ranges, income, values, brand affinities). Question set stored as `questions[]` JSON array.
Persona generation job fans out N parallel Claude Sonnet 4.6 calls (one per persona slot)
Supabase Edge Function (Deno) or Trigger.dev background jobEach call uses a system-prompt-cached persona template injected with that persona's demographic config. Responses land in the `responses` table with persona_id FK. Prompt caching reduces cost on follow-up rounds by 90%.
Responses are embedded and inserted into pgvector for theme clustering
Supabase Edge Function calling OpenAI text-embedding-3-smallEach response text is chunked at sentence level and embedded. Cosine similarity clustering groups semantically close responses into candidate themes. Theme labels are generated by a GPT-5.4 mini summarization pass.
Follow-up questions are generated based on identified themes
Claude Sonnet 4.6 via Edge FunctionThe study moderator can accept AI-suggested follow-ups or write custom ones. Each follow-up triggers another fan-out, this time with persona history injected from `responses` table for consistency.
Sentiment analysis runs across all responses per theme
Claude Haiku 4.5 batch call (cost-optimized)Haiku 4.5 is used here rather than Sonnet — simple positive/neutral/negative classification at $1/$5 per M keeps cost under $0.50 per study even at 100 personas × 20 responses.
Report generation: executive summary, themes, quotes, heatmap
Claude Sonnet 4.6 (summary) + react-pdf or Puppeteer (render)Sonnet 4.6 writes the executive summary and theme narratives from the clustered data. React-pdf assembles the branded template with client logo, agency colors, and methodology disclaimer. Output stored on Cloudflare R2.
Report delivered as PDF download + shareable link
Supabase Storage + R2 signed URLPDF stored in per-tenant R2 bucket. Shareable link uses a signed 7-day URL. Report metadata (completion time, persona count, cost) logged to `study_runs` table for billing.
Estimated cost per request
~$5–$10 per study (100 personas × 10 questions on Claude Sonnet 4.6 at ~200 tokens/response = ~$0.30 in LLM; clustering + report summary adds ~$0.20; total well under $1 per study for the AI bill alone; $5–$10 estimate includes generous token count and follow-up rounds)
Cost calculator
Drag the sliders to model your actual usage. The numbers update in real time so you can stress-test economics before writing a single line of code.
The calculator models a typical white-label research agency running multiple client studies per month. LLM costs are the primary variable; infrastructure is nearly flat.
Estimated monthly cost
$217
≈ $2,604 per year
Calculator notes
- Default assumptions: 100 personas per study, 10 questions, ~200 tokens per response — heavier studies with 500 personas × 30 questions will approach $25/study in LLM costs
- PDF render cost (Puppeteer on Vercel) is included in the Vercel Pro plan at typical study volumes
- Real-respondent panel integration (phase 2) adds recruitment API costs — typically $10–$50 per recruited respondent, not modeled here
- Prompt caching on persona system prompts reduces follow-up round cost by ~90% — savings are not modeled conservatively in defaults
Build it yourself with vibe-coding tools
By Sunday night you'll have a working synthetic-panel tool: create a study brief, define 10 demographic personas, fire questions in parallel at Claude Sonnet 4.6, cluster themes, and export a basic PDF report.
Time to MVP
12–16 hours (1 weekend)
Total cost to MVP
$25 Lovable Pro + ~$40 Anthropic API credits
You'll need
Starter prompt
Build a white-label AI virtual focus group tool called [YourBrand] Research. The app uses Vite + React + TypeScript + Tailwind CSS + shadcn/ui components. Backend is Supabase (PostgreSQL + Auth + Edge Functions). Core data model: - `studies` table: id, user_id (FK), title, brief_text, status (draft/running/complete), personas_config (JSONB with age_range, income_range, values[], brand_affinities[]), created_at - `questions` table: id, study_id (FK), text, order_index, type (initial/followup) - `personas` table: id, study_id (FK), name, demographic_profile (JSONB), created_at - `responses` table: id, persona_id (FK), question_id (FK), response_text, sentiment (positive/neutral/negative), embedding (vector), created_at - `themes` table: id, study_id (FK), label, summary, representative_quotes (JSONB array), created_at All tables have RLS enabled. Users can only see their own studies. UI pages needed: 1. Dashboard: list of studies with status badges and study count 2. Create Study page: form with title, brief text, number of personas (10–500 slider), demographic config (age range, income, values array), question set builder 3. Study detail page: shows personas list, responses grid, themes panel with quote cards, sentiment heatmap table 4. PDF export button that triggers an Edge Function Edge Functions needed: 1. `generate-personas`: takes study_id, reads personas_config, generates N persona names and detailed profiles using Claude Sonnet 4.6, inserts into `personas` table 2. `run-study`: fans out parallel calls (one per persona × one per question) to Claude Sonnet 4.6 with persona system prompt + question; stores responses 3. `cluster-themes`: embeds all responses via OpenAI text-embedding-3-small, groups by cosine similarity, generates theme labels via Claude Haiku 4.5, inserts into `themes` 4. `export-report`: generates executive summary via Claude Sonnet 4.6, renders basic text PDF (or HTML for now), returns download URL Simulate the study run with a 3-second fake response in the first build pass before wiring real API calls. Use placeholder data for the first Lovable iteration, then we'll wire real APIs in follow-up prompts.
Paste this into Lovable
Follow-up prompts (run in order)
- 1
Wire the `generate-personas` Edge Function to call Anthropic Claude Sonnet 4.6 API. The system prompt should be: 'You are a market research persona generator. Given the demographic profile config, generate a realistic consumer persona with name, backstory (2 sentences), core values (3 items), and brand relationships. Return as JSON matching this schema: {name, backstory, values[], brand_relationships[]}'. Use Deno.env.get('ANTHROPIC_API_KEY') for auth. Test with a study that has 5 personas first.
- 2
Wire the `run-study` Edge Function to fan out parallel Anthropic calls using Promise.all(). Each call gets a system prompt with the full persona profile cached, then asks the study question. Store each response in the `responses` table. Add a status update that marks the study as 'running' at start and 'clustering' when all responses are in.
- 3
Wire the `cluster-themes` Edge Function to call OpenAI text-embedding-3-small on each response text, store the vector in the embedding column, then use a pgvector cosine similarity query to group responses into 3–7 themes. For each theme cluster, call Claude Haiku 4.5 to generate a 1-sentence theme label and pick the 3 most representative quotes.
- 4
Wire the PDF export: call Claude Sonnet 4.6 with all themes + quotes to write a 200-word executive summary. Then use react-pdf (server-side) to assemble a branded report template with: cover page (study title, date, persona count), executive summary, themes section (label + summary + top 3 quotes each), methodology disclaimer ('This report uses AI-generated synthetic respondents. Results should be validated against real consumer research before strategic decisions.').
- 5
Add a per-study cost tracker: after each Edge Function run, log token usage to a `study_runs` table (study_id, function_name, input_tokens, output_tokens, cost_usd). Show estimated cost on the study detail page. Add a hard cap: if a study would exceed $20 in LLM costs, show a confirmation dialog before running.
- 6
Add ESOMAR-compliant methodology disclosure: every report PDF must include a dedicated methodology section stating: 'Synthetic respondents generated by large language models may not reflect actual consumer behavior. Data should not be used for regulatory submissions, financial decisions, or clinical applications without real-respondent validation.' Add a checkbox to the study creation form confirming the researcher understands this constraint.
Expected output
By end of weekend: a working branded research tool where you create a study brief, generate 10–50 synthetic personas in parallel, collect responses, see basic theme clusters, and export a PDF report with a methodology disclaimer. Real PDF branding, follow-up-question support, and production-grade tenant isolation are phase-2 work.
Known gotchas
- !Persona consistency breaks on follow-up rounds if you don't re-inject the full persona system prompt — Lovable won't know to do this automatically; you must specify it explicitly in the Edge Function prompt
- !Parallel fan-out of 100+ Edge Function calls will hit Supabase's default Edge Function concurrency limit on the free tier — test with 10 personas first and upgrade to Pro before scaling
- !Claude Sonnet 4.6's 1M context is the right fit, but prompt caching is only active after the second call with the same system prompt — first study run will not benefit from cache savings
- !PDF rendering via Puppeteer on Vercel Edge has a 50MB memory limit — complex reports with embedded Chart.js charts will need a separate Cloudflare Worker
- !ESOMAR and Insights Association compliance is your legal responsibility regardless of how the tool is built — do not ship to paying clients without adding the methodology disclaimer to every report
- !Multi-tenant RLS must be set correctly or one client's study data leaks to another — test with two separate Supabase accounts before accepting paying clients
Compliance & risk reality check
Synthetic focus group tools carry three distinct compliance risks: methodology disclosure to research buyers, GDPR on any real-respondent data collected, and AI-content labeling under EU law. The methodology disclosure is not optional — it is the category's defining legal issue.
Synthetic-respondent methodology disclosure (ESOMAR, MRS, Insights Association)
MRS, ESOMAR, and the Insights Association all issued guidance through 2025–2026 requiring explicit disclosure when synthetic AI respondents are used in research. Failure to disclose exposes your agency clients to professional sanction and potentially to breach-of-contract claims from end clients who assumed real-panel data. The disclosure must appear in the research report, not just in your terms of service.
Mitigation: Hardcode a methodology disclaimer into every PDF export: 'This report contains AI-generated synthetic respondent data. Results should not be used for regulatory submissions, financial projections, or clinical decisions without real-consumer validation.' Add a checkbox confirmation to the study-creation flow. Keep an audit log of every study run with the disclaimer version in effect.
EU AI Act Art. 50 (AI-content disclosure, binding August 2, 2026)
EU AI Act Article 50 requires machine-readable disclosure on AI-generated text output that could be mistaken for human-authored content. A synthetic-respondent quote used in a research report without disclosure could constitute a violation once the article binds in August 2026. The regulation applies to any output served to EU persons, regardless of where the platform is hosted.
Mitigation: Add a C2PA-compliant manifest or equivalent machine-readable tag to exported PDFs identifying them as AI-generated. Embed a human-readable disclosure header in the PDF document properties. For EU clients, include an explicit contract clause on AI-content labeling obligations.
GDPR on real-respondent data (if phase-2 real panels are added)
Synthetic-only studies do not involve personal data. However, if you layer in real-respondent panels (phase 2), GDPR Article 6 lawful basis, Article 17 right-to-erasure, and Article 13/14 disclosure obligations apply. Research data is also subject to Article 89 safeguards on processing for research purposes.
Mitigation: For real-respondent phases, implement a Supabase row-deletion cascade on GDPR erasure requests. Use anonymous participant IDs rather than real names in the database. Add a Data Processing Agreement template for agency clients processing EU participant data.
Bias and IRB considerations for clinical or policy research
LLM-generated personas inherit model training biases — synthetic respondents from underrepresented groups may produce systematically skewed responses. For clients using the output in policy decisions or clinical-adjacent research, IRB-style review standards may apply even for synthetic data used as a preliminary screen.
Mitigation: Surface a bias-caveat on study results screens: 'Synthetic personas may not accurately represent minority or specialized demographic groups. Validate with real respondents from those groups before decisions that affect them.' Document bias limitations in your methodology section template.
Build vs buy: the real math
5–8 weeks
Custom build time
$15,000–$22,000
One-time investment
12–18 months
Breakeven vs buying
At 20 studies per month, Synthetic Users at $999/mo costs $11,988/year with no white-label output. A $15K–$22K custom build breaks even in 12–18 months and captures the ~$5/study LLM cost permanently instead of paying a 200× markup. At 50 studies per month, the math is more dramatic: $999/mo = $11.988K/year versus ~$1,200/year in LLM costs on a custom build — payback inside 18 months even at the top of the build range. As model prices continue to fall (Anthropic cut Opus pricing 67% in the past 12 months), the custom build's cost advantage compounds while the SaaS subscription price stays fixed. The decisive constraint is ESOMAR disclosure: neither Synthetic Users nor Vurvey provides audit-ready methodology documentation — that deliverable has to be built either way, so it might as well live in your own platform.
Skip the DIY — RapidDev builds the production version
A Lovable MVP gets you a demo. Production needs auth that doesn't leak data, AI calls that don't bankrupt you, observability when models drift, and code you can audit. That's what we ship.
Discovery call (free)
30 minWe map your exact Virtual Focus Group Tool use case: who uses it, target volume, AI model choice, integrations, compliance scope. You get a detailed scope document and fixed-price quote within 48 hours.
AI-accelerated build
5–8 weeksOur engineers use Claude Code, Lovable, and custom tooling to ship 3–5x faster than agencies. You see weekly progress in a staging environment — not a black box.
Launch + handoff
1 weekWe deploy to your infrastructure, transfer the GitHub repo, set up CI/CD and monitoring, and train your team. You own 100% of the source code, prompts, and model configurations.
What you get
Timeline
5–8 weeks
Investment
$15,000–$22,000
vs SaaS
ROI in 12–18 months
30-min call. Fixed-price quote within 48 hours. No commitment.
Frequently asked questions
How much does it cost to build a white-label virtual focus group tool?
RapidDev builds this at $15,000–$22,000 for the standard scope: synthetic-persona generation, parallel response collection, theme clustering, PDF report export, and multi-tenant isolation with ESOMAR-compliant disclosure. The lower end of the range covers a clean MVP with 3–5 tenant slots; the upper end includes real-respondent panel integration (phase 2) and a production-grade PDF template. Infrastructure after launch runs $150–$400/month in Supabase, Vercel, and Cloudflare costs.
How long does it take to ship this?
5–8 weeks from kickoff to a deployable product. The first 2 weeks cover persona generation and parallel response collection. Weeks 3–4 add theme clustering, sentiment analysis, and the study-management UI. Weeks 5–6 cover the PDF export, methodology disclaimer flow, and multi-tenant RLS hardening. Weeks 7–8 are QA and production deployment. Real-respondent panel integration (Recall.ai or a recruitment API) adds 3–4 weeks and is scoped as a separate phase.
Can RapidDev build this for my agency?
Yes. RapidDev has shipped 600+ applications and 200+ AI implementations in production. We specialize in white-label AI tools where the buyer needs full code ownership, multi-tenant isolation, and a defensible compliance posture. Book a free 30-minute consultation at rapidevelopers.com to walk through your specific study volumes, client persona requirements, and ESOMAR obligations before scoping the build.
Are synthetic focus groups methodologically valid?
They are valid for rapid concept screening, directional hypothesis generation, and pre-qualifying ideas before real-panel spend — but not for regulatory submissions, financial projections, or clinical decisions. MRS, ESOMAR, and the Insights Association all require explicit disclosure in research deliverables. The custom-build approach lets you bake that disclosure into every PDF, making your agency's output more defensible than a SaaS platform where disclosure is an afterthought in the terms of service.
What is the per-study LLM cost at scale?
At 100 synthetic personas answering 10 questions at roughly 200 tokens per response, the Claude Sonnet 4.6 cost is approximately $3–$5 per study. Adding clustering (text-embedding-3-small: negligible), sentiment (Claude Haiku 4.5: ~$0.30), and report summary (Claude Sonnet 4.6: ~$0.50) brings total LLM cost to $4–$6 per study. At 100 studies/month that is $400–$600/month in API costs — versus $999/month for Synthetic Users with no white-label output.
What compliance risks does the EU AI Act create for synthetic focus groups?
EU AI Act Article 50 binds August 2, 2026 and requires machine-readable disclosure on AI-generated text that could be mistaken for human-authored content. Synthetic-respondent quotes in a research report qualify. The practical requirement is a C2PA-equivalent manifest in exported PDFs plus a human-readable disclaimer header. Any platform serving EU clients needs this before August 2026 or faces potential penalties under the Act's Tier 3 enforcement (proportionate to organization size, not fixed fines).
Can I add real respondents to the same platform later?
Yes, and the architecture is designed for this. Phase 2 adds a recruitment API integration (UserTesting, Respondent.io, or a custom panel) that places real respondents into the same question-flow and response tables. Real respondent answers flow through the same clustering pipeline as synthetic ones, letting you show side-by-side comparison in the report. GDPR obligations activate the moment real respondent data enters the system, so phase 2 must include a data-processing-agreement template and GDPR erasure cascade.
Want the production version?
- Delivered in 5–8 weeks
- You own 100% of the code
- AI cost monitoring built in
30-min call. No commitment.