Zen Intent · Unit economics
Every service on the invoice, what one lead costs to produce, how the credit model turns that into revenue, where our current plans run out, and whether Apollo earns a seat. Prices and credit rules are read from the code and the vendors' published rates.
Our model
Credits. 35 buys one enriched lead, 60 buys one with the intelligence layer. Four monthly plans from $197 to $1,197, plus top ups priced at the same rate for customers who run out mid cycle.
A local business found on Google Maps, its reviews and competitive context, a verified decision maker email, LinkedIn and phone, and an AI read of the pain points worth calling about.
The intelligence unlock at 25 credits, a $2.50 per lead intelligence add on, and the CRM Portal at $997 flat. All three raise revenue per customer without touching the plan price.
The shape of it: recurring credit revenue, a cost of goods that steps up in tiers rather than rising per lead, and cash collected at request time rather than delivery. Acquisition is the free Welcome Gift, which hands over 42 leads worth of data before anyone pays.
The business model
Deduction happens at request time, not delivery, and is held against the request as reserved credits. That is what protects us: we are paid before we spend anything with SerpAPI or Hunter, and we refund only what we failed to deliver. Free tier users and admins bypass the ledger entirely.
Top ups are priced at the same rate as the plan they sit under, about 8.5 cents a credit on Growth, so extra volume neither helps nor hurts margin. It simply arrives without a plan upgrade.
Free credits we issue
The gift is granted once and flagged, so it cannot be claimed twice, and it lands in the same credit ledger as paid credits, which means the normal deduction and refund rules apply to it. On the books it is a 57 times ratio: we give away $127 of retail for $2.23 of real cost.
In acquisition terms that is cheap. One month of a Growth subscription pays for 155 gifted signups. The risk is not the cost, it is that 42 free leads may be enough to satisfy a casual user without ever converting them.
Everything on the invoice
| Service | What it does | What it costs | Where it lives |
|---|---|---|---|
| Stripe | Takes the money | 2.9% plus 30c, so $321 a month at 31 customers | App |
| Hunter | Company data, decision maker email, verification, person enrich | $149, Growth, 10,000 credits | n8n |
| SerpAPI | Maps discovery and per lead place details | $75, Developer, 5,000 searches | n8n |
| Google Gemini | The AI read of each lead | Never measured | n8n |
| Resend | Transactional email | $0, the free tier covers 3,000 a month and we send about 250 | App |
| n8n | Runs the whole pipeline | Not measured, cloud or self hosted | Infra |
| Hosting and MariaDB | The app, and also cache, queue and sessions | Not measured | Infra |
Not on the list, and worth saying so: GoHighLevel has no credentials configured, so it costs nothing today. Meta CAPI, Google sign in and Slack alerts are all free tiers. Cache, queue and sessions all run on MariaDB, so there is no Redis line either.
Stripe is the largest single cost in the business, ahead of both data providers combined. Three of the seven have never been measured, and Gemini is the one most likely to matter.
What runs today
| Call | Service | What it gives us | Cost per lead |
|---|---|---|---|
| Maps search | SerpAPI | Lead discovery by niche and location, paginated | 0.05 searches |
| Place details | SerpAPI | Reviews, rating, hours, booking link, Q&A, competitors, unclaimed flag | 1 search |
| Company find | Hunter | Employees, founded year, revenue estimate, tech stack, industry, phone | 1 credit |
| Domain search | Hunter | Decision maker emails, filtered to executive and senior | 1 credit |
| Email verifier | Hunter | Deliverability before we hand the lead over | 0.5 credit |
| Person enrich | Hunter | Name, title, seniority, LinkedIn, phone number | 1 credit, intelligence only |
| AI pass | Gemini | Reads the merged record. Pain points, sentiment, complaints, tech gaps, scores | Not a data source |
The highlighted row is the one that drives the SerpAPI bill. Place details runs once per lead, not once per search, so it is twenty times the discovery cost. Gemini interprets what the other six fetched; it looks nothing up.
Per lead
| Line | Volume per lead | Rate on our plan | Cost per lead |
|---|---|---|---|
| SerpAPI | 1.05 searches | $0.0150 each | $0.016 |
| Hunter | 2.7 credits | $0.0149 each | $0.040 |
| Total | $0.056 | ||
| We charge | 1 lead | Depends on plan | $2.36 to $3.18 |
Hunter credits assume 20% of leads take the intelligence unlock, which adds the person enrichment call. At 100% unlocks it is 3.5 credits and about seven cents a lead. Hunter charges nothing when it finds no email, so the real figure sits below this.
For ops
| When monthly leads are | Buy this | |||
|---|---|---|---|---|
| From | Up to | Hunter | SerpAPI | Both cost |
| 0 | 740 | Starter $49 | Starter $25 | $74 |
| 740 | 950 | Growth $149 | Starter $25 | $174 |
| 950 | 3,700 | Growth $149 | Developer $75 | $224 |
| 3,700 | 4,760 | Scale $299 | Developer $75 | $374 |
| 4,760 | 9,250 | Scale $299 | Production $150 | $449 |
| 9,250 | and beyond | Quote needed | Production $150 | Ask both |
The highlighted row is where we are now, and it runs out at 3,700 leads a month, about 31 Growth customers. Hunter binds before SerpAPI does, at 9,990 of its 10,000 credits. Each lead burns 2.7 Hunter credits and 1.05 SerpAPI searches, so multiply this month's leads by those and check both dashboards. Above 9,250 leads Hunter has no published tier and needs a quote.
The catch on growth
Data cost does not rise per lead, it jumps in steps. At 3,744 leads a month Hunter moves from Growth to Scale, $149 to $299, and the jump lands in full the month it happens. Against $347 of new revenue that is 43% of the customer we just won, then it amortises away across the next several.
Two consequences. Any pricing change that adds volume should be timed with a tier headroom check, not launched blind. And the honest way to read the margin table is that margin dips every time we grow into a new tier, then recovers. It is not a warning sign, it is the shape of the cost base.
Unit economics
| Base lead, 35 credits | Intelligence lead, 60 credits | The 25 credit unlock on its own | ||||
|---|---|---|---|---|---|---|
| Plan | We charge | We keep | We charge | We keep | We charge | Margin |
| Starter | $3.13 | $3.08 | $5.37 | $5.30 | $2.24 | 99.3% |
| Growth | $2.96 | $2.91 | $5.08 | $5.01 | $2.12 | 99.3% |
| Scale | $2.62 | $2.57 | $4.50 | $4.43 | $1.87 | 99.2% |
| Enterprise | $2.35 | $2.30 | $4.03 | $3.97 | $1.68 | 99.1% |
A base lead costs us 5.3 cents. An intelligence lead costs 6.8 cents, because the only difference is one extra Hunter call. So the unlock charges 71% more and costs us 28% more, which is why its margin beats the base lead.
Every credit we sell is worth more than every credit costs, at every plan tier. The cheapest tier per credit, Enterprise at 6.7 cents, still keeps 97.7% of a base lead. There is no volume at which the data bill threatens the model.
Projection
| Growth customers | What it costs us | Result | |||||
|---|---|---|---|---|---|---|---|
| Customers | Leads | Revenue | Data | Stripe fees | Total | Gross profit | Margin |
| 10 | 1,170 | $3,470 | $224 | $104 | $328 | $3,142 | 90.6% |
| 25 | 2,925 | $8,675 | $224 | $259 | $483 | $8,192 | 94.4% |
| 31 | 3,627 | $10,757 | $224 | $321 | $545 | $10,212 | 94.9% |
| 50 | 5,850 | $17,350 | $449 | $518 | $967 | $16,383 | 94.4% |
| 100 | 11,700 | $34,700 | $528 | $1,036 | $1,564 | $33,136 | 95.5% |
At our current ceiling of 31 customers, Stripe costs $321 against a data bill of $224, so payment processing is 1.4 times the thing this whole deck has been arguing about. Annual billing would cut it, since 2.9% plus 30 cents lands twelve times a year on monthly plans and once on annual.
Two costs are still missing. The free Welcome Gift hands over 1,500 credits, which is 42 leads and about $2.23 of data per signup that claims it, and Gemini charges per AI pass, which we have never measured. Neither changes the shape, but they belong in a real P and L.
Where the money goes
| How a Growth customer pays | Fee per year | Versus card monthly |
|---|---|---|
| Card, billed monthly, what we do now | $124.36 | Baseline |
| Card, billed annually | $121.06 | Saves $3.30, barely worth it |
| Bank debit, billed monthly | $33.31 | Saves $91.04 |
| Bank debit, billed annually | $5.00 | Saves $119.36 |
Bank debit is 0.8% capped at $5, against 2.9% plus 30 cents on cards, so on an annual charge the cap does almost all the work. The intuitive move is annual billing, but on its own it saves only $3.30, because the percentage still applies to the same total and all we drop is eleven 30 cent charges. The lever is the payment method, not the billing period. Combining both is what takes $124 a year down to $5.
Pricing
| If the Growth plan cost | Our cost per lead | Result | |||
|---|---|---|---|---|---|
| Price | Per lead | Data | Card fee | Total | Margin |
| $347, today | $2.97 | $0.053 | $0.089 | $0.142 | 95.2% |
| $247 | $2.11 | $0.053 | $0.064 | $0.117 | 94.5% |
| $197 | $1.68 | $0.053 | $0.051 | $0.104 | 93.8% |
| $147 | $1.26 | $0.053 | $0.039 | $0.092 | 92.7% |
| $97 | $0.83 | $0.053 | $0.027 | $0.080 | 90.4% |
We charge 56 times what a lead costs to produce, so cost tells us almost nothing about what to charge. Pricing here is a market and value decision, not a margin one. What cost does tell us is that discounting is close to free, and that any price we pick will still clear 90%.
The one thing that genuinely limits a price cut is not margin, it is the tier staircase from earlier. Cheaper prices win more volume, and volume is what actually costs us money.
Pricing levers, ranked
| Move | What it returns | Effort | Risk |
|---|---|---|---|
| Offer bank debit, annual | $119 per customer a year, and cash up front | Stripe setting plus a checkout option | Low, card stays available |
| Push the intelligence unlock | $2.12 at 99.3% margin per unlock | Product nudge, already built | Low |
| Price top ups above plan parity | Today a top up credit costs the same as a plan credit, so there is no pull toward upgrading | Pricing table change | Medium, may read as punitive |
| Cut headline prices | Volume, at 90% plus margin either way | Pricing table change | High, resets anchors and trips tiers |
The first two are close to free money and need no pricing change at all. Bank debit alone returns more than our entire annual data bill. The intelligence unlock is already built and is the highest margin line we sell.
Repricing sits last deliberately. At 56 times markup we can afford it, but it is the only move on this list that cannot be undone quietly.
What Apollo would add
| Capability | Apollo | Hunter, already running | SerpAPI, already running |
|---|---|---|---|
| Work email at a domain | Yes | Yes, domain search | No |
| Email verification | Partial | Yes, verifier | No |
| LinkedIn profile | Yes | Yes, person enrich | Yes, via search |
| Job title and seniority | Yes | Yes, person enrich | Roughly |
| Direct phone number | Yes | Yes, person enrich | No |
| Employees, revenue, tech stack | Yes | Yes, company find | No |
| Reviews, rating, competitors | No | No | Yes, place details |
| Third party topic intent | Yes | No | No |
The direct phone number used to be the argument for Apollo. Hunter's person enrichment already returns it, along with LinkedIn, title and seniority. That leaves topic intent, which measures whether a company is researching a category, and is close to empty for local trades.
What Apollo would cost
Basic tier, or $49 committed annually. Charged from day one whether we enrich one lead or four thousand. It does not replace Hunter or SerpAPI, it stacks on both.
At 3,700 leads, the seat plus credits on the leads Hunter missed. Apollo bills nothing when it finds nobody, so a weak match rate costs little beyond the seat.
The free plan blocks the endpoint entirely, so the match rate on local trades is unknown until after the first invoice.
Cost is not the obstacle. At 3,700 leads Apollo moves margin from about 98% to about 97%, which is nothing. The obstacle is that we would be paying for a second source of data we already collect.
What Apollo would let us sell
Apollo's topic intent is the one thing Hunter and SerpAPI cannot give us. Packaged as a paid unlock alongside intelligence, it would read as "this business is researching your category now". Priced at 25 credits like the intelligence unlock, it earns $2.12 and costs 3 cents.
Emails, LinkedIn, direct phone, titles, employees, revenue and tech stack all already arrive from Hunter. Reselling them as an Apollo feature would be charging twice for data we hold.
That is a low bar. One customer unlocking intent on a third of their leads would clear it. The catch is the third figure: topic intent is built for companies that generate trackable research behaviour, and a two truck plumbing firm generates almost none. If coverage is near zero the feature cannot be sold at all, and this is measurable only after we have paid for a seat.
Run your own numbers
Recommendation
owner_email and decision_maker_linkedin are being written, not droppedCode checkApollo is worth revisiting only if Hunter measurably misses the decision maker on our kind of business. It offers no capability we lack, so the case can only ever be coverage, and we can measure our current coverage for free.
If it goes ahead, one more thing needs an answer in writing first: Apollo licenses its data for internal use and restricts redistribution. We hand records to paying customers, so that needs clearing with Apollo before any build.
Assumptions
The six API calls and their parameters come from the n8n workflow. Plan prices and credit allowances come from lead_products and the published SerpAPI and Hunter pricing. A lead costs 35 credits, from config/leads.php. Hunter charges 1 credit per domain search, 1 per finder, 0.5 per verification, and nothing on a miss.
Hunter's company and person enrichment credit costs are taken as 1 each, which their docs do not state. Apollo's per credit price is not published, so $0.03 is a mid estimate from third parties. The 60% Hunter hit rate and 35% Apollo match rate are both unmeasured, and the intelligence unlock share is a guess. Volumes are illustrative.
Two of these decide the whole question: Hunter's real hit rate, which we can measure today at no cost, and Apollo's match rate on local trades, which we cannot measure without paying. That asymmetry is the argument for doing the free measurement first.