Skip to content
Productivity
Skill

/jobs-to-be-done

Uncover customer jobs, pains, and gains in a structured JTBD format. Use when clarifying unmet needs, repositioning a product, or improving discovery and messaging.

From plugin
product-manager-skills
7.8k77 skills6 commands

Claude Code

$ npx -y skills add deanpeters/Product-Manager-Skills --skill jobs-to-be-done --agent claude-code

SKILL.md

jobs-to-be-done.SKILL.md
name: jobs-to-be-done
argument-hint: "[customer segment or product]"
description: Uncover customer jobs, pains, and gains in a structured JTBD format. Use when clarifying unmet needs, repositioning a product, or improving discovery and messaging.
intent: >-
  Systematically explore what customers are trying to accomplish (functional, social, emotional jobs), the pains they experience, and the gains they seek. Use this framework to uncover unmet needs, validate product ideas, and ensure your solution addresses real motivations—not just surface-level feature requests.
type: component
theme: discovery-research
best_for:
  - "Clarifying what customers actually hire your product to do"
  - "Repositioning a product around unmet needs rather than features"
  - "Turning fuzzy user feedback into structured jobs, pains, and gains"
scenarios:
  - "Customers keep asking for features that don't fit our roadmap — what job are they hiring us for?"
  - "We're repositioning and need to understand the unmet needs behind the switching behavior"
estimated_time: "20-30 min"

Purpose

Systematically explore what customers are trying to accomplish (functional, social, emotional jobs), the pains they experience, and the gains they seek. Use this framework to uncover unmet needs, validate product ideas, and ensure your solution addresses real motivations—not just surface-level feature requests.

This is not a survey—it's a structured lens for understanding *why* customers "hire" your product and what would make them "fire" it.

Input

**Works best with:** The customer segment (or product whose customers) you're analyzing. **Also useful:** Interview notes, support tickets, or research to mine for jobs, pains, and gains; the situation or trigger you care about.

Anything supplied with the invocation itself — text after the skill name, a pasted context dump, or an appended `ARGUMENTS:` line — counts as answers already given. Use it and skip whatever it covers; don't re-ask.

**Arriving empty-handed? That works too.** The skill asks who the customer is and what progress they're trying to make before structuring the JTBD breakdown.

**Example invocation:** `Run JTBD for freelance designers using our invoicing tool — here are 6 interview summaries.`

Key Concepts

The Jobs-to-be-Done Framework

Influenced by Clayton Christensen and the Value Proposition Canvas (Osterwalder), JTBD breaks customer needs into three categories:

**1. Customer Jobs:**

  • **Functional jobs:** Tasks customers need to perform (e.g., "send an invoice")
  • **Social jobs:** How customers want to be perceived (e.g., "look professional to clients")
  • **Emotional jobs:** Emotional states customers seek or avoid (e.g., "feel confident in my work")

**2. Pains:**

  • **Challenges:** Obstacles customers face
  • **Costliness:** What's too expensive in time, money, or effort
  • **Common mistakes:** Errors customers make that could be prevented
  • **Unresolved problems:** Gaps in current solutions

**3. Gains:**

  • **Expectations:** What would exceed current solutions
  • **Savings:** Time, money, or effort reductions that delight
  • **Adoption factors:** What increases likelihood of switching
  • **Life improvement:** How a solution makes life easier or more enjoyable

Why This Structure Works

  • **Separates job from solution:** "Communicate with my team" (job) ≠ "email" (solution)
  • **Reveals underlying motivations:** Functional job may be "track expenses," but emotional job is "feel in control of finances"
  • **Surfaces competition you didn't see:** Customers "hire" non-obvious alternatives (pen and paper, spreadsheets, workarounds)
  • **Prioritizes by intensity:** Not all pains are equal—focus on the most acute

Anti-Patterns (What This Is NOT)

  • **Not a feature wishlist:** "I want AI, automation, and dashboards" is not a job
  • **Not demographics:** "Millennials want mobile-first" is a persona trait, not a job
  • **Not generic:** "Be more productive" is too vague—dig into *which* tasks and *why*
  • **Not one-dimensional:** Focusing only on functional jobs misses social/emotional motivations

When to Use This

  • Early-stage discovery (before you know the solution)
  • Validating product-market fit (does your solution address the right jobs?)
  • Prioritizing roadmap (which jobs are most painful/important?)
  • Competitive analysis (what are customers "hiring" competitors for?)
  • Marketing messaging (speak to jobs, not features)

When NOT to Use This

  • After you've already built the product (too late for discovery)
  • For trivial features (don't over-analyze small tweaks)
  • As a substitute for quantitative validation (JTBD informs hypotheses; data validates them)

---

Application

Use `template.md` for the full fill-in structure.

Step 1: Define the Context

Before exploring JTBD, clarify:

  • **Target customer segment:** Who are you studying? (reference `skills/proto-persona/SKILL.md`)
  • **Situation:** In what context does the job arise? (e.g., "When managing a project deadline...")
  • **Current solutions:** What do they use today? (competitors, workarounds, doing nothing)

**If missing context:** Conduct customer interviews, contextual inquiries, or "switch interviews" (why they switched from a previous solution).

---

Step 2: Explore Customer Jobs

Functional Jobs

Ask: "What tasks are you trying to complete?"

### Functional Jobs:
- [Task 1 customer needs to perform]
- [Task 2 customer needs to perform]
- [Task 3 customer needs to perform]

**Examples:**

  • "Reconcile monthly expenses for tax filing"
  • "Onboard a new team member in under 2 hours"
  • "Deploy code to production without downtime"

**Quality checks:**

  • **Verb-driven:** Jobs are actions ("send," "analyze," "coordinate")
  • **Solution-agnostic:** Don't say "use email to communicate"—say "communicate with remote teammates"
  • **Specific:** "Manage finances" is too broad; "Track business expenses for tax deductions" is specific

---

Social Jobs

Ask

Read more
@deanpeters
Ships withproduct-manager-skills

77 battle-tested PM frameworks, ready for Claude, Codex, ChatGPT, and any agent that can read structured knowledge.

Stars on GitHub

Momentum

stars in total
7.8k
Star history of deanpeters/Product-Manager-Skills on GitHub, a chart by star-history.com

Other skills on product-manager-skills.

More skills from other plugins.

i-have-adhd

i-have-adhd

Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…

@ayghri@ayghriInstall Skill
ab-test-analysis

ab-test-analysis

Analyze A/B test results with statistical significance, sample size validation, confidence intervals, and ship/extend/stop…

@phuryn@phurynInstall Skill
distilly

distilly

Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…

Questions about jobs-to-be-done.

Which coding agents can use jobs-to-be-done?
jobs-to-be-done installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.