원클릭으로
linkedin-micro-campaigns
Create precision-targeted LinkedIn ad campaigns for specific ICP segments — translates CRM data to LinkedIn targeting
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create precision-targeted LinkedIn ad campaigns for specific ICP segments — translates CRM data to LinkedIn targeting
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | linkedin-micro-campaigns |
| description | Create precision-targeted LinkedIn ad campaigns for specific ICP segments — translates CRM data to LinkedIn targeting |
| version | 1.0.0 |
| author | Cogny AI |
| platforms | ["hubspot","linkedin-ads"] |
| user-invocable | true |
| argument-hint | <ICP description or segment> |
| allowed-tools | ["mcp__cogny__hubspot__*","mcp__cogny__linkedin_ads__*","mcp__cogny__create_finding","Bash","Read","Write"] |
Create highly targeted LinkedIn ad campaigns for specific ICP segments. Translates your Ideal Customer Profile (from CRM data or manual input) into precision LinkedIn targeting criteria, estimates audience sizes, and builds campaign groups with campaigns and creatives.
Requires: Cogny Agent subscription ($9/mo) — Sign up
Tip: Run /crm-icp-analysis first to generate a data-driven ICP, then feed the output into this skill. You can also run /crm-sales-momentum to identify which segments close fastest and target those specifically.
/linkedin-micro-campaigns "VP Marketing at SaaS companies, 200-1000 employees" — create campaigns from a description
/linkedin-micro-campaigns — pull ICP from HubSpot CRM data automatically
Verify LinkedIn Ads access (required):
linkedin_ads__tool_list_ad_accounts
If HubSpot is also connected (for automatic ICP extraction), verify:
hubspot__get_user_details
If LinkedIn Ads is not available:
This skill requires Cogny's LinkedIn Ads MCP server.
Sign up at https://cogny.com/agent and connect your LinkedIn Ads account.
HubSpot is optional — if connected, ICP data is extracted automatically.
Without HubSpot, provide your ICP description as an argument.
If ICP description is provided as argument, parse it for:
If no argument is provided and HubSpot is connected, extract ICP from CRM:
Pull closed-won deal data to identify top-performing segments:
hubspot__search_crm_objects(
objectType: "deals",
filterGroups: [{"filters": [{"propertyName": "dealstage", "operator": "EQ", "value": "closedwon"}]}],
properties: ["dealname", "amount", "closedate"],
sorts: [{"propertyName": "closedate", "direction": "DESCENDING"}],
limit: 50
)
Fetch associated companies and contacts to extract:
Group into 2-3 distinct micro-segments based on the data (e.g., "Enterprise Marketing Leaders", "Mid-Market Sales Directors", "Startup Founders").
For each micro-segment, map ICP dimensions to LinkedIn targeting entities.
Job Titles — search for exact LinkedIn targeting entities:
linkedin_ads__tool_search_targeting_entities(facet_urn: "urn:li:adTargetingFacet:titles", query: "<title from ICP>")
Job Functions:
linkedin_ads__tool_get_targeting_facets()
Then search within job functions for relevant matches.
Seniorities:
linkedin_ads__tool_search_targeting_entities(facet_urn: "urn:li:adTargetingFacet:seniorities", query: "<level>")
Industries:
linkedin_ads__tool_search_targeting_entities(facet_urn: "urn:li:adTargetingFacet:industries", query: "<industry from ICP>")
Company Sizes:
linkedin_ads__tool_search_targeting_entities(facet_urn: "urn:li:adTargetingFacet:staffCountRanges", query: "<size range>")
Locations:
linkedin_ads__tool_search_targeting_entities(facet_urn: "urn:li:adTargetingFacet:locations", query: "<geo from ICP>")
Build the targeting criteria object for each micro-segment using AND logic:
{
"include": {
"and": [
{"or": {"urn:li:adTargetingFacet:titles": ["<title URNs>"]}},
{"or": {"urn:li:adTargetingFacet:seniorities": ["<seniority URNs>"]}},
{"or": {"urn:li:adTargetingFacet:industries": ["<industry URNs>"]}},
{"or": {"urn:li:adTargetingFacet:staffCountRanges": ["<size URNs>"]}},
{"or": {"urn:li:adTargetingFacet:locations": ["<location URNs>"]}}
]
}
}
For each micro-segment targeting combination, check the audience size:
linkedin_ads__tool_get_audience_counts(ad_account_id: <id>, targeting_criteria: <targeting object>)
Evaluate each segment:
Iterate on targeting until each segment hits a viable audience size. Document adjustments made.
Review existing campaigns to avoid audience overlap:
linkedin_ads__tool_get_campaign_groups(ad_account_id: <id>)
linkedin_ads__tool_get_campaigns(ad_account_id: <id>, status_filter: "ACTIVE")
For each active campaign, compare targeting criteria. Flag overlaps and recommend:
CRITICAL: Wait for user approval before creating anything.
Present the proposed structure:
┌─────────────────────────────────────────────────────────────────────┐
│ PROPOSED MICRO-CAMPAIGN STRUCTURE │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Campaign Group: "[ICP Segment] — Micro Campaigns" │
│ │
│ ├── Campaign 1: "[Segment A Name]" │
│ │ Objective: [Lead Gen / Website Visits / Engagement] │
│ │ Targeting: │
│ │ Titles: [list] │
│ │ Seniority: [level] │
│ │ Industries: [list] │
│ │ Company Size: [range] │
│ │ Location: [geo] │
│ │ Est. Audience: [N] │
│ │ Daily Budget: $[X] │
│ │ Bid Strategy: [strategy] │
│ │ │
│ ├── Campaign 2: "[Segment B Name]" │
│ │ [same structure] │
│ │ │
│ └── Campaign 3: "[Segment C Name]" │
│ [same structure] │
│ │
│ Total Daily Budget: $[X] │
│ Total Est. Audience: [N] │
│ Recommended Duration: [N] weeks minimum │
└─────────────────────────────────────────────────────────────────────┘
Approve all? Or select specific campaigns (e.g., "1 and 2 only")
After user approval, create the campaign group:
linkedin_ads__tool_create_campaign_group(
ad_account_id: <id>,
name: "[ICP Segment] — Micro Campaigns",
status: "PAUSED"
)
For each approved micro-segment, create a campaign in PAUSED status:
linkedin_ads__tool_create_campaign(
ad_account_id: <id>,
campaign_group_id: <group_id>,
name: "[Segment Name]",
objective_type: "LEAD_GENERATION",
targeting_criteria: <targeting object from step 2>,
daily_budget_amount: <amount>,
daily_budget_currency: "USD",
cost_type: "CPM",
status: "PAUSED"
)
All campaigns are created PAUSED — the user controls when to activate.
For each campaign, create 2 creative variations for A/B testing.
Ask the user for:
Then create variations:
Variation A — Pain point focus:
linkedin_ads__tool_create_creative(
campaign_id: <id>,
commentary: "<Segment-specific pain point intro — 150 chars visible>",
share_media_title: "<Pain point headline — 70 chars max>",
share_media_description: "<Supporting detail>",
destination_url: "<landing page URL>",
call_to_action_type: "LEARN_MORE",
status: "PAUSED"
)
Variation B — Outcome focus:
linkedin_ads__tool_create_creative(
campaign_id: <id>,
commentary: "<Segment-specific outcome/result intro — 150 chars visible>",
share_media_title: "<Outcome headline — 70 chars max>",
share_media_description: "<Supporting detail>",
destination_url: "<landing page URL>",
call_to_action_type: "LEARN_MORE",
status: "PAUSED"
)
Creative guidelines per segment:
LinkedIn Micro Campaigns — Created
═══════════════════════════════════════════════════
Campaign Group: [Name] (PAUSED)
Ad Account: [Account Name]
┌──────────────────────┬──────────┬───────────┬──────────┬──────────────┐
│ Campaign │ Audience │ Budget/day│ Status │ Creatives │
├──────────────────────┼──────────┼───────────┼──────────┼──────────────┤
│ [Segment A] │ [N] │ $[X] │ PAUSED │ 2 variations │
│ [Segment B] │ [N] │ $[X] │ PAUSED │ 2 variations │
│ [Segment C] │ [N] │ $[X] │ PAUSED │ 2 variations │
├──────────────────────┼──────────┼───────────┼──────────┼──────────────┤
│ TOTAL │ [N] │ $[X] │ │ [N] total │
└──────────────────────┴──────────┴───────────┴──────────┴──────────────┘
Targeting Summary per Campaign:
[Campaign 1]: [titles] + [seniority] + [industries] + [size] + [geo]
[Campaign 2]: [titles] + [seniority] + [industries] + [size] + [geo]
[Campaign 3]: [titles] + [seniority] + [industries] + [size] + [geo]
ICP Data Source: [HubSpot CRM / Manual Input]
Deals Analyzed: [N] (if from CRM)
Next Steps:
1. Review creatives and update copy/images as needed
2. Set campaign group status to ACTIVE when ready to launch
3. Monitor for 7 days before optimizing
4. Run /linkedin-ads-audit after 14 days to evaluate performance
Estimated Monthly Spend: $[X]
Estimated Monthly Reach: [N] impressions
For each micro-campaign created, call mcp__cogny__create_finding:
{
"title": "Micro-campaign created: VP Marketing at SaaS 200-1K employees (audience: 34,200)",
"body": "Created LinkedIn campaign targeting VP/Director Marketing at SaaS companies with 200-1000 employees in US/UK. Audience size 34,200. Daily budget $50. Based on CRM analysis showing this segment has 42% win rate and $45K avg deal size. 2 creative variations (pain point + outcome). Campaign in PAUSED status.",
"action_type": "campaign_creation",
"expected_outcome": "Generate 15-25 qualified leads per month at <$80 CPL",
"estimated_impact_usd": 3000,
"priority": "medium"
}
Action types for micro-campaigns:
campaign_creation — new campaigns built from ICP datatargeting_refinement — audience adjustments based on size/overlapcreative_refresh — new ad variations for testingbudget_optimization — spend reallocation across segmentsaudience_overlap — overlap detection and exclusion recommendationsSubmit an AI agent to the agentlaunch directory and upvote agents via a public no-auth REST API
Comprehensive Google Ads account audit — campaign structure, budget pacing, conversion tracking, wasted spend — across every campaign type, ranked by estimated $ impact
Google Ads Demand Gen audit — audience strategy, creative format diversity, creative freshness, placements, CPA vs goal
Google Analytics 4 configuration and data-quality audit — key events, data streams, custom dimensions, attribution, retention, PII, Ads link, BigQuery export
Build a GA4 measurement plan from a site URL — event taxonomy, parameters, custom dimensions, and key events to mark as conversions
Weekly GA4 check — sessions, users, key-event conversions, revenue, channel mix — with week-over-week deltas and tracking-break alerts