Find and pitch the next expansion inside an account.
Reads the ready signals, picks the fitting play, sizes it, and writes an outcome-anchored ask.
Inside: The ready-signal read, the play, the sizing, and the pitch.
Install it in one line, or paste it in.
~/.claude/skills/ and runs automatically when it is relevant.Connect your context. Set it to your motion.
it reads the account, current ARR, products owned, and contacts automatically.
turns "they seem active" into which teams and features are actually maxed out.
sizes the untapped teams and roles inside the company you have not reached.
This was built for a B2B SaaS org growing named accounts. Set these to your stack:
Pitch from an outcome the customer already values. An expansion tied to a felt win closes; an expansion tied to your quota does not.
| Set this | What it is | Default / Example |
|---|---|---|
| PRODUCTS owned | what the account already has | seatstiermodules |
| USAGE source | where adoption lives | product analyticsa usage export |
| READY signals | what says expansion-ready | seats maxedfeature-limitednew team appearing |
| EXPANSION types | the plays available | more seatstier upgradenew use casecross-sell |
| ORG map source | how you size untapped teams | enrichment toolorg chartLinkedIn |
| OUTCOME proof | the win you pitch from | hours savedrevenue influencedcycle time |
Everything the skill does, in full.
Looks inside an account you already own and finds the next dollar: more seats, a higher tier, or a new use case. It reads the signals that say the account is ready, picks the play that fits those signals, and writes a pitch tied to an outcome the customer has already felt. It only recommends the expansion the data supports, and it says when there is none.
- 1Read the ready signals
Expansion-ready looks like: seats fully active and bumping the limit, a feature or tier the account keeps hitting the ceiling of, a new team showing up in usage, a second use case emerging on its own, a strong health score with a happy sponsor. If none of these are present, the honest answer is "not yet," and the skill says so.
- 2Pick the play
Match the play to the signal. Maxed seats point to more seats. Ceiling-hitting points to a tier upgrade. A new team in usage points to a land-and-expand into that team. A second use case points to a cross-sell. Do not stack every play at once; lead with the one the signals most support.
- 3Size it
Estimate the expansion: how many seats, which tier, what the new team is worth. Use enrichment or the org map to size the untapped part of the company. Mark the size an estimate when you cannot see it, and name the input that would make it firm.
- 4Write the pitch
Anchor on the outcome already delivered, then extend it. "One team cut its cycle time this much; the next team runs the same motion and is not on it yet." Name the buyer, the ask, and the proof. One clear ask beats a menu.
- 5Time it
Tie the ask to a moment: a QBR, a hit milestone, a renewal, a new-team launch. An expansion pitched at the right moment feels like help; the same pitch at the wrong moment feels like a shakedown.
- No expansion recommended without a ready signal to back it. "Not yet" is a valid, honest output.
- The pitch anchors on a delivered outcome, never on your quota.
- Any expansion size that cannot be measured is marked an estimate with the input that would firm it.
- One primary play per account, not a menu of five.
EXPANSION READ · sample account · current 9 seats, mid tier READY SIGNALS PLAY 9/9 seats active, 2 waitlisted +5 seats Hitting the reporting ceiling monthly tier upgrade New ops team appearing in usage land the ops team Primary play: +5 seats. Proof: the current team is fully adopted and turning people away. Ask: add 5 seats now, revisit the tier at the next review. Buyer: the sponsor who owns the team. Timing: pitch at the QBR in 3 weeks, off the adoption win. Estimated expansion: ~55% of current ARR (illustrative, confirm seat price).
The seat counts, sizes, and percentages come from the data you paste or the tools you connect. Nothing above is a real customer number; it is illustrative. When the skill cannot size an expansion, it marks it an estimate and names the input, a seat price or an org map, that would make it real.
Where an operator takes this next.
The read works from what you already know about the account. Here is where it starts finding the expansion before you go looking.
The account was always going to grow. This just gets there before someone else notices.
Wire a scheduled Claude task against product-usage data (Amplitude) so it flags an account the day it crosses the seat ceiling, instead of waiting for the QBR.
Connect Clay or a similar enrichment tool to map headcount by department, so the pitch names a real number instead of an estimate.
Have the play post straight to the account owner in Slack with the pitch drafted, so the moment doesn't sit in a dashboard nobody opens.
One skill is the on-ramp.
A single skill does one job. Chained into a playbook, or run as a full build, it becomes a system. Here is where this one plugs in.