define-jtbd-canvas
About
This Claude Skill generates a Jobs to be Done (JTBD) canvas to analyze customer motivations across functional, emotional, and social dimensions. It's used for deep customer research, product design, and reframing product positioning. The tool helps developers move beyond features to understand the underlying "job" a customer needs to accomplish.
Quick Install
Claude Code
Recommendednpx skills add product-on-purpose/pm-skills -a claude-code/plugin add https://github.com/product-on-purpose/pm-skillsgit clone https://github.com/product-on-purpose/pm-skills.git ~/.claude/skills/define-jtbd-canvasCopy and paste this command in Claude Code to install this skill
Documentation
Jobs to be Done Canvas
A Jobs to be Done (JTBD) canvas captures the complete picture of why customers "hire" products to make progress in their lives. Based on Clayton Christensen's framework, JTBD goes beyond features and demographics to understand the underlying motivations.functional, emotional, and social.that drive customer behavior.
When to Use
- When deeply researching customer motivations before building
- To reframe product positioning around customer progress
- When existing personas feel too surface-level or demographic
- During competitive analysis to identify why customers switch
- When designing marketing messages that resonate
- To align team on who the customer really is and what they need
Instructions
When asked to create a JTBD canvas, follow these steps:
-
Identify the Job Performer Define who is doing this job. Go beyond demographics to capture the circumstance they're in. The same person can have different jobs in different situations.
-
Articulate the Circumstance Describe when and where this job arises. Jobs are triggered by specific situations. Understanding context helps predict when customers will seek a solution.
-
Write the Job Statement Use the format: "When [situation], I want to [motivation], so I can [desired outcome]." The job statement captures the core progress the customer seeks.
-
Define the Functional Job What is the practical task the customer needs to accomplish? This is the tangible, measurable part of the job. Be specific about what "done" looks like.
-
Capture the Emotional Job How does the customer want to feel during and after the job? Emotional jobs often drive decisions more than functional ones. Include both desired feelings and feelings to avoid.
-
Identify the Social Job How does the customer want to be perceived by others? Social jobs relate to status, identity, and relationships. Not all jobs have strong social dimensions.
-
Map Competing Solutions What are customers currently "hiring" to do this job? Include direct competitors, indirect alternatives, and non-consumption (doing nothing). Understanding current solutions reveals what to compete against.
-
Define Hiring Criteria What makes customers choose one solution over another? What are the "must haves" vs. "nice to haves"? This informs positioning and prioritization.
Output Format
Use the template in references/TEMPLATE.md to structure the output.
Quality Checklist
Before finalizing, verify:
- Job statement follows "When... I want... so I can..." format
- Circumstance is specific (not just "anytime")
- Functional job describes tangible outcome
- Emotional job includes how customer wants to feel
- Competing solutions include non-obvious alternatives
- Insights are based on research, not assumptions
Examples
See references/EXAMPLE.md for a completed example.
GitHub Repository
Related Skills
content-collections
MetaThis skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
polymarket
MetaThis skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
creating-opencode-plugins
MetaThis skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
sglang
MetaSGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
