Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Kickoff research for a brand you haven't worked on before — web research, existing-ad analysis from the Meta Ad Library, editorial-grammar profiling, sourced + AI-generated brand assets, hook/CTA libraries, and an ad concept brief. Produces one reusable brand-context pack (brand-summary, visual-identity, competitors, audience, existing-ads, brand-grammar, an asset manifest, and a concept brief) in a single pass. Use when starting on a brand the workspace hasn't touched.
.claude/skills/gooseworks-ai-brand-research/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-09 | ✓→✗ | ▼ Worse | -8% | 0% |
| case-14 | ✓→✗ | ▼ Worse | -56% | 0% |
Build a sourced Brand Core that future research, analysis, and creative workflows can reuse without rediscovering the company every time.
The required path is research-only and works with local files. GooseWorks sync, ad imports, and paid asset generation are optional extensions—not prerequisites for a complete result.
website — required canonical company or brand website.focus — optional product, collection, market, or campaign to prioritize.output_dir — optional; defaults to a clearly named local brand folder.depth — quick or full (default full).sync_to_gooseworks — optional, default false.include_existing_ads — optional, default true in full mode.generate_assets — optional paid extension, default false.Create:
textbrand-core/ summary.md products.md audience.md competitors.md positioning-and-offers.md messaging.md visual-identity.md sources.md brand-core.json
Use local paths that work outside GooseWorks. brand-core.json is a structured echo for other agent skills; the Markdown remains the human-readable source of truth.
Open the provided website and confirm the company name, canonical domain, market, and focus product. If the site is inaccessible or the identity remains ambiguous, ask for the minimum clarification instead of researching the wrong entity.
Review the homepage, product/collection pages, about page, pricing or offer pages, FAQ, policies, store navigation, social links, and press/brand resources. Capture:
Do not turn marketing claims into facts. Label them as brand-stated claims until corroborated.
Use reviews, forums, search, social posts, and comments to identify pains, desired outcomes, triggers, objections, alternatives, product language, and use contexts. Preserve short representative language with source links. Use comment-mining for relevant public social threads.
Identify direct competitors, substitutes, and reference brands. For each, record positioning, key offer, price band when visible, proof style, and how the focus brand plausibly wins or loses. Separate a verified competitor from a likely competitor inferred from category overlap.
In full mode, use competitor-ad-intelligence with the brand as advertiser to inspect current Meta, Google, or LinkedIn ads through ScrapeCreators. Extract recurring hooks, offers, proof, product presentation, formats, CTAs, and landing destinations. Do not infer spend or conversion performance from ad-library presence.
Write:
summary.md: company, category, markets, business model, brand promise, voice in three words, and important unknowns.products.md: product/collection catalog with source URL, price/offer, claims, use cases, and priority.audience.md: audience segments, jobs-to-be-done, triggers, pains, objections, alternatives, and exact sourced language.competitors.md: direct competitors, substitutes, reference brands, positioning comparison, and evidence.positioning-and-offers.md: value proposition, differentiators, offers, proof, guarantees, and gaps.messaging.md: repeated claims, hooks, objections, proof points, CTAs, useful angles, and what the brand should not say.visual-identity.md: logo use, colors, typography when identifiable, photography, layout, product presentation, and off-brand patterns.sources.md: URL, access date, source type, and which claims it supports.Show a concise confirmation summary: company, priority products/services, audience, likely competitors, offers, and messaging angles. Mark low-confidence findings and ask only about material gaps.
Only when requested and the GooseWorks MCP tools are available:
The local Brand Core remains usable even if sync fails.
Asset generation is never required to finish brand research. If the user explicitly asks:
product-photoshoot for product photography;goose-graphics for branded graphics;brand-core.jsonjson{ "brand": {"name":"","website":"","category":"","markets":[]}, "products": [{"name":"","url":"","price":"","claims":[],"offers":[]}], "audiences": [{"segment":"","jobs":[],"pains":[],"objections":[],"language":[]}], "competitors": [{"name":"","url":"","relationship":"direct|substitute|reference","evidence":""}], "positioning": {"promise":"","differentiators":[],"proof":[],"offers":[]}, "messaging": {"hooks":[],"angles":[],"claims":[],"ctas":[],"never_say":[]}, "visual_identity": {"colors":[],"typography":[],"photography":[],"off_limits":[]}, "sources": [{"url":"","accessed_at":"","supports":[]}], "unknowns": [] }
Omit unknown values rather than inventing them.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 15,957 | 13,631 | -15% | 1 | 1 | 0% | 2,904 | 3,695 | +27% | 0 | 0 | — |
case-01 | fail→fail | 36,210 | 11,497 | -68% | 1 | 1 | 0% | 6,221 | 1,803 | -71% | 0 | 0 | — |
case-02 | fail→fail | 38,121 | 6,472 | -83% | 1 | 1 | 0% | 6,217 | 1,805 | -71% | 0 | 0 | — |
case-03 | fail→fail | 31,953 | 34,118 | +7% | 1 | 1 | 0% | 5,305 | 1,790 | -66% | 0 | 0 | — |
case-04 | pass→pass | 15,188 | 22,404 | +48% | 1 | 1 | 0% | 2,353 | 4,930 | +110% | 0 | 0 | — |
case-05 | pass→pass | 26,666 | 50,069 | +88% | 1 | 1 | 0% | 5,630 | 7,589 | +35% | 0 | 0 | — |
case-07 | pass→pass | 11,204 | 9,315 | -17% | 1 | 1 | 0% | 1,653 | 2,816 | +70% | 0 | 0 | — |
case-08 | fail→fail | 15,225 | 9,472 | -38% | 1 | 1 | 0% | 2,107 | 1,837 | -13% | 0 | 0 | — |
case-09 | pass→fail | 16,157 | 11,664 | -28% | 1 | 1 | 0% | 2,486 | 2,293 | -8% | 0 | 0 | — |
case-10 | fail→pass | 16,564 | 17,609 | +6% | 1 | 1 | 0% | 2,479 | 4,389 | +77% | 0 | 0 | — |
case-11 | pass→pass | 15,173 | 8,882 | -41% | 1 | 1 | 0% | 2,342 | 2,661 | +14% | 0 | 0 | — |
case-12 | pass→pass | 12,309 | 4,598 | -63% | 1 | 1 | 0% | 1,933 | 2,081 | +8% | 0 | 0 | — |
case-13 | pass→pass | 16,051 | 17,364 | +8% | 1 | 1 | 0% | 2,440 | 4,079 | +67% | 0 | 0 | — |
case-14 | pass→fail | 17,793 | 7,631 | -57% | 1 | 1 | 0% | 3,821 | 1,675 | -56% | 0 | 0 | — |
case-15 | fail→fail | 17,207 | 8,086 | -53% | 1 | 1 | 0% | 2,834 | 1,735 | -39% | 0 | 0 | — |
case-16 | fail→pass | 9,566 | 2,299 | -76% | 1 | 1 | 0% | 1,453 | 1,772 | +22% | 0 | 0 | — |
case-17 | fail→pass | 6,655 | 1,835 | -72% | 1 | 1 | 0% | 946 | 1,679 | +77% | 0 | 0 | — |
case-18 | fail→fail | 28,924 | 43,654 | +51% | 1 | 1 | 0% | 4,317 | 7,577 | +76% | 0 | 0 | — |
case-19 | pass→pass | 17,313 | 12,048 | -30% | 1 | 1 | 0% | 2,540 | 3,040 | +20% | 0 | 0 | — |
case-20 | pass→pass | 15,273 | 14,782 | -3% | 1 | 1 | 0% | 2,370 | 3,533 | +49% | 0 | 0 | — |
case-21 | pass→fail | 13,241 | 3,036 | -77% | 1 | 1 | 0% | 1,945 | 1,885 | -3% | 0 | 0 | — |
case-22 | pass→pass | 10,183 | 4,790 | -53% | 1 | 1 | 0% | 1,539 | 2,075 | +35% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 15 counted toward the lift figure. The other 7 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of 0 percentage points is the difference between those two pass rates over the 15 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/16/2026 | +41% |
Other measured skills in the registry, with their headline benchmark lift.