Audience Ops / Between Paris and Sydney
The accounts
that are buying
are not
in your CRM.
They are hiring for the role your product replaces, they just changed tooling, they follow your competitors. No sync will ever produce them, because they are not in your system. In fourteen days they become a live audience inside your own ad accounts, alongside the decision makers on your list the platform could not recognise.
Fourteen days, paid once, no retainer. Match rate guaranteed at 60 percent minimum, read in your own account on day 14, or I refund it.
- Duration
- 14 days
- Guarantee
- 60% on day 14
- Lock in
- None
- Capacity
- 2 builds at a time
Ask any other vendor for these four lines before your second call with them.
01 / What is missing
Your market is not in your CRM.
The companies hiring for the role your product replaces. The ones that just changed tooling. The followers of your competitors' accounts, the people who signed up to their webinars. These accounts are buying right now, and no sync will ever produce them, because they are not in your system.
That is the half that has nothing to do with your budget. Spending more does not fix it: an ad platform can only target what it was given, and it was never given these accounts.
The other half is about the accounts you already hold. You upload your CRM to Campaign Manager and LinkedIn matches three rows in ten. Your contacts are stored on their work email, the platform knows its members by their personal address and their mobile.
So six decision makers in ten of your own list will never see your ads, and the budget concentrates on the remaining third, saturating it. Nobody did a bad job here. This is what happens when data moves from a CRM to an ad platform, and nobody in that chain is paid to fix it.
Check it yourself in thirty seconds
- 01Campaign Manager, Audiences tab.
- 02Open the last list you uploaded.
- 03Divide the matched column by the number of rows you sent.
That number is the share of your own list your ads can reach. It is the only one this page asks you to go and find, and it lives in your account. On Meta: Ads Manager, custom audience, same reading.
linkedin.com/campaignmanager
The size of the market, published
1,000 to 3,500
That is how many French companies spend more than 10,000 euros a month on B2B advertising. The range comes from a derivation of the national business distribution, cross-checked against three other estimates. Nobody publishes this number because it is small, and that is exactly what makes named-account targeting possible at all.
national distribution, August 2026
02 / The economic argument
The same accounts, at a quarter of the impression cost.
LinkedIn is the only B2B channel whose attributed return on ad spend stays positive. It is also the most expensive on the market, around 33 dollars per thousand impressions.
Meta charges 8 to 15 dollars for the same thousand impressions. Its native professional targeting is worthless in B2B, so nobody uses it.
A list enriched with personal emails and mobiles matches at 65 to 85 percent on Meta. Your target accounts become addressable where impressions cost four times less. Same list, same message, a quarter of the price per eyeball.
For European accounts I ship the LinkedIn half and price the Meta upside without switching it on. A lookalike built on enriched data falls outside the scope inside the European Union. Better you hear that here than after the invoice.
| The economic argument | Meta | |
|---|---|---|
| Cost per thousand impressions | ~$33 | $8 to $15 |
| Attributed return on ad spend | 121% | 51% |
| Match rate, native upload | 30 to 40% | low |
| Match rate, enriched list | 80 to 95% | 65 to 85% |
Attributed return on ad spend: Dreamdata, multi-touch. Impression costs: European benchmarks, 2025. Google Search sits at 67 percent in the same study.
03 / What ships
Audience Core, 14 days.
One build, identical for everybody, paid once. Four parts. The first brings accounts you do not have, the second makes the ones you do have reachable, and the fourth may already exist in your stack, in which case I say so instead of billing for it.
The accounts your CRM does not hold
Intent signals, open job posts, tech stack changes, competitor followers, webinar attendees. These companies are buying right now and have never spoken to your team. A sync will never produce them, by construction: a connector only transmits what it holds.
The enrichment that makes both usable
A multi-vendor waterfall: personal email and mobile, verified, normalised, hashed. It is the engine shared by both audiences. On your existing list it takes LinkedIn from 30 to 40 percent up to 80 to 95, and makes Meta usable at 65 to 85. No native connector does this, because no native connector is allowed to buy data.
Dynamic exclusions
Active customers, open opportunities, partners, recent inbound. They come out of the acquisition audiences and stop burning budget.
On HubSpot Marketing Hub Pro and above this already exists natively in your stack. We skip it, the weight moves to parts 01 and 02, and I do not rebill it.
Dashboard and handover
Size of every audience, measured match rate, data freshness, and a ten minute recording walking through each screen. The audiences live in your own ad accounts, under your name. They stay there the day we stop.
What never enters the scope
Running your campaigns. Not bids, not creative, not budget. The day I take that on, your cost per lead becomes my problem, and cost per lead cannot be guaranteed. I ship the data and the audiences. Your agency runs media on top, and does it better, because it is finally aiming at the right people.
04 / The arithmetic, printed
Your coverage, in numbers.
Three figures you already have: the size of your list, your monthly ad spend, and the match rate you just read off the platform. This only covers the accounts you already hold. The non-CRM audiences sit on top and do not appear here, because they cannot be derived from any of these three numbers.
- Reached today
- 35
- Recovered by the build
- 50
- Out of reach either way
- 15
One hundred cells for one hundred contacts on your list. The gain shown takes the upper bound, 85 percent. The floor I guarantee, the one that triggers the refund, is 60, deliberately below what the sources give.
What your current budget buys on top
+6,250 / +12,500decision makers
Without adding a euro. It is the only return this page calculates, because it is the only one that depends on the data alone.
Decision makers on your list you can actually reach
8,750 → 15,000 / 21,250
Today, then after the build: 60 percent guaranteed as a floor, 85 percent at the upper bound of enrichment.
Audience multiple
×1.7 / ×2.4
Guaranteed floor, then upper bound.
Drop in cost per reachable decision maker
−42% / −59%
Same spend, same message. $2.86 → $1.67 / $1.18 per decision maker
The same coverage, bought in media
$17,857 / $35,714/ month
That is what you would have to add every month to reach as many decision makers without touching the data. Nobody did a bad job for it: no ad platform enriches a list, and no connector is allowed to buy data.
Your list clears the filter. The scoping call checks the other three in a few minutes: live ads, a CRM, and somebody who owns the paid budget.
The honest part
This calculates coverage of your current list. Never sales, and never the non-CRM accounts, which come on top and can only be sized once your market has been surveyed. Match rate depends on enrichment, so it is in my hands and I guarantee it. Your cost per lead and your return on ad spend depend on your offer, your creative and your market. I do not touch those, and nobody can promise them to you without touching them.
The arithmetic, in full
- list × current rate = decision makers reached today
- list × 60 to 85% = decision makers reached after the build
- (after − today) = decision makers gained at constant spend
- spend ÷ decision makers = cost per reachable decision maker
- spend × (new rate ÷ current rate − 1) = same coverage bought in media
This is an estimate built from your own sliders. The real figure reads out of your account in thirty seconds, and I do it with you.
Book the call05 / The mechanism
The mechanism, published in full.
Most vendors show you logos and keep the method. I do the opposite: seven steps, the exact settings, and the two places where most chains break. If you have ever handled an uploaded audience, thirty seconds will settle it.
Extraction and normalisation
CRM export, domain level dedupe
The export comes out of your CRM, not out of a bought database. Dedupe on domain then on person, company name normalisation, generic addresses and rows with no company dropped. Everything downstream rests on this step, and nobody bills for it because nobody can see it.
- source
- your CRM, flat export
- dedupe
- domain then person
- dropped
- info@, contact@, rows with no company
- output
- one row per decision maker
The enrichment waterfall
Multi-vendor waterfall
Every contact runs through a cascade of providers until a personal email and a mobile come back. Taken alone, any provider tops out around 40 to 50 percent coverage. Stacking them makes the difference, and the order is tuned per country.
- targets
- personal email, mobile
- order
- tuned per country and vertical
- stop
- on first verified hit
- cost
- per enriched row, not per seat
Verification
Deliverability and format checks
A badly formatted mobile and an invalid email are not rejected by the ad platform. They are counted as unmatched. The loss is invisible, and it is the first thing I look at when an audience plateaus for no reason.
- verified, catch-alls resolved
- mobile
- E.164, country prefix
- target
- 97% clean rows
Hashing and legal basis
SHA-256 before transmission
Identifiers are normalised then hashed to SHA-256 before they leave your environment. The ad platform never receives an address in the clear. In the European Union the LinkedIn audience is built on work emails, on a documented legitimate interest basis held on your side, with a five line clause saying who processes what.
- hashing
- SHA-256, lowercased, trimmed
- EU
- work emails
- legal basis
- documented legitimate interest
- enriched lookalike
- outside the EU only
The non-CRM audiences
Public signals and ad libraries
Companies hiring for the role your product removes. Companies that just changed tooling. Followers of your competitors' accounts, attendees of their webinars. No sync will produce them, they are not in your system.
- signals
- hiring, stack, funding
- competitive
- followers, live ads
- freshness
- at build, then monthly on retainer
Exclusions
Suppression lists pushed to the platform
Active customers, open opportunities, partners, inbound from the last thirty days. They come out of the acquisition audiences. On HubSpot Marketing Hub Pro and above the step already exists in your stack and I skip it.
- excluded
- customers, opportunities, partners
- inbound
- last 30 days
- HubSpot Pro+
- already native, step skipped
Publication and handover
Your ad accounts, your name
Audiences go into your Campaign Manager and your Meta Ads Manager, under your account, with the match rate visible on screen. A dashboard gives the size, the rate and the freshness of each. Ten minutes of recording walk through all of it. The day we stop, everything stays with you and keeps running.
- shipped to
- your accounts, your name
- measurement
- match rate on screen
- handover
- dashboard and 10 min recording
- access
- partner level, revocable by you
06 / The run
Fourteen days, day by day.
- D1
Scoping and access
Forty-five minutes. Your spend, your target accounts, where your audiences come from today, and who did the last upload. I ask for partner access to Campaign Manager that day, read only if you would rather start there.
- D2 to D3
Extraction
Export, dedupe, normalisation. You get the count of usable rows before a single enrichment credit is spent.
- D4 to D8
The waterfall
Personal email and mobile enrichment, then verification. This is the long step, and it is the one carrying the result.
- D9 to D11
Non-CRM audiences and exclusions
Signals, competitors, suppression lists. The part your CRM will never produce.
- D12 to D13
Publication
Hashing, push to the platform, match rate read on screen inside your account. This is where the guarantee number lands, and it lands in your own interface.
- D14
Handover
Dashboard, recording, and the retainer question asked once. Say no and the engagement is finished with everything in your hands.
07 / The price
The same price for everybody.
Paid up front, once, with no retainer attached. No menu, no custom scope, no negotiation. The work is the same for everybody, so the price is too.
Audience Core, 14 days.
- Shape
- Paid up front, once. No subscription, no lock in
- Duration
- 14 days. That is the promise, not an estimate
- Scope
- Data and audiences. Never campaign management
- Negotiation
- None. The figure is the same for the first client and the tenth
- The filter
- You need roughly 5,000 contacts for LinkedIn to deliver. First thing we check on the call
The figure is not on this page. Audience Core does not sell at the same price in Europe and in the United States, because those are neither the same media spend levels nor the same economies. Showing both side by side would read as pricing by the customer's postcode, and showing one would lie for the other half. You get it in the first five minutes of the first call, with nothing to prepare. The part that matters is published: it does not move.
The reference point is in the calculator, not in an argument. The build compares to the ad budget you no longer have to add to reach the same number of decision makers. On most spend levels I see, that monthly gap is bigger than the build.
The retainer, offered afterwards
A CRM list decays at roughly 40 percent a year. People change roles, companies, numbers. The retainer keeps the audiences current across your target accounts, and that is its only reason to exist. It is presented on day 14, never before, and turning it down changes nothing about what you already received.
What I guarantee, and what I do not
If the match rate on your primary audience stays under 60 percent on day 14, I refund the build in full and you keep the files. The number reads on screen inside your own ad account, in an interface I do not control, so there is nothing to argue about on the day.
Not your cost per lead, not your return on ad spend, not a number of meetings. Those depend on your offer and your creative, which I do not touch. A vendor guaranteeing return on ad spend without touching your product is lying to you, and you have met one already.
The compliance frame
- +The LinkedIn audience is built on hashed work emails, on a documented legitimate interest basis held on your side.
- +A five line clause says who is controller and who is processor. It is supplied, and anyone you like can review it.
- +A lookalike built on enriched data stays out of scope inside the European Union. It only switches on for accounts outside it.
- +Your list never leaves your environment in the clear. Identifiers go out hashed, and nothing is retained after handover.
08 / The operator
Nicolas Olivar, between Paris and Sydney.
I have spent the last few years building outbound acquisition infrastructure. Domains, authentication, deliverability, enrichment, sequencing. Mostly for my own businesses.
A match rate and a deliverability rate pose the same problem: getting a real person to line up with an identifier a machine will accept. That is what I know how to do, and it is all I sell.
I have never bought media for a client. I will not pretend to allocate your budget better than your agency does. I work on the layer underneath, and all of it is published on this page.
French, based in Sydney. I work your mornings, which are my end of day.
09 / The readings
Three readings on the data itself.
Measurements taken while building the engine behind this offer. They cover exactly what you are buying: whether a piece of data is any good, and whether it matches.
29 out of 44,493
What a bought list is worth
I bought a 44,493 row list to test it against my filter. Twenty-nine rows made it through, which is 0.065 percent. No usable email, nothing in the target country. That is why the build starts from your CRM and never from a list sold by the kilo: that data does not match.
75%
Matching against a public reference
Match rate of my test companies against the French national business register. Doctolib, Payfit and Spendesk all come back at confidence 1.0, with the right registration number, the right industry code and the right headcount band. A company I invented for the test was rejected. It is the same move as audience matching, run against a reference you can query yourself.
The silent bug
How a chain breaks without saying so
On a test environment, certificate validation was switched off. The module that detects a company's CRM was therefore concluding 'no CRM' across the entire market, with perfectly clean logs and not one error raised. Caught in review, before any use. A match rate breaks exactly like that, quietly, and that is what step 03 exists for.
These are readings on method, and they are presented as such. The result that concerns you reads inside your own ad account on day 14.
10 / What comes up
What I get asked before signing.
+How is this different from buying a list?
A bought list is a list of contacts. What I build is a list of behaviours: companies identified because they are hiring for a specific role, because they just changed tooling, or because they follow your competitors. The signal comes from public sources, it is sold nowhere by the kilo, and it is where the value sits. I tested a bought list of 44,493 rows against my filter: twenty-nine made it through. Contacts are bought and decay. Signal is read.
+We already have HubSpot, it syncs our audiences automatically.
It does, and it does it well. It sends your list as it stands, with the work emails you collected, so it faithfully reproduces your current match rate. A sync cannot enrich: enriching means buying data you do not have. That is the only thing the build does, and it is why it does not replace HubSpot. On exclusions, HubSpot Pro already does the job and I skip the step.
+Do you guarantee return on ad spend?
No, and I never will. I guarantee the match rate, 60 percent as a floor on day 14, refunded if it is not there. It depends on enrichment, so it is in my hands, and it shows up in an interface I do not control: you do not have to believe me, you have to look at your screen. Your return on ad spend depends on your offer, your creative and your market, none of which I touch. Guaranteeing it would be the first false line on this page.
+Why is the price not shown?
Because Audience Core is not worth the same in Europe and in the United States. Two media spend levels, two economies, two prices. Putting them side by side on a site that switches language in one click would read as pricing by the customer's postcode, and showing only one would lie for the other half. You get the figure in the first five minutes of the first call, with nothing to prepare. The part that matters is published: it does not get negotiated, and it is identical from the first client to the tenth.
+Why pay up front for fourteen days of work?
Because the price is on what it unlocks, not on hours. Look at the calculator. On normal spend, the extra ad budget you would need every month to reach as many decision makers without fixing the match rate is bigger than the build. And a one-time with no lock in beats a subscription, including for you: you are buying a problem solved, not signing up to anything.
+Do you touch our campaigns?
Never. Not bids, not budgets, not creative. I ship audiences into your accounts and I stop there. Your agency keeps its job, and does it better the day its audiences hold twice as many people. Most agencies I meet find the split comfortable, and some resell the build white label.
+What about privacy law?
It is an argument, not an obstacle. Work emails hashed to SHA-256 before transmission, a documented legitimate interest basis on your side, a controller and processor clause supplied, and lookalikes on enriched data kept out of the European scope. You are controller on your list, I am processor on the enrichment. That is written down before anything starts.
+What do I have to give you?
A CRM export, partner access to your Campaign Manager and your Meta Ads Manager, and forty-five minutes of scoping. Access can start read only if you would rather watch how I work before letting me publish anything. It fits in one morning on your side.
+My match rate is already 70 percent. What do you do?
Not much on the main part, and I will tell you on the call rather than after invoicing. Above the guaranteed floor, enrichment no longer returns enough to justify the price on its own. What remains is the non-CRM audiences and the exclusions, which are missing in almost every team that has reached that match rate. Ten minutes settles it, and if the answer is no I say so during the call.
11 / Start here
The number first.
The meeting after.
The Coverage Scorecard
A written coverage reading on your sector, done by hand, sent within 48 hours. What a native CRM upload returns across one hundred accounts comparable to yours, what the same list returns enriched, and the impression cost gap between LinkedIn and Meta on that audience. I say nothing about your account, I have not seen it. I show the mechanism on your market.
What you get
- The match rate gap measured on a sample from your sector
- The cost per thousand impressions gap between the two platforms
- The full arithmetic, so you can redo it yourself
- A reply written by me, not an automated document
What will not happen
- No unrequested call
- No follow up if you do not reply
- No signing up to anything
- Your address goes nowhere else
Two questions, one minute. No follow up if you do not reply.
The scoping call
45 minutesForty-five minutes. If your list does not clear the filter we know inside the first ten and I give you your time back. Otherwise you leave with a delivery date and the price. Nothing to prepare.
- 01How much are you spending a month on LinkedIn and Meta?
- 02Where do your audiences come from, and how do they refresh?
- 03Who did the last upload, and when was it?
- 04If your match rate went from 35 to 80 percent, what changes this quarter?
Online booking is on its way. Until then a WhatsApp message does the job: I answer with two slots, usually within the hour.
Message on WhatsApp+61 491 753 951 · or by email