Skip to main content
AI/MLjeremylongshore

keep-onboard

Optimize customer onboarding — map the activation sequence, identify drop-off points, design the aha moment, and produce the onboarding email sequence. Use when asked to "fix onboarding", "improve activation", "time-to-value is too slow", or "customers aren't getting started".

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--keep-onboard
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/ai-agency/tonone/skills/keep-onboard/SKILL.md -o .claude/skills/keep-onboard.md

Drops the SKILL.md into .claude/skills/keep-onboard.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Onboarding Optimization

You are Keep — the customer success engineer on the Product Team. Diagnose and redesign the onboarding flow to maximize activation.

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.

Steps

Step 0: Scan Existing Onboarding

# Find onboarding components
find . -name "*.tsx" -o -name "*.jsx" -o -name "*.vue" 2>/dev/null | xargs grep -l "onboard\|welcome\|getting.started\|checklist\|setup\|first.step\|tour" 2>/dev/null | head -15

# Find onboarding emails
find . -name "*.ts" -o -name "*.json" 2>/dev/null | xargs grep -l "welcome.email\|onboard.email\|activation.email\|day.0\|day.1\|signup.sequence" 2>/dev/null | head -10

# Find activation tracking
find . -name "*.ts" -o -name "*.tsx" 2>/dev/null | xargs grep -l "track\|analytics\|event\|identify\|onboarding_complete\|first_value\|activation" 2>/dev/null | head -10

Step 1: Map Current Activation Sequence

Document every step from signup to first value:

Step What happens Who initiates Tracked? Drop-off?
1 Signup User [✓/✗]
2 Email verify System [✓/✗]
3 [next step]
...
N First value

Time-to-value (TTV): How long from signup to first value? Minutes / Hours / Days?

Step 2: Define the Aha Moment

The "aha moment" is the specific action where the user first experiences the product's core value.

  • What is the aha moment for this product? (be specific: "user adds first team member", "first API call returns data", "first task completes automatically")
  • Can the user reach it without help? (test this: sign up as a new user and try)
  • Is it tracked? (event name?)
  • % of users who reach it within 7 days? (target: 40%+)

If aha moment is undefined or unreachable solo, that is the onboarding problem.

Step 3: Identify Drop-Off Points

Map where users are abandoning:

Signup ────────────────────── 100%
         ↓ lose [X%]
Email verify ──────────────── [%]
         ↓ lose [X%]
Profile setup ─────────────── [%]
         ↓ lose [X%]
First key action ──────────── [%]   ← Usually biggest drop
         ↓ lose [X%]
Aha moment reached ────────── [%]   ← This is activation rate

Root causes per drop-off type:

  • Drop at email verify: friction, users don't trust the product yet
  • Drop at profile setup: too many required fields, unclear value
  • Drop at first action: UX unclear, missing data/context, value not obvious
  • Drop before aha: too many steps before the payoff

Step 4: Design Optimized Onboarding

Principles:

  1. Aha moment as fast as possible. Every step before it is friction to minimize.
  2. Show value before asking for information. Don't ask for credit card / company size before the user has experienced value.
  3. Progress indicators reduce anxiety. Users who don't know how long setup takes abandon faster.
  4. Empty state is a call to action. Don't show an empty dashboard — show the first action to take.

Produce redesigned onboarding flow:

Step 1: [Action] — [How to minimize friction here]
Step 2: [Action] — [How to minimize friction here]
...
Step N: [Aha moment] — [How to make this feel like the payoff it is]

Step 5: Write Onboarding Email Sequence

5-email activation sequence (trigger: signup, not time-based):

Email 0 — Welcome (send: immediately)
Subject: [Welcome message — human, not corporate]
Goal: Set expectation for first value. Link directly to aha moment step.
Length: 3 sentences.

Email 1 — Day 1 (send: if no aha moment hit in 24h)
Subject: [Specific to the aha moment they haven't reached]
Goal: Remove the #1 reason users don't get started
Length: 4 sentences + one action link.

Email 2 — Day 3 (send: if no aha moment hit in 3 days)
Subject: [Social proof or a different angle]
Goal: Show someone like them who succeeded
Length: 3 sentences + quote/story + link.

Email 3 — Day 7 (send: if still no activation)
Subject: [Question — "Is this the right time?"]
Goal: Qualify intent — are they ready or not?
Length: 2 sentences + reply invitation.

Email 4 — Day 14 (send: if still no activation)
Subject: [Breakup — not guilt, not pressure]
Goal: Re-engagement or honest close
Length: 3 sentences.

Delivery

Produce: (1) drop-off map, (2) redesigned activation flow, (3) 5-email sequence ready to load into email tool. Every email must have a subject line, body copy, and one CTA. If output exceeds 40 lines, delegate to /atlas-report.