← ai builds
ABM Marketing + Outreach Private client project 2026

One platform for campaign signal
and sales outreach

LinkedIn thought leadership  ·  893 target companies  ·  Built end to end
Target companies
893
fixed account list
Engaged
355
60 clicked, 295 warm
Follow-ups
181
named contacts, ranked
Click rate
5.91%
vs sub-1% B2B benchmark
ABM tracker showing 355 of 893 target companies engaged, 60 clicked, a 5.91% click rate and the job titles clicking.
Real campaign numbers, with company names blurred
The Problem
Marketing could see the accounts warming up.
Outreach couldn't act on it.

Campaign reporting was a weekly export nobody could ask a follow-up question of. Sales outreach ran from a separate contact sheet. Nothing showed which target accounts had warmed up, who to contact there, or who had already been approached.

So the question wasn't "how is the campaign doing?" It was "which accounts should we talk to next, and through whom?"

The Build
Two teams' data.
One working view.

The platform combines LinkedIn engagement with the target account list, the contact database and the connection log. Marketing sees account movement. Outreach gets a ranked list of who to contact next.

How It Connects
From an ad click to a named follow-up.
marketing signalsales outreachLinkedIn Ads APIcompany + title dataTarget account list893 companies, SheetsTier accountsclicked / warm / lightDated snapshotswhat changedContact databaseperson level, SheetsConnection logalready approachedRank contactsclicks, impr, seniorityFollow-up listwho to contact nextOne dashboardmarketing + outreachclicked accounts
One shared account list

The target list lives in Google Sheets and is re-read on every refresh, so new accounts appear without a code change.

One definition of engaged

Both teams read the same tiers, and only on-list companies count, so off-target engagement can't inflate the result.

A real marketing to outreach handoff

Clicked accounts are matched to a person-level contact database, producing 181 named contacts ranked by account clicks, impressions and seniority.

No double outreach

Anyone in the connection request log is excluded by LinkedIn profile, and contacted accounts leave the "reach next" queue.

Change tracking

Dated snapshots show new companies and new clicks since the last run, so the team starts with what moved.

Clicked
Any click. The strongest signal, and the only tier that creates named follow-ups.
Warm
8+ impressions with no click. Counted as engaged and queued behind clicked accounts.
Light
3–7 impressions. Tracked but not counted as engaged.
Results
What the campaign showed.
Accounts engaged
355 / 893
60 clicked, 295 warm
Click rate
5.91%
against a sub-1% B2B benchmark
Follow-up contacts
181
at clicked accounts

CEO, Co-Founder and Founder were the top three titles clicking, so the targeting reached buyers.

What the data can't show. LinkedIn reports engagement by company and job title, not by individual. Follow-up contacts are decision-makers at engaged accounts, not the people who clicked.
Next
Where the sync goes from here.

These are planned, not live: Clay enrichment for accounts with no mapped contact, two-way CRM sync, scheduled refreshes and Slack alerts to account owners.

Engagement data only matters
when it changes who you contact next.

Built with Python, FastAPI, the LinkedIn Ads API and Google Sheets.

Connecting marketing
and sales?
Let's talk B2B demand gen, LinkedIn, or account-based programs.
Vinay Kumar · Demand Gen & Performance Marketing