Install
$ agentstack add skill-mardab96-linkedin-ads-claude-skills-audience-targeting-audit-linkedin-ads ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Audience Targeting Audit for LinkedIn Ads
Use this skill when
The user wants to know whether their LinkedIn targeting is built correctly, whether audiences are the right size, and whether campaigns are competing against each other or leaking spend to off-target members.
Common user requests:
- "Audit our LinkedIn targeting setup."
- "Are our audiences too small or too broad?"
- "Are our campaigns bidding against each other?"
- "Clean up the audience structure before we add budget."
Targeting is where LinkedIn campaigns are won or lost, but delivery to the wrong members is best confirmed in the Demographics report. When the question is "who actually received the budget," route to demographics-leak-finder-linkedin-ads. To find where budget leaks across the whole account before drilling into the audience build, start with wasted-spend-finder-linkedin-ads. This skill audits how the targeting is built and sized.
Do not use this skill when:
- The question is who actually received the delivery (seniority, industry, company size). Route to
demographics-leak-finder-linkedin-ads. - You want the account-wide where-is-the-leak sweep first. Route to
wasted-spend-finder-linkedin-ads. - The issue is bid strategy or budget level rather than the audience build. Route to
bid-budget-sanity-check-linkedin-ads.
Required input
Ask for what exists. If a required figure is missing, ask for it or mark a labelled assumption. Never fabricate audience sizes or match rates.
Minimum useful data:
- Stated ideal customer profile (ICP): target seniorities, functions, industries, company sizes, and named accounts if ABM is used.
- Per-campaign audience definitions: every targeting facet applied (company industry, size, name, growth; job title, function, seniority, years of experience, skills; member demographics; education; interests; matched audiences).
- The estimated audience size LinkedIn shows for each campaign.
- Whether the Audience Expansion checkbox is on, and whether the LinkedIn Audience Network (LAN) placement is enabled, per campaign.
- Matched-audience details: ABM or contact list upload sizes and their reported match rates; Insight Tag retargeting audiences; lookalikes.
Recommended Campaign Manager exports: campaign settings with full audience definitions, the audience size estimates, matched-audience match rates, and a campaign performance report so weak delivery can be tied to a targeting cause.
Analysis workflow
- Restate the ICP as testable criteria. Turn the stated ICP into explicit target facets (seniority set, function set, industry set, company-size band, named-account list). Every targeting decision is judged against this, so confirm it before reading a single setting.
- Size every audience. For each campaign record the LinkedIn estimated size. Flag any audience below the 300-member floor (it cannot deliver) and any far below the ~50k that LinkedIn recommends for most objectives (it will deliver thinly and expensively).
- Inspect facet stacking. Count how many restrictive facets are combined in each audience. Stacking seniority AND skills AND years-of-experience AND interests on top of industry and size commonly over-narrows, starves delivery, and inflates CPMs. Identify which facets are load-bearing for the ICP and which are redundant.
- Map cross-campaign overlap. Compare audience definitions across active campaigns. Where two or more campaigns target substantially the same members, they compete in the same auction, bidding up each other's cost. Note every overlapping pair and the combined spend at risk.
- Isolate the expansion leaks. Check Audience Expansion and LAN per campaign. Both push delivery beyond the defined audience to adjacent or off-network members. Flag every campaign where they are on, and mark that the true on-target reach differs from the built audience.
- Grade matched audiences. For ABM and contact-list uploads, check list size and match rate. A low match rate means most of the intended account list is not reachable, so the campaign is effectively targeting a fraction of the plan. Flag lists that need re-uploading or enrichment.
- Classify each audience as clean, over-narrow, over-broad, overlapping, leaking (expansion or LAN), or weak-match, and attach the spend exposed by each issue.
- Propose a cleaner structure, changing the fewest settings that resolve the issue: widen or split over-narrow audiences, separate overlapping campaigns by ICP segment or exclude one from the other, turn off Audience Expansion and LAN where they are not earning their spend, and repair or re-upload weak-match lists.
Decision rules
Use these as default heuristics, not hard laws. Every threshold is a starting heuristic that shifts by vertical, audience size, and account maturity. Name any you adjust.
Flag an audience as over-narrow when its estimated size is below the 300 floor (blocking) or well under ~50k for a delivery-dependent objective (starting heuristic), or when four or more restrictive facets are stacked without a clear ICP reason.
Flag overlap when two campaigns share a large share of their defined members and run in parallel; recommend excluding one audience from the other or merging them, so the account stops bidding against itself.
Flag expansion leakage whenever Audience Expansion or LAN is on for a precisely defined ICP audience; the default recommendation is to turn both off unless a measured efficiency case exists.
Flag weak match when an ABM or contact list matches only a small fraction of its uploaded rows (starting heuristic: below roughly 50%); recommend enrichment or re-upload before scaling spend behind it.
Do not recommend widening a small audience that is deliberately a tight ABM target; small-by-design is not the same as accidentally under-sized. Confirm intent first.
Output format
Executive summary
Number of audiences audited, count by issue type, the spend exposed to targeting problems, and the single highest-priority fix.
Audience findings table
For each audience: campaign, objective, estimated size, facets applied, issue (over-narrow / over-broad / overlap / expansion leak / weak match / clean), Audience Expansion state, LAN state, spend exposed, confidence, recommended change, reason.
Overlap map
Each overlapping campaign pair, the shared-member estimate, combined spend at risk, and the deduplication recommendation.
Recommended target structure
A cleaner proposed structure: which audiences to widen, split, merge, or exclude from each other, and which expansion levers to disable.
Practical example
A B2B SaaS account runs five LinkedIn campaigns, stated ICP of VP-and-above buyers in RevOps and Sales functions at 500-plus-employee software companies.
The audit finds two campaigns whose audiences each estimate at 4,200 members because they stack seniority AND a five-skill list AND years-of-experience on top of industry and size. Delivery is thin and CPMs are elevated. Three campaigns overlap heavily: all three target the same VP-plus RevOps segment with only minor industry differences, so they bid against each other on an estimated $6K/month of shared spend. Audience Expansion is on in four of five campaigns, and LAN is enabled account-wide. The ABM list of 1,800 target accounts matches at 41%, so most of the intended account list is unreachable.
Recommended structure: drop the skills and years-of-experience facets from the two over-narrow audiences (raising each above 30k), consolidate the three overlapping RevOps campaigns into one and split by industry only where budget justifies it, turn off Audience Expansion and LAN on the ICP campaigns, and re-upload an enriched ABM list to lift the match rate before adding spend. Estimated spend freed from self-competition and expansion leakage: about $6K to $8K/month, reallocatable to the cleaned audiences.
Guardrails
- Never state an audience size or match rate that is not in the data; ask for the estimate or mark an assumption.
- Distinguish small-by-design ABM targets from accidentally under-sized audiences before recommending a widen.
- Prefer reversible changes (turn off expansion, add an exclusion) before restructuring campaigns.
- When delivery looks wrong but the cause is unclear, confirm who received the budget with
demographics-leak-finder-linkedin-adsbefore blaming the targeting build. - Treat every threshold as a starting heuristic and name any adjusted for the account's vertical, audience size, or maturity.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mardab96
- Source: mardab96/linkedin-ads-claude-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.