.config/opencode/skills/jobs-to-be-done/SKILL.md
Understand customer motivations through job theory. Use when defining product strategy, conducting user research, identifying competitors, writing user stories, or reframing features around customer progress.
npx skillsauth add klen/dotfiles jobs-to-be-doneInstall 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.
Jobs-to-be-Done (JTBD) is a framework developed by Clayton Christensen and Bob Moesta that focuses on the progress customers are trying to make in their lives. Instead of asking "who is the customer?" it asks "what job are they hiring this product to do?"
Customer has a "job" to get done
|
v
+-------------+
| "Hires" a |
| product to |
| do the job |
+-------------+
|
v
If it does well → keeps using
If it fails → "fires" it, tries another
Clayton Christensen's famous example:
Traditional approach: "Who buys milkshakes? Demographics, preferences..."
JTBD approach: "What job is the milkshake being hired to do?"
Discovery: Morning milkshake buyers had a completely different job than afternoon buyers.
| Time | Job to Be Done | Competition | | --------- | -------------------------------------------------------------------- | -------------------------------- | | Morning | "Make my boring commute more interesting + keep me full until lunch" | Bagels, bananas, coffee | | Afternoon | "Treat my child after a long day" | Toys, playground time, ice cream |
| Type | Description | Example | | -------------- | ---------------------------- | ------------------------------------------ | | Functional | Practical task to accomplish | "Help me file my taxes correctly" | | Emotional | How I want to feel | "Make me feel confident about my finances" | | Social | How I want to be perceived | "Show others I'm responsible" |
When [situation/context]
I want to [motivation/job]
So I can [expected outcome]
Interview questions to uncover jobs:
| Question | Purpose | | -------------------------------------------- | ---------------------- | | "Walk me through the last time you [action]" | Get specific context | | "What were you trying to accomplish?" | Uncover functional job | | "How did that make you feel?" | Uncover emotional job | | "What did you try before this?" | Identify competition |
+------------------+------------------+
| PUSH | PULL |
| (away from) | (toward) |
| | |
| - Current pain | - Better outcome |
| - Frustration | - Emotional gain |
+------------------+------------------+
| |
v v
+------------------+------------------+
| ANXIETY | HABITS |
| (of new) | (of old) |
| | |
| - Will it work? | - "I've always |
| - Learning curve | done it this |
+------------------+ way" |
+------------------+
For customers to switch: Push + Pull > Anxiety + Habits
True competitors are anything hired for the same job:
Job: "Help me fall asleep faster"
| JTBD View | | ----------- | | Sleep apps | | Melatonin | | White noise | | Reading | | Exercise | | Wine |
## Jobs-to-be-Done Analysis
**Product/Feature:** [Name]
### Core Job Statement
When [situation] I want to [motivation] So I can [outcome]
### Job Dimensions
**Functional:** [What they're trying to accomplish] **Emotional:** [How they
want to feel] **Social:** [How they want to be perceived]
### Forces Analysis
**Push:** [Pain points driving change] **Pull:** [Benefits of new solution]
**Anxieties:** [Concerns about switching] **Habits:** [Behaviors keeping them in
place]
### True Competition
| Competitor | Job Performance |
| ---------- | --------------- |
| [Alt 1] | [How well] |
| [Alt 2] | [How well] |
| Product | Job | Competitors | | --------- | ----------------------------------------------- | ------------------ | | Snickers | "I'm hungry and need a quick, filling snack" | Protein bars, nuts | | Milky Way | "I want to treat myself to something indulgent" | Ice cream, cookies |
Not hired for: "I want to learn Python" (Udemy does this) Hired for: "I want to show my employer I'm developing professionally"
| Method | Combined Use | | ----------------------- | ---------------------------------- | | Hypothesis Tree | Structure job discovery hypotheses | | Five Whys | Dig into underlying motivations | | Fogg Behavior Model | Design for job completion |
tools
Anti-patterns and mistakes to avoid as a product manager. Use when evaluating leadership behaviors, improving team dynamics, reflecting on management practices, or onboarding new product managers.
development
Guides proper usage of TypeScript's satisfies operator vs type annotations. Use this skill when deciding between type annotations (colon) and satisfies, validating object shapes while preserving literal types, or troubleshooting type inference issues.
development
Guides when to use interface vs type in TypeScript. Use this skill when defining object types, extending types, or choosing between interface and type aliases.
development
Guides TypeScript best practices for type safety, code organization, and maintainability. Use this skill when configuring TypeScript projects, deciding on typing strategies, writing async code, or reviewing TypeScript code quality.