paid-ads-linkedin
Audit, diagnose, plan, and safely operate connected LinkedIn Ads accounts through the NotFair MCP, with an export-based fallback. Use for LinkedIn advertising, sponsored content, lead-generation forms, job-title or company targeting, campaign groups, creatives, conversions, lead
Install
npx skills add https://github.com/nowork-studio/notfair-plugin/tree/main/paid-ads/paid-ads-linkedin
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install nowork-studio-notfair-plugin@llmmart
git clone https://github.com/nowork-studio/notfair-plugin.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole nowork-studio/notfair-plugin collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
LinkedIn Ads
Read ../shared/operating-contract.md and ../shared/measurement-framework.md before acting. Use live account data from the connected platform; use a supplied export when no verified connector is available.
Establish access and qualified-demand context
- Follow
../../docs/mcp-connection.md. Resolve~~linkedin-adsto the live connection. Use its current instructions and capability descriptions to choose tools, and verify the requested platform and account from live data. Do not infer access from another connected platform. - If the connector is missing or unauthorized, request re-authorization or a current export and keep the result plan/review-only.
- Define the sales-qualified conversion, CRM feedback loop, account currency, attribution basis, target CPA or pipeline outcome, and complete date window before diagnosing performance.
Keep lead quantity separate from lead quality. Build targeting hypotheses from job function, seniority, company, industry, or account lists only when the business rationale and audience constraints are defensible.
Read and diagnose
Correlate campaign groups, campaigns, creatives, and analytics as needed. Choose available capabilities for individual objects, conversion rules, lead forms, targeting information, or lead responses; retrieve only what the question needs.
Interpret the platform correctly:
- Hierarchy is account → campaign group → campaign → creative.
- Money is returned as a major-unit object such as
{ amount: "50", currencyCode: "USD" }, not micros or cents. - Targeting is a whole tree on the campaign. Preserve existing criteria unless the user explicitly approves replacement.
- Campaign type and cost type are immutable after creation.
- Lead-form responses contain personal data. Retrieve only when necessary, minimize exposure in the response, and never copy raw lead PII into unrelated artifacts.
For reviews, report spend, impressions, link CTR, leads, qualified leads, CPA, and downstream pipeline or revenue by a complete equivalent period. Name the likely driver only when the data supports it.
Execute approved changes safely
Use dedicated write tools, never the read-only script surface. Show the exact object, current and proposed state, currency exposure, expected effect, and rollback first. Use dry-run previews for spend-affecting creates, budgets, bids, and targeting when available.
- Prefer pause/activate over hard deletion; conversion rules and matched audiences may not be deletable through the API.
- Create campaign groups, campaigns, and creatives in draft, then review targeting, budget, conversion association, and creative before activation.
- Use a stable client request ID only to retry the same uncertain create.
- Resolve targeting names to LinkedIn URNs before setting the full targeting tree.
- Hashing and event-shape enforcement belong to the connector. Do not expose raw customer identifiers in the final report.
- Verify the mutation through returned before/after evidence or a fresh read and report any partial failure.
Finish with the confirmed action, quality metric, observation window, and rollback trigger. If operating from an export, mark recommendations ready_for_review, never published.
Files (notfair-plugin)
-
agents
-
openai.yaml 218 B
interface: display_name: "LinkedIn Ads" short_description: "Audit and operate LinkedIn Ads safely" default_prompt: "Use $paid-ads-linkedin to audit my connected LinkedIn Ads account and prioritize improvements."
-
-
evals
-
evals.json 1.6 KB
{ "skill_name": "paid-ads-linkedin", "evals": [ { "id": 1, "prompt": "Audit my connected LinkedIn Ads account. CPL is down, but sales says lead quality is worse. Compare campaign groups and campaigns and recommend what to do.", "expected_output": "A connector-backed B2B audit that keeps platform leads separate from qualified pipeline outcomes and uses one broad read before recommending a bounded action.", "files": [], "expectations": [ "Confirms the LinkedIn connector and selected account", "Uses a correlated read across campaign groups, campaigns, and analytics", "Separates lead quantity, qualified leads, and downstream pipeline", "States currency, attribution basis, and complete comparison windows", "Does not mutate the account during the audit" ] }, { "id": 2, "prompt": "Replace the targeting on our LinkedIn campaign with CTOs at US SaaS companies and activate it.", "expected_output": "A safe targeting workflow that reads the existing whole targeting tree, resolves names to LinkedIn URNs, previews the full replacement, and obtains approval before activation.", "files": [], "expectations": [ "Reads and preserves visibility into the existing targeting tree", "Resolves targeting entities to LinkedIn URNs rather than guessing IDs", "Shows the complete before and proposed targeting trees", "Uses dry-run when available and asks for exact approval", "Verifies the result before calling it published" ] } ] }
-
-
SKILL.md 3.7 KB
--- name: paid-ads-linkedin description: Audit, diagnose, plan, and safely operate connected LinkedIn Ads accounts through the NotFair MCP, with an export-based fallback. Use for LinkedIn advertising, sponsored content, lead-generation forms, job-title or company targeting, campaign groups, creatives, conversions, lead quality, budgets, bids, or approved LinkedIn campaign changes. argument-hint: "<B2B goal, audience, account, or date range>" --- # LinkedIn Ads Read `../shared/operating-contract.md` and `../shared/measurement-framework.md` before acting. Use live account data from the connected platform; use a supplied export when no verified connector is available. ## Establish access and qualified-demand context 1. Follow [`../../docs/mcp-connection.md`](../../docs/mcp-connection.md). Resolve `~~linkedin-ads` to the live connection. Use its current instructions and capability descriptions to choose tools, and verify the requested platform and account from live data. Do not infer access from another connected platform. 2. If the connector is missing or unauthorized, request re-authorization or a current export and keep the result plan/review-only. 3. Define the sales-qualified conversion, CRM feedback loop, account currency, attribution basis, target CPA or pipeline outcome, and complete date window before diagnosing performance. Keep lead quantity separate from lead quality. Build targeting hypotheses from job function, seniority, company, industry, or account lists only when the business rationale and audience constraints are defensible. ## Read and diagnose Correlate campaign groups, campaigns, creatives, and analytics as needed. Choose available capabilities for individual objects, conversion rules, lead forms, targeting information, or lead responses; retrieve only what the question needs. Interpret the platform correctly: - Hierarchy is account → campaign group → campaign → creative. - Money is returned as a major-unit object such as `{ amount: "50", currencyCode: "USD" }`, not micros or cents. - Targeting is a whole tree on the campaign. Preserve existing criteria unless the user explicitly approves replacement. - Campaign type and cost type are immutable after creation. - Lead-form responses contain personal data. Retrieve only when necessary, minimize exposure in the response, and never copy raw lead PII into unrelated artifacts. For reviews, report spend, impressions, link CTR, leads, qualified leads, CPA, and downstream pipeline or revenue by a complete equivalent period. Name the likely driver only when the data supports it. ## Execute approved changes safely Use dedicated write tools, never the read-only script surface. Show the exact object, current and proposed state, currency exposure, expected effect, and rollback first. Use dry-run previews for spend-affecting creates, budgets, bids, and targeting when available. - Prefer pause/activate over hard deletion; conversion rules and matched audiences may not be deletable through the API. - Create campaign groups, campaigns, and creatives in draft, then review targeting, budget, conversion association, and creative before activation. - Use a stable client request ID only to retry the same uncertain create. - Resolve targeting names to LinkedIn URNs before setting the full targeting tree. - Hashing and event-shape enforcement belong to the connector. Do not expose raw customer identifiers in the final report. - Verify the mutation through returned before/after evidence or a fresh read and report any partial failure. Finish with the confirmed action, quality metric, observation window, and rollback trigger. If operating from an export, mark recommendations `ready_for_review`, never `published`.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.