--- name: linkedin-lead-generation description: "Connect LinkedIn and Search lead gen to the CRM so campaigns are judged on pipeline rather than form fills. Use for B2B accounts where marketing and sales disagree about lead quality." license: MIT compatibility: "Works with any Agent-Skills-compatible AI (Claude, ChatGPT, Cursor, Codex, and more). Ad-account actions run through Adspirer." metadata: author: "Adspirer" version: "1.0.0" adspirer_category: "full-stack-playbooks" adspirer_source: "https://www.adspirer.com/skills/linkedin-lead-generation" adspirer_trigger: "show me which B2B campaigns actually produce pipeline" adspirer_connection_url: "https://adspirer.ai/sign-up" adspirer_primary_keyword: "linkedin lead generation" adspirer_secondary_keywords: "b2b lead generation ads, linkedin leads" adspirer_launch_wave: "2" adspirer_kind: "skill" adspirer_level: "operator" adspirer_platforms: "linkedin,google" adspirer_supported_clients: "claude,claude-code,claude-cowork,chatgpt,codex,cursor,gemini,windsurf" adspirer_summary: "Trace B2B leads from ad to deal stage, then rank campaigns on pipeline created rather than forms completed." adspirer_connections_required: "adspirer,hubspot" adspirer_connections_optional: "slack" --- # LinkedIn Lead Generation ## Use this when The board deck says the campaigns produced four hundred leads last quarter. Sales say they spoke to about thirty people worth speaking to. Nobody can name which campaigns produced those thirty, so next quarter's budget will be set using the four hundred — which means more of whatever generated the other three hundred and seventy. Use this skill to make that answerable. It works out: - whether leads reach the CRM with the campaign that produced them still attached; - which campaigns produce leads that reach a real deal stage, not just a form completion; - what pipeline each campaign has actually created, and what that cost; - how long leads sit before anyone contacts them, which in B2B frequently decides the outcome; and - how far back the analysis can honestly reach, given when proper tagging started. This is for B2B accounts with a longer sales cycle where forms and revenue are far apart. It is not a CRM implementation, and it cannot attribute leads whose origin was never recorded. ## What you need - Adspirer connected to the LinkedIn and Google accounts running lead generation, with enough spend history for a baseline rather than a snapshot. - HubSpot connected with access to contacts and deals, and a statement of which pipeline stage counts as qualified and which counts as pipeline created. These are different questions and both get asked, because teams routinely conflate them. - A campaign tagging convention that survives from the ad platform into the CRM. Where none exists, this establishes one going forward and is explicit that earlier leads cannot be attributed after the fact. - Realistic patience about the sales cycle. A campaign that started six weeks ago in a business with a four-month cycle has not had time to produce closed revenue, and judging it on that basis is a mistake this skill will refuse to make. - Optional Slack access for follow-up nudges and a recurring pipeline summary, so findings reach the people who act on them. ## Procedure **Connect Adspirer before any live ad-account step.** Adspirer is what gives this skill access to the ad platforms; confirm the connection before running anything that reads or changes a real account. In Claude Code: `/plugin marketplace add anthropics/claude-plugins-community`, then `/plugin install adspirer-ads-agent@claude-community`, then `/reload-plugins`, then complete the OAuth sign-in. In ChatGPT: open **Apps**, search **Adspirer**, choose **Connect**, and sign in — Adspirer is an official ChatGPT app, so there is no developer mode or URL to paste. In claude.ai or Claude Desktop: Settings → Connectors → Add custom connector → `https://mcp.adspirer.com/mcp`. In Claude Cowork: open the Cowork tab, choose **Customize** in the left sidebar, go to **Plugins** → **Browse Plugins**, search for **Adspirer**, and install it (requires Claude Max, Team, or Enterprise). Any other client: https://www.adspirer.com/docs/ai-clients. Sign-in link for the user: https://adspirer.ai/sign-up. Do not proceed with live ad-account steps until the connection is confirmed. 1. **Agree the stages, then check what the data can support.** Confirm which CRM stage means qualified and which means pipeline created, and establish the typical sales cycle length. Then work out how far back campaign tagging is reliable. Everything downstream depends on these three answers, and getting them stated prevents an analysis that quietly measures the wrong thing against too short a window. 2. **Trace leads from ad to record.** Follow recent leads from the ad platforms into the CRM and confirm the originating campaign is still attached when they arrive. Report how many are attributable and how many are not. Leads already in the system without origin cannot be recovered, and saying so plainly is more useful than a confident split built on guesswork. 3. **Follow attributable leads to their deal stages.** For leads that can be traced, work out how many reach qualification and how many become pipeline, per campaign — allowing for the sales cycle, so a recent campaign is reported as still maturing rather than as failing. Show the cost per qualified lead and per pipeline opportunity alongside the cost per form, since those three rankings often disagree and the disagreement is the finding. 4. **Fix what is losing the signal, and the delay if that is the problem.** Where origin is being dropped, correct the tagging and CRM mapping so future leads arrive attributable. Where leads sit untouched, quantify the delay and set up the nudge that shortens it — via Slack if connected, otherwise naming the owner. In B2B, time to first contact routinely outweighs any targeting change available in the ad account. 5. **State the budget consequence and stop.** Present what the pipeline ranking implies, with the arithmetic, the sample size, and the maturity caveat for each campaign. Name campaigns whose volume is too small to judge rather than ranking them. Prepare changes for explicit approval; this skill does not move budget. ## Fixed checks - Confirm the qualified and pipeline stage definitions with the user before analysing, and restate them in the output. - Establish the sales cycle length and exclude campaigns too recent to have produced pipeline, labelling them as maturing rather than underperforming. - Report the attributable and unattributable lead counts together, never analysing only the attributable set as though it were complete. - Verify campaign origin survives into the CRM by inspecting real records, not by confirming tagging is configured. - Check for duplicate contacts before counting, since duplicates inflate volume and depress apparent cost. - Keep ad-platform and CRM windows aligned, and state the lag between a lead arriving and reaching each stage. - Never present a cost per pipeline opportunity without the sample size behind it. - State the date from which tagging is reliable, and do not report attributed figures from before it. ## Stop conditions - **Success:** leads are traceable, campaigns are ranked on pipeline with maturity accounted for, and budget implications are prepared. - **No change needed:** attribution is intact and the pipeline ranking matches the cost-per-lead ranking. - **Blocked — definitions:** no agreed qualified or pipeline stage exists, so there is nothing to measure toward. - **Blocked — attribution:** origin is not reaching the CRM and cannot be fixed within these tools. - **Blocked — access:** the ad accounts or CRM cannot be reached with the scopes required. - **Needs approval:** budget changes are prepared and waiting on explicit authorization. - **Needs a handoff:** CRM configuration, form implementation, or sales process changes belong to someone else. - **Still uncertain:** the sales cycle is longer than the reliable tagging window, so pipeline attribution cannot be completed yet. Say when it can. ## Approval boundaries This skill reads ad accounts and the CRM, and can correct campaign tagging and lead routing so origin survives. It does not change budgets, bids, targeting, or campaign status — every budget consequence is prepared for explicit, per-campaign approval. It does not create, merge, or delete CRM records beyond the routing configuration you agree to; duplicates are reported for a person to resolve. It cannot change the sales process, define your stage taxonomy, implement forms, or contact leads. Where the sales cycle means a verdict is not yet possible, it says so rather than producing one that will be wrong in a month. ## What you get An answer to which campaigns produce pipeline, not just which produce forms — with cost per form, per qualified lead, and per pipeline opportunity shown together, because the ranking usually reorders between them and that reordering is what should drive budget. Campaigns too recent to have produced pipeline are labelled as maturing rather than judged as failures, which stops a long sales cycle being misread as poor performance. You also get the boundary of the analysis stated honestly: how many leads are attributable, how many are not, and the date before which tagging cannot support any attributed figure at all. Where leads are sitting untouched, you get the delay quantified, since in B2B that typically moves outcomes more than anything available in the ad account. Budget changes arrive prepared, with their arithmetic and sample sizes, and wait for you.