adwarp

Start with 1 prompt.

Paste it into Claude Code, Codex or Cursor. Your agent installs Adwarp, walks you through your LinkedIn app and checks the connection.

setup prompt
Set up Adwarp for me. It's the open-source ad agent for LinkedIn Ads and Google Ads: https://github.com/adwarp-dev/adwarp

1. Check that Node.js 20 or newer is installed.
2. Walk me through creating my own LinkedIn developer app with the Advertising API product: https://github.com/adwarp-dev/adwarp/blob/main/docs/linkedin-app.md
3. Save the app's client ID and secret to ~/.adwarp/config.json as clientId and clientSecret.
4. Run "npx -y adwarp auth login" and wait while I approve access in my browser.
5. Add Adwarp to the AI client I'm using right now as an MCP server that runs "npx -y adwarp mcp". In Claude Code that's: claude mcp add adwarp -- npx -y adwarp mcp
6. Check the connection by listing my ad accounts, then save the one I pick as defaultAccountId in ~/.adwarp/config.json.

Don't create or change anything in my ad accounts during setup. LinkedIn campaigns start as drafts, so nothing spends until I turn it on.
adwarp
GitHub

Start with 1 prompt.

Paste it into Claude Code, Codex or Cursor. Your agent installs Adwarp, walks you through your LinkedIn app and checks the connection.

setup prompt
Set up Adwarp for me. It's the open-source ad agent for LinkedIn Ads and Google Ads: https://github.com/adwarp-dev/adwarp

1. Check that Node.js 20 or newer is installed.
2. Walk me through creating my own LinkedIn developer app with the Advertising API product: https://github.com/adwarp-dev/adwarp/blob/main/docs/linkedin-app.md
3. Save the app's client ID and secret to ~/.adwarp/config.json as clientId and clientSecret.
4. Run "npx -y adwarp auth login" and wait while I approve access in my browser.
5. Add Adwarp to the AI client I'm using right now as an MCP server that runs "npx -y adwarp mcp". In Claude Code that's: claude mcp add adwarp -- npx -y adwarp mcp
6. Check the connection by listing my ad accounts, then save the one I pick as defaultAccountId in ~/.adwarp/config.json.

Don't create or change anything in my ad accounts during setup. LinkedIn campaigns start as drafts, so nothing spends until I turn it on.

Run account-based LinkedIn ads from your terminal.

Adwarp is an open-source MCP server and CLI for 1:1 account-based ads on LinkedIn. Pick the accounts, and it builds an audience of decision makers for each, drafts the ads and sets a fixed flight.

$ claude mcp add adwarp -- npx -y adwarp mcp

Read the docs

claude ~ abm launch

$ claude

> Launch 1:1 ads for every account on this list, with 2-week flights.

adwarp.search_targeting employers, each account: 1 page each

adwarp.estimate_audience functions + seniority: 400 to 1,000 each

adwarp.create_campaign 1 per account, 2 weeks: DRAFT

adwarp.create_image_ad 3 ads each, your creative: DRAFT

Every account drafted with its own audience, ads and end date.

0 USD spent. Nothing goes live until you say so.

01What you can ask

What you can ask. Real requests, answered from your terminal.

claude ~ abm status

$ claude

> How are my ABM ads doing?

adwarp.performance_summary group "ABM 1:1", last 7 days: 13 ad sets

11 of 13 above 0.5% click-through rate

2 ad sets under 300 impressions, the audience may be too narrow

All 13 end on Oct 24. Want a CSV for sales?

02How it works

How it works.

  1. Pick the accounts

    From Salesforce, such as closed-lost deals, open opportunities or champions, or from a CSV.

  2. Size each one

    Company targeting plus job functions and seniority, narrowed until each audience lands at 400 to 1,000 people.

  3. Draft the flight

    Each account gets its own ad group, your creative and landing page, and a fixed end date, all as drafts.

03Results

Why it gets better results.

  • Dozens of accounts

    You cover dozens of accounts where a team would manage 5 by hand.

  • Sized to decision makers

    Every audience lands at 400 to 1,000 people who decide, instead of a whole company.

  • Fixed flights

    Each account runs to a set end date, so spend can't drift.

  • Sales in the loop

    Sales gets the account list as a CSV the same day.

In practice49 account-based ad sets run in batches, each with 400 to 1,000 decision makers, 3 ads with your creative, its own landing page and a 2-week flight. The account list went to sales as a CSV.

04FAQ

Questions, answered. From setup to the details.

Ask on GitHub
What is account-based marketing on LinkedIn?

Ads aimed at a named list of companies instead of a broad market. On LinkedIn that means company targeting narrowed to the people who decide, with each account in its own ad group.

How small can an account audience be?

300 members is LinkedIn's minimum to serve. For 1:1 ads, aim for 400 to 1,000 decision makers per account.

What do I need to bring?

The creative and the landing pages. Adwarp uploads your images and points each ad at your URL, and the design and the pages stay yours.

How long should a flight run?

Each of the 49 account-based ad sets in real use ran a fixed 2-week flight. A set end date keeps spend from drifting and gives sales a clear window to follow up.

How do 1:1 account-based ads work on LinkedIn?

Company targeting plus job functions and seniority, narrowed to 400 to 1,000 people per account.

  • Target the company through its LinkedIn page.
  • Add the job functions and seniorities of the people who decide.
  • Narrow until the estimate lands at 400 to 1,000. Under 300, LinkedIn won't serve it.
Can the account list come from Salesforce?

Yes, or from HubSpot or a CSV. A Salesforce query runs locally through your signed-in Salesforce CLI, and emails are hashed before upload.

Can the account list come from Salesforce?
SourceWhat you bring
SalesforceA SOQL query for closed-lost deals, open opportunities or champions
HubSpotA HubSpot company list, or a search on company properties
CSVAny account list, cleaned and uploaded as a company list
Which tools and commands does it use?

6 MCP tools and 3 CLI commands, with what each one does.

Which tools and commands does it use?
ToolWhat it does
search_targetingFind each account's company page and the job functions to target
estimate_audienceSize each account's audience before launch
create_campaign1 ad group per account, with its own budget and end date, as a draft
create_image_adYour creative, pointed at your landing page, as a draft
launch_from_briefAudience, ad group and ads for 1 account in 1 call
list_campaignsEvery account's status and end date, for the sales CSV

CLI

  • npx adwarp targeting search employers "<company>"
  • npx adwarp launch --brief account.json
  • npx adwarp campaigns list --group <id>
What are the limits?

3 things to know before you start.

  • LinkedIn's 300-member minimum rules out small companies.
  • Each company needs a LinkedIn page to target.
  • CSV, Salesforce and HubSpot uploads run locally, not on the hosted endpoint.