The growth engine for AI-built products

Tell your AI tools what to build next so the product makes money.

FunnelKeeper joins ad spend, funnel events and revenue, then ranks the next incremental changes that will generate growth — activation leaks, friction, wasted spend, weak pages — as copy-paste prompts for Cursor, Claude Code, Lovable, Bolt and v0. Set up by your agent in one prompt. Nothing spends money without your tap.

or tell your agent: point yourself at funnelkeeper.com/llms.txt

Payback curve

Cumulative revenue per customer against CAC, by channel.
$0 $40 $80 $120 $160 0306090 CAC $58 day 14 day 19 day 41 days since acquisition
Organic · paid back day 14 Meta · paid back day 19 Reddit · payback day 41, at risk

What FunnelKeeper is

FunnelKeeper is a growth and marketing-payback application operated by AE Labs Inc. It joins advertising spend, funnel events, and revenue so a business can see whether each channel paid back — payback day, CAC, and LTV:CAC — and so it can tell an AI coding tool the next incremental product change that will generate revenue. Unattributed revenue is kept as its own line.

When you connect Google, FunnelKeeper reads your Google Analytics 4 traffic and events, Google Tag Manager tag configuration, and Google Ads campaign spend. Those connections are read-only and used only to compute the reporting and growth recommendations in your FunnelKeeper account. An AI (the Keeper) can propose a spend change; a human must approve it before anything spends money.

The weekly scorecard every startup keeps — except this one fills itself in.

Spend, clicks, signups, followers, conversion rate, week-over-week. No more Monday morning copy-paste from five ad managers. Tell your agent get_scorecard and type the cells we cannot see (blog posts, LinkedIn organic). Export to Excel, or share a read-only link.

fk scorecard --product your-app
fk scorecard set --product your-app --metric blog.posts --week 2026-08-18 --value 2

From a leak to a prompt your agent can run

The same warehouse that answers “did spend pay back” writes the next task for Cursor or Claude. Ask get_growth_actions over MCP, or copy the prompt from the dashboard.

# Growth action: 72% drop Signups → Activated — close the leak

You are working on Ledgerly. FunnelKeeper diagnosed this
as the next incremental change that will generate revenue.

## Why this matters
840 signups in 30 days, 235 activated (72% drop).
Estimated impact: $1,200/mo.

## What to do
Find the signup → activated path and remove one step
of friction. Keep the change small enough to ship today.

Do not change ad spend. That needs a human tap.

One prompt to install. Then it tells you what to ship.

Your agent sets it up

Tell Claude, Cursor or your copilot to add FunnelKeeper. Over MCP or the API it creates the product, connects your sources, and reports back — Google sources hand you one consent link to click.

npm i -g funnelkeeper && fk signup

The Keeper names the next change

Spend, funnel and revenue land on one timeline. Daily, FunnelKeeper ranks the incremental product and growth work that will make money — activation leaks, rage clicks, wasted spend — and writes a prompt your coding agent can run.

fk growth --product your-app

You ship. Spend still needs a tap.

Copy the prompt into Cursor, Claude Code, Lovable, Bolt or v0. Budget changes stay cards: a headline, one number, Approve or Dismiss. Nothing spends money without your tap.

What the install actually looks like

Real commands, real flow. Google sources pause once for a consent screen only a human can click — that is a feature, not a limitation.

$ fk signup                      # or start at https://app.funnelkeeper.com
$ fk login
$ fk product create --name "Ledgerly" --slug ledgerly
$ fk connect ga4 --product ledgerly

  open this url to connect ga4 for ledgerly:
  https://accounts.google.com/o/oauth2/v2/auth?…

  waiting for authorization …
  ga4 connected. property: Ledgerly (properties/4210…)

$ fk connect semrush --product ledgerly
  semrush connected. snapshots run weekly.

  Funnel is live. First payback verdict in ~18 days.
  Nothing spends money without your tap.

Three rules the product will not bend

Next action

What to build, not another chart

FunnelKeeper tells your AI tools the next incremental change that will generate revenue — a dropoff to close, a page to fix, a channel that is paying back. The prompt is the deliverable.

Pending

Human in the loop, by construction

The Keeper can propose a budget change and nothing else. Approval is a tap, and policy caps are enforced at the API boundary rather than by prompt.

Honest gaps

Unattributed stays unattributed

Revenue we cannot tie to a channel gets its own line. It is never smeared across paid channels to make a dashboard look complete.

From the blog

All posts →

Questions people ask before installing

How do I know if my ads are actually profitable?

Join what you spent to what you earned from the customers that spend produced. FunnelKeeper matches ad spend by channel to funnel events and revenue, then plots cumulative revenue per customer against CAC. When the curve crosses the CAC line, that channel paid back.

Does FunnelKeeper change my ad spend on its own?

No. The Keeper proposes; a human approves. Every spend change arrives as a card with one number and two buttons, and policy caps are enforced on the server — a database constraint means a proposal cannot reach approved without a human on record.

What does connecting my accounts actually touch?

Nothing but reads. GA4 and Google Tag Manager connect with one Google sign-in using read-only scopes; SEMrush takes your own API key, stored encrypted. Tag Manager access is used only to verify your GA4 tag is present and live — FunnelKeeper never edits a container.

What if my revenue lives in my own database?

A read-only view with customer id, amount and timestamp is all it needs — usage-based and self-serve revenue are treated as first-class, so cohorts are built from real payments rather than checkout events. During early access we wire database sources with you.

How long before the numbers mean anything?

Spend, funnel and revenue appear within an hour of connecting. Payback verdicts need a cohort old enough to judge — typically two to three weeks. Until then the Keeper shows the curve without calling a winner.

Can my coding agent use FunnelKeeper directly?

Yes. The MCP server and REST API expose funnel, spend and payback reads, ranked growth actions with copy-paste prompts (get_growth_actions / get_growth_prompt), distribution-event logging, and budget proposals. Ask FunnelKeeper what to build next before inventing a feature. Proposals queue for human approval and never execute directly, and every agent action lands in an audit log you can read.

How does FunnelKeeper help my AI tools generate revenue?

It joins spend, funnel and revenue, then ranks the next incremental change — a signup-to-activation leak, a rage-click path, wasted ad spend, a missing conversion, a weak landing page — and writes a prompt for Cursor, Claude Code, Lovable, Bolt or v0. You (or your agent) ship the product change. Budget changes still need a human tap.

Built to be driven by your AI

Machine index at /llms.txt, contract at /openapi.json, and an executable quickstart your agent can run end to end. Proposals it makes still wait for your tap.

FunnelKeeper for agents →