Market research skill for pain-point extraction, trend detection, competitor positioning, and discovery across community sources (Reddit, HN, Bluesky, Mastodon, GitHub Issues, web). Built-in harvest fetchers, deterministic CLI compute, intent-auto SWOT/Porter's 5F/PESTEL frameworks.
SkillScore64Maintained
Automatic
◆Product Management pack
Last verified 9/2/2026
What it changes
Passed 9 of 14 test cases with the skill, and 2 of 14 without it.
Without skill14%
With skill64%
Checks it passed that the model alone missed
Passes `--save-dir` to specify a custom storage directory.
Passes `--emit=compact` to specify compact output emission.
Passes `--days 90` to set the time window for the research run.
and 9 more in the full report
11 fixed3 passed either way8 still failing0 broke
Pass-rate lift
+50 pp
Tokens
+57%
Agent turns
0%
Response time
-54%
Model gemini-3.6-flashMeasured 9/2/2026v214 of 22 cases passed with skill · 14 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 11
Prompt
I am running research on FastAPI adoption pain points. To keep terminal output concise, what argument format should be passed to `oma market run` for output emission format: `--compact`, `--format=brief`, or `--emit=compact`?
What was checked, without and with the skill
Checked
Without skill
With skill
Passes `--emit=compact` to specify compact output emission.
Missed
Passed
case-11 · gemini-3.6-flash · 9/2/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md126 linessingle file
Market Research Agent - Community Signal Intelligence
Scheduling
Goal
Run the upstream last30days research engine (always the latest release, managed by oma) for community-signal research, then frame the result for the user's intent (pain / trend / competitor / discovery) with strategic frameworks and save one brief under .agents/results/market/.
Intent signature
User asks about pain points, user complaints, or voice-of-customer signals for a product or category.
User asks what is trending, growing, or declining in a space this week or month.
User asks how one product compares to another in community sentiment or positioning.
User asks for discovery or exploratory market research on a topic, a person, a company, or a ticker.
When to use
Extracting real user pain points from community posts (Reddit with real upvotes and top comments, HN, X, Bluesky, GitHub Issues)
Detecting trends in a category over a window (--days 7|30|90|180)
Competitor sentiment analysis and SWOT / Porter's 5F positioning
Open-ended discovery research (--discover), person mode, hiring signals (--hiring-signals), follow-up drills (--drill)
When NOT to use
General web research without market framing -> use oma-search directly
Academic literature -> use oma-scholar
Live dashboards or scheduled monitoring -> oma schedule:* wrapping this skill
Expected inputs
Topic string; optional --intent pain|trend|competitor|discovery (else classified per resources/intent-rules.md)
Any native last30days flag (see oma market run --help) — passed through verbatim
Expected outputs
Single markdown brief at .agents/results/market/{topic-slug}-{YYYYMMDD}.md
First line: the engine's badge (🌐 last30days v{VERSION} · synced {date}); body per the upstream OUTPUT CONTRACT; framework sections appended per intent; engine footer preserved
Raw engine artifacts under market.save_dir (default .agents/results/market/raw/)
outputs:
- name: market-brief
description: Single LAW-compliant markdown brief with framework sections
artifact: ".agents/results/market/*.md"
required: true