Scale B2B Qualified Pipeline on Meta

Use this skill when running Meta Ads for B2B qualified pipeline — enriched custom audiences from a tiered TAM, Conversion Leads feedback via CAPI, segment personalization, and SQL-level reporting.

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/abm-on-meta.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit swan-gtm/gtm-skills/skills/ivan-falco/abm-on-meta#main ~/.claude/skills/abm-on-meta

For one project only, change the path to .claude/skills/abm-on-meta.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Scale B2B Qualified Pipeline on Meta

Show the full text132 lines
nametitledescriptioncategory
abm-on-metaABM on MetaUse this skill when running Meta Ads for B2B qualified pipeline — enriched custom audiences from a tiered TAM, Conversion Leads feedback via CAPI, segment personalization, and SQL-level reporting.ABM

Scale B2B Qualified Pipeline on Meta

A step-by-step playbook for turning Meta Ads spend into qualified pipeline (SQLs) for B2B, not cheap lead volume. This is the end-to-end system written at full depth.


The core idea (read first)

Most B2B teams run a Meta campaign, get a pile of low-quality leads, decide "Meta doesn't work for B2B," and move their budget somewhere else. In almost every case the setup was the problem, not the campaign.

Meta is extremely good at finding exactly what you ask it to find. If you optimise for "Lead" and give it nothing else to go on, it does its job perfectly and brings you the cheapest form-fills it can. They are real leads, they just never turn into pipeline.

The whole game is to change what you are asking for. When you (1) give Meta the right data so it understands your actual ICP, and (2) feed back which leads become qualified pipeline, Meta learns to go and find more of those. It is the same optimisation engine, now working toward qualified pipeline instead of cheap volume.

Everything below is how you do that.


Step 1 - Map the market & build the audience targeting

Goal: give Meta a high-quality, matchable audience built from your real target market.

  • Map your TAM. Tier every company Tier 1 -> Tier 4 by fit. Decide where you want to go.
  • Pull the contacts at those companies. That is your Tier 1-4 contact list - this list is the audience targeting.
  • Enrich the list. Raw B2B / work-email lists match badly on Meta. Enrich for personal email + mobile numbers to lift the match rate, or the custom audience lands too small to run. (Mobile advertiser IDs / MAIDs are a minor assist only - iOS App Tracking Transparency degraded them; personal email + mobile number do the heavy lifting.)
    • Enrichment data: Contact Level.
    • Enrich + auto-sync audiences into Meta: Clay / Freckle.
  • Push the enriched list to Meta as a custom audience.

Why: Meta builds audiences from people (not company names), so you need the real contacts. Tiering tells you where budget goes first. Match rate decides how big and usable the audience is - work emails barely match, personal email + mobile number are what Meta actually matches on.


Step 2 - Structure the audiences (one campaign per audience)

Goal: give Meta room to scale off your data, cleanly, without losing control of who it targets.

Push three audiences to Meta:

  1. Your full Tier 1-4 contact list (all your TAM).
  2. A lookalike of that list.
  3. A lookalike of your closed-won contacts (the decision-makers who actually signed).

Structure:

  • One campaign per audience (or per segment - see Step 5).
  • Inside each campaign, run multiple ad sets - one per creative angle / approach / personalisation.
  • Run CBO and set a 30% minimum spend per ad set while validating new angles, so CBO does not dump everything into one angle and starve the others before they are tested. (Use this sparingly and only during validation. A two-campaign testing/scaling split is an alternative to permanent per-ad-set floors; both are valid, pick one deliberately per account.)

Tight targeting, controlled expansion. Keep the targeting tight and do not turn on Meta's audience expansion. The lookalike is the controlled way you open the audience - it gives Meta room to find more people like your market without letting it wander off your ICP. That balance (tight seed + lookalike) is the sweet spot.

Exclusions (hygiene):

  • Exclude existing customers and open pipeline from cold prospecting audiences.
  • Exclude Audience Network placements - they are low quality for B2B.

Why: the contact list reaches your exact market; the two lookalikes let Meta find more people like your TAM and like your best buyers, with room to scale. One campaign keeps that audience's budget and learning together.


Step 3 - Optimise by funnel event (feed the Lead signal)

Goal: teach Meta what a QUALIFIED lead looks like, so it optimises for pipeline, not form-fills.

This uses Meta's Conversion Leads feature (Conversions API CRM integration), not just sending arbitrary events to a plain Leads objective.

  • Set your funnel up as conversion events / funnel stages in Meta: Lead, MQL, SQL. Mark the qualified stages (MQL, SQL) as positive.
  • Send the qualified stages back from your CRM (HubSpot) to Meta via CAPI, on a daily upload cadence.
  • A funnel event tells Meta how your funnel works. Feeding MQL/SQL back tells Meta which form-fills became real pipeline, so it optimises toward buyers, not cheap leads.
  • Optimise for the highest-quality event you get ~10+/wk on (per ad set). As volume grows, move up the funnel (Lead -> MQL -> SQL) to a higher-quality conversion.
    • ~10/wk per ad set = the practical floor to start optimising on an event reliably (rule of thumb from experience).
    • ~50/wk per ad set = Meta's documented threshold to fully exit the learning phase. Only the optimised event counts toward it.
  • Even while you optimise on Lead (because SQL volume is still low), because MQL + SQL are configured as funnel stages, Meta favours the leads that progress down-funnel. (Meta may also silently shift which stage it optimises toward if it finds better performance.)

Non-negotiable setup requirements for this to actually work:

  • Capture and store the Meta click ID (fbclid) / Lead ID at lead creation, and pass it through every CRM stage change. Meta's click attribution window is ~7 days, but MQLs/SQLs land weeks later. Without the stored click/Lead ID, Meta cannot attribute the downstream event back to the ad and the entire "feed the funnel back" premise silently breaks.
  • Keep Event Match Quality (EMQ) high (target 6+/10) on the CAPI events - send hashed email, phone, and external_id. Low EMQ silently degrades Meta's ability to use the MQL/SQL signal.
  • Conversion Leads gates: roughly 200 leads/month minimum, and the optimised stage must convert at 1%-40% (if your SQL rate is below 1%, it is out of range for direct optimisation - which is exactly why you optimise on Lead and feed SQL back).

Why: Meta optimises for exactly what you ask it for. Give it the right data and a clear definition of a qualified lead / qualified pipeline, and it will go and find that.


Step 4 - Creative process (one process feeds video AND static)

Goal: creative that speaks the buyer's language, produced fast enough to keep testing.

  • Research where buyers talk: sales calls, Reddit, forums (research sources/tools include X, Reddit, HubSpot, Medium). Pull their real pains, jargon, and vocabulary.
  • Map angles + hooks. The same research feeds both video and static - it is one creative process, not two.
    • Video: testimonials, quick product demos, founder videos, real UGC.
    • Static: angle/hook creatives, product UI, data/proof, personalised.
  • Cadence is budget-dependent. At a ~$30k/month budget, ~10 new creatives every 2 weeks is the optimal baseline. Scale the volume up or down with the budget. Use AI creative workflows to sustain that output.
  • Split the account into a testing campaign (always fed the new creatives) and a scaling campaign (proven winners only).

Why: buyers act on their own pains and words, not your feature list. Creative fatigues, so a constant test feed keeps surfacing winners, and keeping test spend separate from scale protects proven spend.


Step 5 - Test & personalise by segment

Goal: find segments where personalised messaging beats broad all-TAM messaging.

  • From your all-TAM contact list, filter down to a specific segment (per strategy) and export those contacts.
  • Upload each segment as its own audience (list + lookalike, same structure as Step 2).
  • Build ads + a landing page personalised to that segment - written in its own reality and jargon.
  • Do not only run all-TAM. Test specific segments to see if they beat the broad audience.
  • A/B test the landing pages: split the ad set's traffic 50/50 between two pages and keep the winner. Run this across all your TAM.

Why (segment example): the CFO of a private-equity-owned company has different jargon and a different reality than one at a non-PE company. Speak their language and show you understand it, and the campaign will often perform far better than a non-personalised one. Testing tells you which segments to scale, and A/B testing shows what resonates at the ad level AND the landing-page level.


Step 6 - Report on real SQLs (always up to date)

Goal: see what is actually driving qualified pipeline, so you can steer Meta manually.

  • Connect Meta and your CRM (HubSpot, Attio, etc.) into a live report that tracks MQL + SQL trends against spend and shows which ads drive SQLs.

Why: while Meta is still optimising per Lead, it pushes budget toward whatever gets the most leads, not the most SQLs. This report shows which ads actually drive SQLs, so you can manually shift Meta's budget toward real pipeline. Read the trend over time, not a single week.


The payoff

Set up this way, Meta produces qualified pipeline and efficient cost per qualified deal, not a pile of cheap form-fills that never convert. The optimisation engine is now pointed at the outcome that matters: revenue, not lead count.


1---
2name: "abm-on-meta"
3title: ABM on Meta
4description: "Use this skill when running Meta Ads for B2B qualified pipeline — enriched custom audiences from a tiered TAM, Conversion Leads feedback via CAPI, segment personalization, and SQL-level reporting."
5category: ABM
6---
7 
8# Scale B2B Qualified Pipeline on Meta
9 
10A step-by-step playbook for turning Meta Ads spend into **qualified pipeline (SQLs)** for B2B, not cheap lead volume. This is the end-to-end system written at full depth.
11 
12---
13 
14## The core idea (read first)
15 
16Most B2B teams run a Meta campaign, get a pile of low-quality leads, decide "Meta doesn't work for B2B," and move their budget somewhere else. In almost every case the setup was the problem, not the campaign.
17 
18**Meta is extremely good at finding exactly what you ask it to find.** If you optimise for "Lead" and give it nothing else to go on, it does its job perfectly and brings you the cheapest form-fills it can. They are real leads, they just never turn into pipeline.
19 
20The whole game is to change what you are asking for. When you (1) give Meta the right data so it understands your actual ICP, and (2) feed back which leads become qualified pipeline, Meta learns to go and find more of those. It is the same optimisation engine, now working toward qualified pipeline instead of cheap volume.
21 
22Everything below is how you do that.
23 
24---
25 
26## Step 1 - Map the market & build the audience targeting
27 
28**Goal: give Meta a high-quality, matchable audience built from your real target market.**
29 
30- Map your **TAM**. Tier every company **Tier 1 -> Tier 4** by fit. Decide where you want to go.
31- Pull the **contacts** at those companies. That is your **Tier 1-4 contact list** - this list is the audience targeting.
32- Enrich the list. Raw B2B / work-email lists match badly on Meta. Enrich for **personal email + mobile numbers** to lift the match rate, or the custom audience lands too small to run. (Mobile advertiser IDs / MAIDs are a minor assist only - iOS App Tracking Transparency degraded them; personal email + mobile number do the heavy lifting.)
33 - Enrichment data: **Contact Level**.
34 - Enrich + auto-sync audiences into Meta: **Clay / Freckle**.
35- Push the enriched list to Meta as a **custom audience**.
36 
37**Why:** Meta builds audiences from people (not company names), so you need the real contacts. Tiering tells you where budget goes first. Match rate decides how big and usable the audience is - work emails barely match, personal email + mobile number are what Meta actually matches on.
38 
39---
40 
41## Step 2 - Structure the audiences (one campaign per audience)
42 
43**Goal: give Meta room to scale off your data, cleanly, without losing control of who it targets.**
44 
45Push three audiences to Meta:
461. Your full **Tier 1-4 contact list** (all your TAM).
472. A **lookalike** of that list.
483. A **lookalike of your closed-won contacts** (the decision-makers who actually signed).
49 
50Structure:
51- **One campaign per audience** (or per segment - see Step 5).
52- Inside each campaign, run **multiple ad sets - one per creative angle / approach / personalisation**.
53- Run **CBO** and set a **30% minimum spend per ad set while validating new angles**, so CBO does not dump everything into one angle and starve the others before they are tested. (Use this sparingly and only during validation. A two-campaign testing/scaling split is an alternative to permanent per-ad-set floors; both are valid, pick one deliberately per account.)
54 
55**Tight targeting, controlled expansion.** Keep the targeting tight and do not turn on Meta's audience expansion. The **lookalike is the controlled way you open the audience** - it gives Meta room to find more people like your market without letting it wander off your ICP. That balance (tight seed + lookalike) is the sweet spot.
56 
57**Exclusions (hygiene):**
58- Exclude existing customers and open pipeline from cold prospecting audiences.
59- Exclude Audience Network placements - they are low quality for B2B.
60 
61**Why:** the contact list reaches your exact market; the two lookalikes let Meta find more people like your TAM and like your best buyers, with room to scale. One campaign keeps that audience's budget and learning together.
62 
63---
64 
65## Step 3 - Optimise by funnel event (feed the Lead signal)
66 
67**Goal: teach Meta what a QUALIFIED lead looks like, so it optimises for pipeline, not form-fills.**
68 
69This uses Meta's **Conversion Leads** feature (Conversions API CRM integration), not just sending arbitrary events to a plain Leads objective.
70 
71- Set your funnel up as **conversion events / funnel stages in Meta**: Lead, MQL, SQL. Mark the qualified stages (MQL, SQL) as positive.
72- Send the qualified stages back from your CRM (HubSpot) to Meta **via CAPI**, on a **daily upload cadence**.
73- A **funnel event** tells Meta how your funnel works. Feeding MQL/SQL back tells Meta which form-fills became real pipeline, so it optimises toward buyers, not cheap leads.
74- **Optimise for the highest-quality event you get ~10+/wk on (per ad set).** As volume grows, **move up the funnel** (Lead -> MQL -> SQL) to a higher-quality conversion.
75 - **~10/wk per ad set** = the practical floor to start optimising on an event reliably (rule of thumb from experience).
76 - **~50/wk per ad set** = Meta's documented threshold to fully exit the learning phase. Only the optimised event counts toward it.
77- Even while you optimise on **Lead** (because SQL volume is still low), because MQL + SQL are configured as funnel stages, Meta favours the leads that progress down-funnel. (Meta may also silently shift which stage it optimises toward if it finds better performance.)
78 
79**Non-negotiable setup requirements for this to actually work:**
80- **Capture and store the Meta click ID (fbclid) / Lead ID at lead creation, and pass it through every CRM stage change.** Meta's click attribution window is ~7 days, but MQLs/SQLs land weeks later. Without the stored click/Lead ID, Meta cannot attribute the downstream event back to the ad and the entire "feed the funnel back" premise silently breaks.
81- **Keep Event Match Quality (EMQ) high (target 6+/10)** on the CAPI events - send hashed email, phone, and external_id. Low EMQ silently degrades Meta's ability to use the MQL/SQL signal.
82- **Conversion Leads gates:** roughly **200 leads/month minimum**, and the optimised stage must convert at **1%-40%** (if your SQL rate is below 1%, it is out of range for direct optimisation - which is exactly why you optimise on Lead and feed SQL back).
83 
84**Why:** Meta optimises for exactly what you ask it for. Give it the right data and a clear definition of a qualified lead / qualified pipeline, and it will go and find that.
85 
86---
87 
88## Step 4 - Creative process (one process feeds video AND static)
89 
90**Goal: creative that speaks the buyer's language, produced fast enough to keep testing.**
91 
92- **Research** where buyers talk: sales calls, Reddit, forums (research sources/tools include X, Reddit, HubSpot, Medium). Pull their real **pains, jargon, and vocabulary**.
93- Map **angles + hooks**. The same research feeds **both video and static** - it is one creative process, not two.
94 - Video: testimonials, quick product demos, founder videos, real UGC.
95 - Static: angle/hook creatives, product UI, data/proof, personalised.
96- **Cadence is budget-dependent.** At a **~$30k/month budget, ~10 new creatives every 2 weeks** is the optimal baseline. Scale the volume up or down with the budget. Use **AI creative workflows** to sustain that output.
97- Split the account into a **testing campaign** (always fed the new creatives) and a **scaling campaign** (proven winners only).
98 
99**Why:** buyers act on their own pains and words, not your feature list. Creative fatigues, so a constant test feed keeps surfacing winners, and keeping test spend separate from scale protects proven spend.
100 
101---
102 
103## Step 5 - Test & personalise by segment
104 
105**Goal: find segments where personalised messaging beats broad all-TAM messaging.**
106 
107- From your all-TAM contact list, **filter down to a specific segment** (per strategy) and export those contacts.
108- Upload each segment as its **own audience (list + lookalike, same structure as Step 2)**.
109- Build **ads + a landing page personalised to that segment** - written in its own reality and jargon.
110- Do not only run all-TAM. **Test specific segments** to see if they beat the broad audience.
111- A/B test the landing pages: split the ad set's traffic **50/50** between two pages and keep the winner. Run this across all your TAM.
112 
113**Why (segment example):** the CFO of a private-equity-owned company has different jargon and a different reality than one at a non-PE company. Speak their language and show you understand it, and the campaign will often perform far better than a non-personalised one. Testing tells you which segments to scale, and A/B testing shows what resonates at the ad level AND the landing-page level.
114 
115---
116 
117## Step 6 - Report on real SQLs (always up to date)
118 
119**Goal: see what is actually driving qualified pipeline, so you can steer Meta manually.**
120 
121- Connect **Meta and your CRM (HubSpot, Attio, etc.)** into a **live report** that tracks **MQL + SQL trends against spend** and shows **which ads drive SQLs**.
122 
123**Why:** while Meta is still optimising per Lead, it pushes budget toward whatever gets the most leads, not the most SQLs. This report shows which ads actually drive SQLs, so you can manually shift Meta's budget toward real pipeline. Read the trend over time, not a single week.
124 
125---
126 
127## The payoff
128 
129Set up this way, Meta produces **qualified pipeline and efficient cost per qualified deal**, not a pile of cheap form-fills that never convert. The optimisation engine is now pointed at the outcome that matters: revenue, not lead count.
130 
131---
132 

Discussion

Alternatives

Also in Pipeline & forecastSee all 138 in Sales →
ThoughtLeaders Data AnalystQuery and analyze YouTube sponsorship data using the `tl` CLI. Use this skill for finding channels, brands and sponsorships, and for data exploration, including counts, metrics, trends, time-series, distributions, single-record drill-downs, revenue / pipeline-weighting math, view-curve analysis, cross-source business questions. Examples: "How many deals did we close last quarter?", "What's the weighted pipeline by sales owner?", "Show me the view curve for video X", "Find mentions of Surfshark in transcripts", "Investigate this video", "Find channels...", "Find brands...".Creator · MITArbor — Autonomous Optimization via Hypothesis Tree RefinementAutonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g. "get my model's eval score up", "improve this agent/harness", "tune this pipeline", "beat the baseline on this benchmark", "run a search over approaches and keep the best", "do an MLE-bench / Kaggle-style optimization", or any long-horizon "make this artifact better and don't just memorize the dev set" task. Trigger it even when the user doesn't say "Arbor" or "hypothesis tree" but describes repeated experiment-and-evaluate loops, branching exploration of competing ideas, or worries about a dev/test gap. Runs Claude itself as the coordinator with subagent executors in isolated git worktrees; for the standalone `arbor` CLI tool see references/arbor-upstream.md.Science · MIT/cs:cro-review — CRO Forcing Questions/cs:cro-review <plan> — Pipeline-paranoid interrogation of revenue, win rate, NRR, and ramp time. Use when the forecast misses pipeline coverage, win rates drop, or before scaling the sales team.Sales & ecommerce · MITRevenue operationsAnalyzes sales pipeline health, revenue forecasting accuracy, and go-to-market efficiency metrics for SaaS revenue optimization. Use when analyzing sales pipeline coverage, forecasting revenue, evaluating go-to-market performance, reviewing sales metrics, assessing pipeline analysis, tracking forecast accuracy with MAPE, calculating GTM efficiency, or measuring sales efficiency and unit economics for SaaS teams.Sales & ecommerce · MIT