case-study-writing
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
What this skill does
> **Install the belt CLI skill:** `npx skills add belt-sh/cli`
# Case Study Writing
Create compelling B2B case studies with research and visuals via [inference.sh](https://inference.sh) CLI.
## Quick Start
> Requires inference.sh CLI (`belt`). [Install instructions](https://raw.githubusercontent.com/inference-sh/skills/refs/heads/main/cli-install.md)
```bash
belt login
# Research the customer's industry
belt app run tavily/search-assistant --input '{
"query": "SaaS customer onboarding challenges 2024 statistics"
}'
```
## The STAR Framework
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.
## Structure Template
### 1. Headline (Lead with the Result)
```
❌ "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.
### 2. Snapshot Box
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] │
└─────────────────────────────────────┘
```
### 3. Situation
- Who is the customer (industry, size, location)
- What relevant context existed before the problem
- 1-2 sentences of company background
### 4. Task / Challenge
- **Quantify the pain:** "spending 40 hours/week on manual data entry" not "had data problems"
- **Show stakes:** what would happen if unsolved (lost revenue, churn, missed deadlines)
- Include a customer quote about the frustration
### 5. Action / Solution
- What was implemented (your product/service)
- Timeline: "deployed in 2 weeks" / "3-month rollout"
- Key decisions or configurations
- Why they chose you over alternatives (briefly)
- 2-3 specific features that addressed the challenge
### 6. Results
- **Before/after metrics** — always quantified
- **Timeframe** — "within 3 months" / "in the first quarter"
- Unexpected benefits beyond the original goal
- Customer quote about the outcome
## Metrics That Matter
### How to Present Numbers
```
❌ "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"
```
### Metric Categories
| 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 |
### Data Visualization
```bash
# 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\")"
}'
```
## Customer Quotes
### What Makes a Good Quote
```
❌ "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
```
### Quote Placement
- **1 quote in the Challenge section** — about the frustration/pain
- **1-2 quotes in the Results section** — about the outcome/transformation
- Always attribute: full name, title, company
### Quote Formatting
```markdown
> "We went from processing 50 orders a day to 200, without adding anyone to the team."
>
> — Sarah Chen, VP Operations, Acme Corp
```
## Research Support
### Finding Industry Context
```bash
# 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?"
}'
```
## Distribution Formats
| 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 |
### Social Media Snippet
```
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]"
```
## Writing Checklist
- [ ] Headline leads with the quantified result
- [ ] Snapshot box with company, industry, challenge, result at top
- [ ] Challenge is quantified, not vague
- [ ] 2-3 specific customer quotes with attribution
- [ ] Before/after metrics with timeframe
- [ ] 800-1200 words total
- [ ] Skimmable (headers, bold, bullet points)
- [ ] Customer approved the final version
- [ ] Visual: at least one chart or before/after comparison
## Common Mistakes
| 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 |
## Related Skills
```bash
npx skills add inference-sh/skills@web-search
npx skills add inference-sh/skills@prompt-engineering
```
Browse all apps: `belt app store`
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.