Zen Intent · Unit economics
Two suppliers we already pay for, SerpAPI and Hunter, and one we are proposing to add, Apollo. What a lead costs to produce today, how the credit model turns that into revenue, where our current plans run out, and what Apollo would change.
Before we start
| Word | What it means here |
|---|---|
| Lead | One local business we hand to a customer, with its reviews, the owner's name, a working email, and a note on what the business needs |
| Credit | Our currency. Customers buy credits, not leads. An ordinary lead costs 35 credits, one with the extra research costs 60 |
| Intelligence | The deeper version of a lead. Same business, plus the decision maker's direct phone and profile. Costs 25 more credits |
| Google Maps lookup | How we find businesses in the first place. We pay a company called SerpAPI to read Maps for us, because Google does not sell this directly |
| Contact lookup | How we find the owner's email and phone. We pay a company called Hunter for this |
| Apollo | A third company selling similar contact data. We do not use it. Whether we should is one of the questions in this deck |
| Allowance | Both suppliers sell a monthly bucket of lookups. If we do not use them they are lost at month end, and if we run out mid month everything stops |
One more, because it appears on a few slides. The pipeline is the automation that runs all these lookups in the right order for every lead, without anyone pressing a button. It is built in a tool called n8n.
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 for customers who run out mid cycle, discounted 10% to 32% depending on the plan they are on.
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.
One caution on that 95%. It counts revenue minus the data suppliers minus card fees, and nothing else. It excludes hosting, the AI pass, salaries, marketing and support, so it is a ceiling rather than take-home profit. There is a slide on this later.
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 list at 10 cents a credit and each plan discounts them, from 10% off on Starter to 32% off on Enterprise. That ladder is the pull toward upgrading: a Starter customer topping up to Growth volume pays $368, while Growth itself is $347.
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 automatically | 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
| Step | Who we pay | What it gives us | What it uses |
|---|---|---|---|
| Find the businesses | SerpAPI | Searches Google Maps by trade and town, page after page | 0.05 searches |
| Get each one's details | SerpAPI | Reviews, rating, hours, booking link, Q&A, competitors, unclaimed flag | 1 search |
| Look up the company | Hunter | Employees, founded year, revenue estimate, tech stack, industry, phone | 1 credit |
| Find the owner's email | Hunter | Decision maker emails, filtered to executive and senior | 1 credit |
| Check the email works | Hunter | Deliverability before we hand the lead over | 0.5 credit |
| Look up the person | Hunter | Name, title, seniority, LinkedIn, phone number | 1 credit, intelligence only |
| Write the analysis | 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.
Read this before quoting the 95%
| If everything in the right hand column came to | The margin becomes |
|---|---|
| $500 a month | 90.3% |
| $1,000 a month | 85.6% |
| $2,000 a month | 76.3% |
| $5,000 a month, roughly one salary | 48.4% |
So the useful way to read 95% is as a ceiling. It says the data and the card fees are not what will stop this business being profitable. It does not say we keep 95 cents of every dollar, and nobody should quote it as if it did.
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.
The pricing question
We keep 95 cents of every dollar. Even at a third of today's price we would keep 90. Our costs are not putting any pressure on the price.
A Starter customer who tops up to Growth's volume pays $368. Growth itself is $347. So upgrading is already the cheaper path, by design.
A lower price wins more customers, and customer 32 triggers a $150 jump in supplier fees. Growth is what costs us money, not the price.
A price change is how you answer losing deals on price. We have not recorded that happening. Changing the one number we have no evidence about, while two free improvements sit untouched, is the wrong order.
Do these first instead. Offer payment by bank transfer, which returns $119 per customer a year and needs a settings change, not a pricing decision. Then push the intelligence upgrade, which is already built and is the most profitable thing we sell. Revisit price only if we start losing deals over it.
Side by side
The first six rows do not move. Apollo has no access to Google Maps, and it cannot write the pain point analysis, so everything that makes our lead a local lead is unaffected. Three rows change, and only one of them is genuinely new.
| At 3,700 leads a month | Today | With Apollo | Difference |
|---|---|---|---|
| Leads carrying a contact | 60% | 74% | +518 contacts |
| Supplier cost a month | $224 | $305 | +$81 |
| Cost per lead | $0.06 | $0.08 | +$0.02 |
| Gross margin | 98.0% | 97.2% | 0.8 points |
The 6 in 10 is an assumption, not a measurement, and it drives the whole right hand column. If Hunter is really at 8 in 10 the gain shrinks to 259 contacts. If it is at 4 in 10 it grows to 777.
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 |
| Search for a person before we know the company | Yes | No, needs a domain | No, lists places |
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 two rows. Topic intent, which is thin for local trades, and searching for a person before we know their company, which is the one that matters and gets its own slides shortly.
But this table is about what each service is capable of, not how often it succeeds. Those are different questions, and the second one is where the real case for Apollo sits. That is the next slide.
The real case for Apollo
The previous table shows Hunter is able to find an owner's email. It says nothing about how many times out of ten it actually does. Nobody has measured that. If Hunter finds six in ten, four in ten of our leads ship without a contact, and a second source would pick some of those up.
| If Hunter finds | Adding Apollo on the ones it missed | What that costs | |||
|---|---|---|---|---|---|
| Emails today | Combined | Points gained | Extra contacts | Apollo a month | Per contact |
| 30% | 54.5% | +24.5 | 907 | $92 | $0.10 |
| 40% | 61.0% | +21.0 | 777 | $88 | $0.11 |
| 60% | 74.0% | +14.0 | 518 | $81 | $0.16 |
| 80% | 87.0% | +7.0 | 259 | $73 | $0.28 |
| 90% | 93.5% | +3.5 | 130 | $69 | $0.53 |
Read the direction carefully, because it is the opposite of intuition. The worse Hunter is, the more Apollo is worth. If Hunter is only finding three in ten, Apollo adds 24 points of coverage for ten cents a contact. If Hunter is already at nine in ten, Apollo adds three points and is hard to justify.
We do not know which row we are on. That single unmeasured number decides the whole proposal, and it is measurable from leads we have already delivered.
The bigger use for Apollo
Everything so far assumed Apollo enriches a business we already found on Maps. The other way to use it is the opposite direction: search for people by job title, seniority, company size and location, and get the person and their company back together.
| Starting point | What we can search by today | Can it find a person first? |
|---|---|---|
| SerpAPI | A trade and a town, on Google Maps | No. Maps lists places, not people |
| Hunter | A domain we already know | No. We must have the company first |
| Apollo | A job title, seniority, industry, headcount, location | Yes. This is the new capability |
Instead of one contact per business, return the owner, the operations lead and the office manager. Three ways in rather than one.
Firms with no storefront and no Maps listing are invisible to us today. Person first search reaches them, which is a new segment rather than better data.
A person lead has no rating, no reviews, no competitor count and no unclaimed listing, so the review based pain points and the intent score cannot be built the way they are now.
This is the strongest argument for Apollo in the whole deck, and it is not enrichment. It is a second product line beside the local business lead, with its own data shape and its own scoring.
What a person lead costs
| Apollo action | Credits it uses | Cost at 3 cents a credit |
|---|---|---|
| Search for people matching a persona | free | $0 |
| Reveal one personal email | 1 credit | $0.03 |
| Reveal one phone number | 8 credits | $0.24 |
| One lead, all in | What it costs us | Margin at $2.96 |
|---|---|---|
| Local business lead, what we sell today | $0.053 | 98.2% |
| Person lead, email only | $0.030 | 99.0% |
| Person lead, email and phone | $0.270 | 90.9% |
A person lead with just an email is cheaper than what we sell today, because one Apollo call replaces the Maps detail lookup and three Hunter calls. Add the phone number and it becomes five times dearer than a local lead, though still a 91% margin.
This also corrects an earlier slide. I costed Apollo filling missing contacts at $81 a month on the assumption of one credit each. If we want direct dials too it is $205 a month, because phones are 8 credits. Filling missing emails and adding direct dials are two different proposals with a 2.5 times difference in price.
What Apollo would cost
In plain terms: Apollo will not let us test whether their data is any good for our kind of business until after we have started paying.
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
The proposal
Count how many of our delivered leads already carry an owner email and a direct phone. This needs no spend and tells us which row of the previous table we are on. If Hunter is already above 80%, stop here and do not buy Apollo.
One month of Apollo Basic, monthly not annual so we can leave. Test both uses: filling the contacts Hunter missed, at $81, and a person first search for a persona we cannot reach through Maps at all. Reveal emails, not phones, while measuring, because phones are 8 credits each.
Get Apollo to confirm in writing that we may pass their data to paying customers. Their terms licence it for internal use. This is the one issue that can stop the whole thing, and it costs nothing to ask.
| After the month, we keep Apollo if | We drop it if |
|---|---|
| It lifts contact coverage by 10 points or more | It lifts coverage by under 5 points |
| Or person first search reaches buyers Maps cannot find | Or the licensing answer is no |
| Or the intent signal is populated enough to sell as an unlock | Or match rate on local trades is under 3 in 10 |
The whole risk is one month and between $81 and $205, depending on whether we reveal phone numbers as well as emails. Even the higher figure is under 2% of monthly revenue at 31 customers. Deciding this by argument costs more in meeting time than deciding it by measurement.
Recommendation
Steps one to three cost nothing and are worth doing whether or not Apollo goes ahead. Step four is the paid trial, and the decision rule for keeping or dropping it is agreed before we start rather than argued afterwards.
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 seven steps above were read directly from the automation that runs them. Plan prices and credit allowances come from our pricing table and the two suppliers' published rates. A lead costs 35 credits, from our own settings. 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.