packages/skills/skills/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 mediar-ai/skillhubz 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.
curl -fsSL https://cli.inference.sh | sh && infsh login
# Research the customer's industry
infsh app run tavily/search-assistant --input '{
"query": "SaaS customer onboarding challenges 2024 statistics"
}'
Install note: The install script only detects your OS/architecture, downloads the matching binary from
dist.inference.sh, and verifies its SHA-256 checksum. No elevated permissions or background processes. Manual install & verification available.
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
infsh 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
infsh app run tavily/search-assistant --input '{
"query": "average e-commerce order processing time industry benchmark 2024"
}'
# Competitor landscape
infsh app run exa/search --input '{
"query": "order management automation solutions market overview"
}'
# Supporting statistics
infsh 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: infsh app list
tools
Use when the user wants to manage Valet agents, channels, connectors, organizations, or environment variables (secrets and plain config) via the valet CLI. Handles creation, deployment, linking, teardown, and all multi-step workflows. Also use when asked to "create an agent", "deploy an agent", "design an agent", "build me an agent that...", "create a connector", "set up a webhook", or anything involving the Valet platform or any request to create and deploy AI agents. Also use when asked to "learn from this session", "capture this workflow", "save this as an agent", "make this repeatable", or when writing SOUL.md files.
tools
Publish files, folders, and artifacts to the web. Static hosting for HTML sites, images, PDFs, reports, dashboards, and any file type. Use when asked to publish, host, upload, serve, or share work at a live URL. Also use to propose a rendered page when a report, comparison, chart, design document, or status page would work better than terminal text, but do not create or update a remote site until the user asks or agrees. Account publishing gives a permanent, private-by-default URL visible to org members; --anonymous gives a temporary public URL with no account. Use the valet CLI when available and its MCP server when the CLI cannot run. For deploying an AI agent rather than static files, use the `valet` skill instead.
testing
# Faceless.so Turn a script, prompt, Reddit post, or blog into a Remotion short with TTS, captions, and B-roll, then auto-post to YouTube, TikTok, Instagram, X, Facebook, LinkedIn, and Threads. ## Prerequisites - A Faceless.so account (from $24/mo) at https://faceless.so - Source material: script, prompt, Reddit URL, or blog URL - Destination social accounts to auto-post (YouTube, TikTok, Instagram, X, Facebook, LinkedIn, Threads) ## Instructions 1. Open https://faceless.so and start a new
testing
# BIMI SVG Tiny P/S Corpus Validator Use the public makeBIMI SVG Tiny P/S Test Corpus to evaluate an SVG against its evidence-bound fixture rules and to report the result clearly. ## Inputs Accept either an SVG file, an SVG URL, or raw SVG markup. If the source cannot be retrieved or parsed as XML, stop and report that limitation. ## Authoritative corpus 1. Retrieve the current manifest from `https://makebimi.com/public/test-corpus/v1/manifest.json`. 2. Record `schema_version`, `corpus_vers