Spot the accounts ready to expand before they ask.

For a founder or account owner at a self-serve B2B product, the job is: find the customers whose behavior says “growing”—more activity, more people, pricing-page reads—while the timing is still yours to use.

The job

Expansion revenue arrives late because the signals live in three tools.

The upgrade conversation usually starts when the customer starts it—a limit hit, a “how much for more seats” email—which means it starts on their timeline, after weeks of signals nobody assembled. Usage climbing sits in product analytics. New people from the account appear in the CRM. The pricing-page reads live in web analytics. Each is a weak signal alone; together they’re an account telling you it’s outgrowing its plan, and “together” is the part nobody has time to build.

The flow

What the agent does, tool by tool.

The signals already land on one profile per account—events from your site and product, contacts as they appear, CRM state. Four calls put them together, and the scan across every account is free.

  1. #1
    aggregate_data

    Rank accounts by how much they heated up

    Group this month’s events by account, with the prior window beside it, and the risers surface on their own: more sessions, more people active, a new team suddenly in the product. This runs server-side across the whole book without pulling a single profile.

  2. #2
    aggregate_data

    Pull the buying signals

    A second aggregation, filtered to intent: who has been reading pricing, plans, or upgrade pages, grouped by account. An account that is both heating up and reading pricing has told you what it’s thinking without filling in a form.

  3. #3
    batch_get_details

    Check who has headroom

    Details on the overlap, up to 25 accounts per call: company, size, industry, CRM state. This is where the shortlist forms—the growing account still on your smallest plan reads differently from one already at the top tier.

  4. #4
    create_company_note

    Put the read where the owner sees it

    Each expansion-ready account gets a note: the evidence, the moment, and a suggested opener that names what they’re doing instead of “just checking in.” Notes live on the unified profile every connected agent reads; syncing notes into two-way CRMs is rolling out.

Run it monthly—or weekly while pricing is changing.

The prompt

Paste it into your agent. That’s the whole job description.

First, connect Pathbound to your agent—about five minutes, in whichever client your team runs. Then paste this prompt. This is how you identify expansion opportunities on a schedule: a recurring monthly task in ChatGPT, Claude, or Claude Cowork, or an n8n cron ahead of your billing cycle.

The prompt
Find the accounts that look ready to expand. Compare each account’s activity this month against its baseline and list the ones heating up—more events, more active people. Then check which accounts have someone reading our pricing or plans pages. Pull details on the accounts that show both signals—size, industry, CRM state—and rank them by how ready they look. Leave a note on each with the evidence and a suggested opener, and give me the shortlist with one line each on why now.
The payoff

What you get back.

Expansion conversations start on your timing, with evidence in hand—“you’ve added people this month and someone’s been reading the pricing page” is a different email from “just checking in.” The accounts quietly outgrowing their plan get noticed while the momentum is live. And because the ranking runs on aggregation, scanning every account costs nothing until you pull details on the few that show both signals.

Works with

Works in any MCP client.

Pathbound is one remote MCP server, so the recipe runs wherever your agent does. Pick the product your team already uses and follow its setup.

Don’t see yours? Any MCP client connects the same way.

Related recipes
FAQ

Expansion signals, sources, and how the shortlist forms.

Is there an AI that can automatically identify expansion opportunities?

Yes—an agent running this recipe does exactly that, on your own data rather than a scoring black box: it ranks accounts by rising activity against their own baseline, cross-checks who is reading pricing pages, weighs size and CRM state, and writes the evidence on each account. Point any MCP agent at Pathbound—the customer data MCP—and run the prompt above on a schedule.

What counts as an expansion signal?

Rising activity against the account’s own baseline, more people from the account showing up, and intent reads—pricing, plans, and upgrade pages—captured by Events. Any one alone is noise; the recipe acts on the overlap. If your CRM carries plan or deal fields, those weigh in through the account details.

Do I need product analytics for this?

No. The recipe reads whatever event sources you connect: the events snippet on your site, product events, PostHog if you use it. More sources sharpen the baseline, but pricing-page reads plus new contacts already separate the warming accounts from the quiet ones.

Is this lead scoring?

Same family, different subject. Lead scoring guesses whether a new lead fits. This reads whether an existing account is growing—actual usage, actual people, actual pricing reads—so there’s no model to train and nothing to calibrate. The evidence lands on the account; the judgment call stays yours.

What does it write back?

A note per expansion-ready account, written with create_company_note: the signals, when they started, and a suggested opener. The note lives on the unified profile every connected agent and teammate reads; syncing notes into two-way CRMs like HubSpot is rolling out. Nothing else changes unless you ask the agent to update fields.

How often should it run?

Monthly matches how expansion momentum builds; weekly is worth it during a pricing change or a launch. The calls are stateless MCP requests, so a recurring task in ChatGPT or Claude, a Cowork schedule, or an n8n cron all work.

Try it on your own data

Within five minutes, your agent is querying real customer context.

Sign up, connect one CRM or drop the events snippet, and point your MCP client at mcp.pathbound.ai/mcp.