# 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.

## What you can ask.

Real requests, answered from your terminal.

### How are my ABM ads doing?

```text
> 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?
```

### Launch 1:1 ads for every account on this list.

```text
> 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.
```

### Pull every ABM account into a CSV for sales.

```text
> Pull every ABM account into a CSV for sales.
adwarp.list_campaigns group "ABM 1:1", all statuses: 49 ad sets
Wrote abm-accounts.csv: account, audience size, status, end date
```

### Build the target list from contacts on our open opportunities.

```text
> Build the target list from contacts on our open opportunities.
adwarp.audience_from_salesforce open opportunity contacts: contact list
Emails hashed with SHA-256 before upload
Matching now. Ready to target in up to 48 hours.
```

## 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.

## 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 practice: 49 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.

## Questions, answered.

### 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.

| Source | What you bring |
| --- | --- |
| Salesforce | A SOQL query for closed-lost deals, open opportunities or champions |
| HubSpot | A HubSpot company list, or a search on company properties |
| CSV | Any 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.

| Tool | What it does |
| --- | --- |
| `search_targeting` | Find each account's company page and the job functions to target |
| `estimate_audience` | Size each account's audience before launch |
| `create_campaign` | 1 ad group per account, with its own budget and end date, as a draft |
| `create_image_ad` | Your creative, pointed at your landing page, as a draft |
| `launch_from_brief` | Audience, ad group and ads for 1 account in 1 call |
| `list_campaigns` | Every account's status and end date, for the sales CSV |

CLI:

```bash
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.

## Related

- [Audiences](https://adwarp.dev/linkedin-ads/audiences): Size before you spend
- [Salesforce audiences](https://adwarp.dev/integrations/salesforce): Build an audience from a SOQL query
- [Reporting](https://adwarp.dev/linkedin-ads/reporting): How are my ABM ads doing?

Unofficial. Not affiliated with or endorsed by LinkedIn or Google.

Canonical page: https://adwarp.dev/linkedin-ads/abm
Last updated: 2026-10-18
