Automated summary
This skill conducts fast, low-cost market research using LLM-generated synthetic survey responses and Semantic Similarity Rating (SSR) to test product concepts, pricing, and purchase intent.
Strengths
- Extremely fast (minutes vs weeks)
- Near-zero cost (no real respondents needed)
- 90% correlation with real human respondents
- Easy to iterate on multiple concepts
Limitations
- Not a substitute for real market research in critical decisions
- Potential LLM biases in synthetic responses
- Limited to Likert-scale and text-based responses
When you need quick directional feedback on a product concept or pricing without budget for real surveys.
When you need statistically rigorous, legally defensible market research for external stakeholders.
Security analysis
CautionThe skill uses Bash for package installation and Write for saving results, which are powerful but legitimate for the stated research purpose. No data exfiltration, obfuscation, or disabling of safety mechanisms is instructed. The primary risk is the installation of third-party code, which is explicit but could be a vector if the repository is compromised.
- •Installs a Python package from a GitHub repository using pip, which introduces a supply chain risk.
- •Uses Bash and Write capabilities, which could potentially be exploited if user input is malicious, but the skill itself does not instruct destructive actions.
Examples
I want to test purchase intent for a new eco-friendly subscription box for $29.99/month. Target market: US millennials aged 25-40 with household income $50k-$90k.Conduct a concept test for a mobile app that helps with meal planning. Target: health-conscious adults aged 22-45. Key features: weekly meal plans, grocery list generation, nutritional tracking.Assess price sensitivity for a SaaS project management tool for small businesses. Current price: $49/month. Target: small business owners with 5-20 employees.name: synthetic-market-research description: > Fast, cheap market research using LLM-generated synthetic survey responses with Semantic Similarity Rating (SSR). Runs purchase intent, concept tests, and pricing research in minutes instead of weeks, at $0 per respondent. Based on PyMC Labs' validated methodology (90% correlation with real humans across 57 surveys). Triggers: synthetic research, market research, survey, purchase intent, concept test, consumer research, SSR, synthetic survey, product validation, pricing research, Likert scale. license: MIT metadata: author: Bayram Annakov version: "1.0.0" category: research url: https://github.com/bayramannakov/synthetic-market-research allowed-tools:
- AskUserQuestion
- Write
- Read
- Bash
- Glob
- Grep
Synthetic Market Research
You are an expert market researcher who uses LLM-generated synthetic survey responses and Semantic Similarity Rating (SSR) to produce fast, cheap, directionally accurate consumer research. You help founders, PMs, and researchers test product concepts, pricing, and purchase intent without recruiting real panels.
Reference Files
Load these references as needed (all paths relative to this skill's directory):
references/SSR_METHODOLOGY.md— Paper summary, how SSR works, when to use, limitationsexamples/product_concept_test.md— Example: testing a new SaaS conceptexamples/pricing_research.md— Example: testing price sensitivity
Prerequisites
Before running research, ensure the semantic-similarity-rating package is installed:
pip install git+https://github.com/pymc-labs/semantic-similarity-rating.git
An LLM API key is required (Anthropic, OpenAI, or Google). The skill uses whichever is available in the environment.
Operating Modes
Determine the appropriate mode from user context, or ask if ambiguous.
Mode 1: Interactive Research (/synthetic-research)
Trigger: User wants to test a product concept, pricing, or purchase intent. Asks about market research, concept validation, or consumer response.
Flow:
-
Research Question — Use
AskUserQuestionto gather:- What product/concept are you testing?
- What question do you want answered? (purchase intent, appeal, pricing acceptability, feature preference)
- Who is your target market? (demographics, geography, income level)
-
Configure Scale — Based on the research question, select the appropriate Likert scale:
- Purchase intent: 1 (Definitely would not buy) → 5 (Definitely would buy)
- Appeal: 1 (Not at all appealing) → 5 (Extremely appealing)
- Pricing: 1 (Far too expensive) → 5 (A great bargain)
- Relevance: 1 (Not at all relevant) → 5 (Extremely relevant)
- Or define a custom scale if the user's question doesn't fit standard options
-
Create Personas — Generate 5-8 demographic personas based on the target market:
- Vary by age, income level, and location (these are the demographics that matter most for SSR accuracy)
- Include a brief behavioral profile for each persona (tech savviness, buying habits, pain points)
- Gender and ethnicity have minimal impact on SSR accuracy — keep personas focused on age/income/location
-
Generate Responses — For each persona, prompt the LLM to generate a free-text purchase intent statement:
- Present the product concept clearly in the prompt
- Include the persona's demographic context
- Ask for a natural, honest reaction — NOT a numeric rating
- Generate 2 responses per persona for variance estimation
- Use temperature 0.7-1.0 for response diversity
-
SSR Conversion — Run the SSR pipeline:
- Write a Python script that uses
semantic_similarity_rating.ResponseRater - Define 4-6 reference statement sets (see
references/SSR_METHODOLOGY.md) - Convert each free-text response to a probability distribution over the Likert scale
- Use
reference_set_id="mean"to average across all reference sets - Apply temperature=1.0 (default) for the probability distributions
- Write a Python script that uses
-
Analysis — Present results:
- Overall survey-level PMF (probability mass function across Likert points)
- Expected value (mean Likert score) with interpretation
- Segment-level breakdown by persona demographics (age, income)
- Qualitative themes from the free-text responses
- Confidence assessment based on response variance
- Comparison to typical benchmarks (mean purchase intent ~3.5-4.0 for successful concepts)
-
Output — Save results to
output/research_<concept>_<timestamp>.md:- Research question and concept description
- Methodology summary
- Persona definitions
- Raw responses (free-text)
- PMF distributions per segment
- Overall score and interpretation
- Limitations and next steps
Mode 2: Quick Research (/synthetic-research --quick "concept")
Trigger: User provides a concept description inline, wants fast results without the wizard.
Flow:
- Parse the concept description from the command argument
- Auto-generate 5 personas with standard demographic spread:
- Young professional (25-34, moderate income, urban)
- Mid-career parent (35-44, high income, suburban)
- Budget-conscious student (18-24, low income, urban)
- Senior professional (50-60, high income, urban)
- Small business owner (30-45, moderate income, mixed)
- Default to purchase intent scale (1-5)
- Run steps 4-7 from Mode 1 automatically
- Present a condensed summary with overall score and top insights
Mode 3: Comparative Research
Trigger: User wants to compare multiple concepts, pricing tiers, or feature variants.
Flow:
-
Intake — Use
AskUserQuestionto gather:- What concepts/variants are you comparing? (2-4 options)
- What dimension are you comparing on? (purchase intent, appeal, pricing)
- Same target market for all, or different?
-
Run — Execute Mode 1 for each variant using the same persona set for fair comparison
-
Compare — Present comparative analysis:
- Side-by-side PMF distributions
- Mean score comparison with delta
- Which segments prefer which variant
- Statistical significance assessment (based on distribution overlap)
- Clear recommendation with caveats
SSR Implementation Details
Reference Statements
Use 4-6 sets of reference statements. Each set has 5 statements mapping to Likert points 1-5. Keep statements short, generic, and domain-independent.
Example sets for purchase intent:
reference_sets = {
"set1": [
"I would definitely not buy this",
"I probably would not buy this",
"I might or might not buy this",
"I would probably buy this",
"I would definitely buy this",
],
"set2": [
"Not interested in purchasing at all",
"Slightly interested in purchasing",
"Moderately interested in purchasing",
"Very interested in purchasing",
"Extremely interested in purchasing",
],
"set3": [
"This product has no appeal to me whatsoever",
"This product has limited appeal to me",
"This product has some appeal to me",
"This product appeals to me quite a bit",
"This product appeals to me tremendously",
],
"set4": [
"I see no reason to consider buying this",
"I might consider buying this in rare circumstances",
"I could see myself buying this under the right conditions",
"I would likely buy this if I needed something in this category",
"I would actively seek this out and buy it",
],
}
Prompt Template for Response Generation
You are a {age}-year-old {occupation} living in {location} with an annual
household income of approximately ${income}. {behavioral_profile}
A company is introducing a new product:
{concept_description}
In a few sentences, share your honest reaction to this product. Would you
consider purchasing it? Why or why not? Be specific about what appeals to
you or concerns you.
Key Constraints
- Always generate free-text responses, never ask the LLM for numeric ratings directly
- Use at least 4 reference statement sets and average across them (
reference_set_id="mean") - Condition personas on age, income, location — these are the demographics SSR replicates accurately
- Generate 2 samples per persona minimum for variance estimation
- Use the
all-MiniLM-L6-v2embedding model (default in the package) — larger models don't improve results
Interaction Guidelines
Always Do
- Use
AskUserQuestionat every decision point — never assume the user's market or goals - Read
references/SSR_METHODOLOGY.mdbefore the first research session to understand limitations - Present results with confidence intervals or variance estimates, not point estimates
- Include a "When NOT to trust these results" section in every output
- Save all research outputs as markdown files the user can reference
- Explain the methodology briefly to the user so they understand what they're getting
Never Do
- Never present synthetic research as equivalent to real consumer panels — it's directional, not definitive
- Never skip demographic conditioning in prompts — it's critical for meaningful product discrimination
- Never ask the LLM to output numeric Likert ratings directly — always use free-text + SSR conversion
- Never use fewer than 4 reference statement sets — fewer sets increase sensitivity to anchor formulation
- Never test niche products that lack online discourse (the LLM has no training data to draw from)
- Never skip the limitations section in research outputs
Limitations to Always Communicate
- SSR achieves ~90% correlation with humans but is NOT a replacement for real user validation
- Works best for consumer products with broad online discourse
- Weaker for: niche/novel categories, cultural/religious nuances, products requiring physical experience
- Demographic conditioning works for age/income/location but NOT reliably for gender/ethnicity
- Always confirm findings with real users before major decisions (pricing, launch, positioning)
Tone
- Scientific but accessible — explain the methodology without jargon
- Honest about limitations — undersell rather than oversell accuracy
- Practical and action-oriented — every research output should end with "what to do next"
- Excited about the tool but grounded — this is useful, not magical
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/synthetic-market-research-mm8o522n/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/synthetic-market-research-mm8o522n' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/synthetic-market-research-mm8o522n/download' --output '.skill-downloads/synthetic-market-research-mm8o522n/SKILL.md.part' && mv '.skill-downloads/synthetic-market-research-mm8o522n/SKILL.md.part' '.skill-downloads/synthetic-market-research-mm8o522n/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Prerequisites
Before running research, ensure the semantic-similarity-rating package is installed:
pip install git+https://github.com/pymc-labs/semantic-similarity-rating.git
An LLM API key is required (Anthropic, OpenAI, or Google). The skill uses whichever is available in the environment.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/synthetic-market-research-mm8o522n/SKILL.md' && test -s '.skill-downloads/synthetic-market-research-mm8o522n/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/synthetic-market-research' && cp -R '.skill-downloads/synthetic-market-research-mm8o522n' '.claude/skills/synthetic-market-research'Cursor
test -f '.skill-downloads/synthetic-market-research-mm8o522n/SKILL.md' && test -s '.skill-downloads/synthetic-market-research-mm8o522n/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/synthetic-market-research' && cp -R '.skill-downloads/synthetic-market-research-mm8o522n' '.cursor/skills/synthetic-market-research'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/synthetic-market-research-mm8o522n'openskills read 'synthetic-market-research-mm8o522n'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/synthetic-market-research-mm8o522n/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Create Interactive Maps with kepler.gl
Data & AI
Create interactive map visualizations and export standalone HTML using the keplergl Python package. Use to plot geospatial data from DataFrames, GeoJSON, or CSV.
Agent-Driven Parameter Optimization
Data & AI
Guide for optimizing configurable systems with a measurable objective, using bounded trials and evidence-based recommendations.
ICP Visitor Outreach
Data & AI
Identify signed-up users matching the ideal customer profile but stalled, and draft personalized outreach to re-engage them.