onboarding-cro

A Claude Code skill that optimizes post-signup onboarding flows — empty states, checklists, first-run experience, time-to-aha — so users activate instead of drifting away.

Get users to aha before they drift away

Source Corey Haines
License MIT
First documented

Trigger phrases

Phrases that activate this skill when typed to Claude Code:

  • onboarding flow
  • activation rate
  • aha moment
  • first-run experience
  • users sign up but do not use

What it does

onboarding-cro is a Claude Code skill from Corey Haines’s marketing-skills repo. It turns Claude into an activation specialist whose first job is naming the aha moment — the specific in-product event that separates retained users from churners — and then designing the onboarding flow to deliver that moment as fast as possible. The skill activates when you mention “onboarding flow”, “activation rate”, “aha moment”, or “users sign up but don’t use”.

The output of a session is an onboarding spec: aha-moment definition, a five-stage flow (welcome → first action → aha → habit → retention), empty-state design, checklist mechanics, in-app messaging triggers, and an activation-rate metric to track.

When to use it

Reach for it when:

  • Signups are healthy but activation is in the basement
  • Your empty states are literal blank screens
  • You have a feature that makes users sticky and want to drive every new user to it

When not to reach for it:

  • The signup flow itself is broken — fix signup-flow-cro first
  • Users are activating fine; this is a retention problem at a later stage

Install

The skill is distributed via Corey Haines’s marketing-skills repo. Install via the repo’s recommended path — copy the onboarding-cro SKILL.md into your project’s .claude/skills/onboarding-cro/ directory, or use the repo’s plugin install if you’ve set it up.

Once installed, the skill activates on the trigger phrases above. The first time it runs, it will check for .agents/product-marketing-context.md (or .claude/product-marketing-context.md) — populating that file with your product context first dramatically improves output quality across all of Haines’s marketing skills.

What a session looks like

A typical session has three phases:

  1. Aha-moment definition. What event correlates with retention? The skill pushes hard on this — without a defined aha, the rest is guesswork.
  2. Five-stage flow. Welcome (set expectations), first action (low-friction win), aha (deliver core value), habit (second session), retention (week-2 hook).
  3. Empty states + nudges. Empty-state copy that sells the feature, in-app checklist mechanics, lifecycle email integration, drop-off triggers and recovery moves.

The discipline that makes it work: time-to-aha as the ruler. Every screen, copy line, and modal gets evaluated by whether it moves the user toward aha or distracts from it.

Receipts

Honest reporting on what onboarding-cro produces and where it has limits:

Where it works well:

  • The aha-moment definition step is where most teams discover they don’t actually know their own activation event
  • Empty-state work alone produces visible activation gains — most teams under-invest there
  • The skill resists checklist-mania; checklists help when the user has chosen to engage, not as a forcing function

Where it backfires:

  • Without product analytics you can’t see drop-off; pair with analytics-tracking to find the actual bleeders
  • For products with multi-week activation cycles (B2B with implementation), the in-app focus needs to extend to email and CSM touches

Pattern that works: define the aha, instrument it as an event, then design backwards from it. Most onboarding redesigns fail because they redesign without measuring.

Source and attribution

Originally written by Corey Haines. The canonical SKILL.md and any supporting files live in the onboarding-cro folder of his marketing-skills repository.

License: MIT. You can install, adapt, and redistribute the skill, with attribution preserved.

This page documents the skill from a practitioner’s perspective. For the formal spec and any updates, defer to the source repo.