guides/writing/case-study-writing/SKILL.md
B2B case study writing with STAR framework, data visualization, and research. Covers structure, customer quotes, metrics presentation, and distribution formats. Use for: customer success stories, portfolio pieces, sales enablement, marketing content. Triggers: case study, customer story, success story, b2b case study, client testimonial, customer case study, portfolio case study, use case, customer win, results story
npx skillsauth add inference-sh/agent-skills-registry case-study-writingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create compelling B2B case studies with research and visuals via inference.sh CLI.
Requires inference.sh CLI (
belt). Install instructions
belt login
# Research the customer's industry
belt app run tavily/search-assistant --input '{
"query": "SaaS customer onboarding challenges 2024 statistics"
}'
Every case study follows: Situation -> Task -> Action -> Result
| Section | Length | Content | Purpose | |---------|--------|---------|---------| | Situation | 100-150 words | Who the customer is, their context | Set the scene | | Task | 100-150 words | The specific challenge they faced | Create empathy | | Action | 200-300 words | What solution was implemented, how | Show your product | | Result | 100-200 words | Measurable outcomes, before/after | Prove value |
Total: 800-1200 words. Longer loses readers. Shorter lacks credibility.
❌ "How Company X Uses Our Product"
❌ "Company X Case Study"
✅ "How Company X Reduced Onboarding Time by 60% with [Product]"
✅ "Company X Grew Revenue 340% in 6 Months Using [Product]"
The headline should be specific, quantified, and state the outcome.
Place at the top for skimmers:
┌─────────────────────────────────────┐
│ Company: Acme Corp │
│ Industry: E-commerce │
│ Size: 200 employees │
│ Challenge: Manual order processing │
│ Result: 60% faster fulfillment │
│ Product: [Your Product] │
└─────────────────────────────────────┘
❌ "Improved efficiency"
❌ "Saved time"
❌ "Better results"
✅ "Reduced processing time from 4 hours to 45 minutes (81% decrease)"
✅ "Increased conversion rate from 2.1% to 5.8% (176% improvement)"
✅ "Saved $240,000 annually in operational costs"
| Category | Examples | |----------|---------| | Time | Hours saved, time-to-completion, deployment speed | | Money | Revenue increase, cost reduction, ROI | | Efficiency | Throughput, error rate, automation rate | | Growth | Users gained, market expansion, feature adoption | | Satisfaction | NPS change, retention rate, support tickets reduced |
# Generate a before/after comparison chart
belt app run infsh/python-executor --input '{
"code": "import matplotlib.pyplot as plt\nimport matplotlib\nmatplotlib.use(\"Agg\")\n\ncategories = [\"Processing Time\", \"Error Rate\", \"Cost per Order\"]\nbefore = [4, 12, 8.50]\nafter = [0.75, 1.5, 2.10]\n\nfig, ax = plt.subplots(figsize=(10, 6))\nx = range(len(categories))\nwidth = 0.35\nax.bar([i - width/2 for i in x], before, width, label=\"Before\", color=\"#ef4444\")\nax.bar([i + width/2 for i in x], after, width, label=\"After\", color=\"#22c55e\")\nax.set_ylabel(\"Value\")\nax.set_xticks(x)\nax.set_xticklabels(categories)\nax.legend()\nax.set_title(\"Impact of Implementation\")\nplt.tight_layout()\nplt.savefig(\"results-chart.png\", dpi=150)\nprint(\"Chart saved\")"
}'
❌ "We love the product." (vague, could be about anything)
❌ "It's great." (meaningless)
✅ "We went from processing 50 orders a day to 200, without adding a single person to the team."
— Sarah Chen, VP Operations, Acme Corp
✅ "Before [Product], our team dreaded Monday mornings because of the report backlog.
Now it's automated and they can focus on actual analysis."
— Marcus Rodriguez, Head of Analytics, DataCo
> "We went from processing 50 orders a day to 200, without adding anyone to the team."
>
> — Sarah Chen, VP Operations, Acme Corp
# Industry benchmarks
belt app run tavily/search-assistant --input '{
"query": "average e-commerce order processing time industry benchmark 2024"
}'
# Competitor landscape
belt app run exa/search --input '{
"query": "order management automation solutions market overview"
}'
# Supporting statistics
belt app run exa/answer --input '{
"question": "What percentage of e-commerce businesses still use manual order processing?"
}'
| Format | Where | Notes | |--------|-------|-------| | Web page | /customers/ or /case-studies/ | Full version, SEO-optimized | | PDF | Sales team, email attachment | Designed, downloadable, gated optional | | Slide deck | Sales calls, presentations | 5-8 slides, visual-heavy | | One-pager | Trade shows, quick reference | Snapshot + key metrics + quote | | Social post | LinkedIn, Twitter | Key stat + quote + link to full | | Video | Website, YouTube | Customer interview or animated |
Headline stat + brief context + customer quote + CTA
Example:
"60% faster order processing.
Acme Corp was drowning in manual fulfillment. 4 hours per batch. 12% error rate.
After implementing [Product]: 45 minutes per batch. 1.5% errors.
'We went from 50 orders a day to 200 without adding headcount.' — Sarah Chen, VP Ops
Read the full story → [link]"
| Mistake | Problem | Fix | |---------|---------|-----| | No specific numbers | Reads like marketing fluff | Quantify everything | | All about your product | Reads like a sales pitch | Story is about the CUSTOMER | | Generic quotes | No credibility | Get specific, attributed quotes | | Missing the "before" | No contrast to show impact | Always show the starting point | | Too long | Loses reader attention | 800-1200 words max | | No customer approval | Legal/relationship risk | Always get sign-off |
npx skills add inference-sh/skills@web-search
npx skills add inference-sh/skills@prompt-engineering
Browse all apps: belt app list
development
Declarative UI widgets from JSON for React/Next.js from ui.inference.sh. Render rich interactive UIs from structured agent responses. Capabilities: forms, buttons, cards, layouts, inputs, selects, checkboxes. Use for: agent-generated UIs, dynamic forms, data display, interactive cards. Triggers: widgets, declarative ui, json ui, widget renderer, agent widgets, dynamic ui, form widgets, card widgets, shadcn widgets, structured output ui
tools
Tool lifecycle UI components for React/Next.js from ui.inference.sh. Display tool calls: pending, progress, approval required, results. Capabilities: tool status, progress indicators, approval flows, results display. Use for: showing agent tool calls, human-in-the-loop approvals, tool output. Triggers: tool ui, tool calls, tool status, tool approval, tool results, agent tools, mcp tools ui, function calling ui, tool lifecycle, tool pending
development
Chat UI building blocks for React/Next.js from ui.inference.sh. Components: container, messages, input, typing indicators, avatars. Capabilities: chat interfaces, message lists, input handling, streaming. Use for: building custom chat UIs, messaging interfaces, AI assistants. Triggers: chat ui, chat component, message list, chat input, shadcn chat, react chat, chat interface, messaging ui, conversation ui, chat building blocks
tools
Batteries-included agent component for React/Next.js from ui.inference.sh. One component with runtime, tools, streaming, approvals, and widgets built in. Capabilities: drop-in agent, human-in-the-loop, client-side tools, form filling. Use for: building AI chat interfaces, agentic UIs, SaaS copilots, assistants. Triggers: agent component, agent ui, chat agent, shadcn agent, react agent, agentic ui, ai assistant ui, copilot ui, inference ui, human in the loop