AI market research simulation using NVIDIA Nemotron personas and Claude Code Agents
Project description
market-simulation
AI-powered market research simulation for Korean consumers — no local LLM or API key required.
Simulate how real Korean personas respond to your product, price point, or service concept using NVIDIA Nemotron-Personas-Korea (1M demographically grounded personas, CC BY 4.0) and Claude Code's built-in agent system.
How it works
HuggingFace dataset Claude Code skill
(1M Korean personas) ──▶ filter by target segment
──▶ batch into groups of 5
──▶ 6 parallel sub-agents (isolated context per batch)
──▶ collect responses → CSV + report
Each sub-agent receives a batch of 5 persona profiles and responds in character as each person — independently, with no cross-contamination between batches. Results are saved as a CSV and a structured Markdown report.
Requirements
- Claude Code (any plan — uses your existing subscription, no extra API key)
- Python 3.10+
pip install datasets pandas pyarrow
First run downloads and caches the Nemotron dataset (~few GB). Subsequent runs load from cache instantly.
Quick start
As a Claude Code skill
- Install the package:
pip install market-simulation
- Copy
SKILL.mdto your Claude Code skills directory:
pip show market-simulation | grep Location | awk '{print $2}'
# copy SKILL.md from that location, or download directly:
curl -o ~/.claude/skills/market-simulation.md \
https://raw.githubusercontent.com/lumatic2/market-simulation/master/SKILL.md
- Trigger from any Claude Code session:
서울 30대 직장인들이 월 9,900원 커피 구독 서비스에 어떻게 반응할지 시뮬해줘
Claude will ask for your target segment and question, then run the simulation.
Simulation outputs (CSV + report) are saved to
output/in your current working directory.
Programmatically
from market_simulation import load_pool, filter_pool, occupation_kw
# Load and filter personas
df = load_pool('korea', sample_n=50000)
pool = filter_pool(
df,
province='서울',
age_range=(25, 39),
occupation_keywords=occupation_kw('IT'),
)
sample = pool.sample(20, random_state=42)
print(f'{len(sample)} personas ready')
Simulation limits
| Value | Why | |
|---|---|---|
| Default | 20 personas | Sufficient for theme saturation |
| Hard cap | 30 personas | 6 agents × 5 personas. Returns diminish beyond this |
| Batch size | 5 per agent | Context isolation + response quality |
Simulation results are LLM-generated hypotheses, not real market data. Use for directional insight and relative comparisons (segment A vs B, price X vs Y), not absolute predictions.
Output
output/
├── 2026-05-02_coffee-subscription.csv # raw responses
└── 2026-05-02_coffee-subscription.report.md # auto-generated stats report
CSV columns: id, age, sex, occupation, province, district, answer
Report includes: response rate, demographic breakdown, full response quotes, and a prompt to synthesize a .summary.md with pattern clusters and key insights.
Dataset
| Field | Value |
|---|---|
| Source | nvidia/Nemotron-Personas-Korea |
| Size | ~1M personas |
| License | CC BY 4.0 (commercial use allowed) |
| Grounding | Korean census data, demographic distributions |
| Also available | Japan, USA, France, and more |
Disclaimer
- Simulation results are LLM-generated hypotheses, not real survey data.
- Response rates and approval ratios are inflated by LLM positive bias — trust relative comparisons within the same simulation, not absolute values.
- Persona dataset is publicly available under CC BY 4.0; cite NVIDIA accordingly.
Project structure
market-simulation/
├── SKILL.md ← Claude Code skill entrypoint
├── src/
│ ├── personas.py ← HuggingFace loader, filter, card builder
│ └── analyze.py ← CSV → stats report generator
└── output/ ← simulation results (gitignored)
License
Code: MIT
Persona data: CC BY 4.0 (NVIDIA)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file market_simulation-0.1.0.tar.gz.
File metadata
- Download URL: market_simulation-0.1.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2a57a6777fb69eed4de5f3242a57a4dd90fc81c5ddddf5e04634ed8f176114e
|
|
| MD5 |
5505035a49b1eab4d9333bce168fd57a
|
|
| BLAKE2b-256 |
dc26863f2a347f832aa991be603eb3da5c9941a990ad0ee02dede9b9ea48c063
|
File details
Details for the file market_simulation-0.1.0-py3-none-any.whl.
File metadata
- Download URL: market_simulation-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c100beb1692376b2862b9020d41de7b6f5865b0bb79ee06d6972c6aa04fb9c11
|
|
| MD5 |
628f5adcecc48bae81ea7431ee551615
|
|
| BLAKE2b-256 |
4543b38245096c5a4fb2695feaa0213bd6bc9759f129b837338f44399dd5caef
|