Size and build LinkedIn audiences from your terminal.
Adwarp checks the size of any LinkedIn audience before you spend and uploads contact or company lists as matched audiences. Ask in plain words or run 1 command, and it cleans the file and hashes the emails.
$ claude mcp add adwarp -- npx -y adwarp mcp$ claude
> Is this audience big enough to run?
adwarp.estimate_audience RevOps, VP + Director, Canada: 240 members
Under LinkedIn's 300 minimum, so it wouldn't serve.
Adding Manager seniority brings it to 610. Want that instead?
01What you can ask
What you can ask. Real requests, answered from your terminal.
$ claude
> How many marketing ops leaders can we reach in the US, UK and Canada?
adwarp.estimate_audience Marketing Ops, all seniorities: 38,900
adwarp.estimate_audience + Director, VP, CXO: 6,410
adwarp.estimate_audience + software, 200 to 5,000 employees: 1,180
1,180 members. Above LinkedIn's 300 minimum, small enough to stay focused.
02How it works
How it works.
Search
Find the titles, seniorities, companies and regions you want by name.
Size
Check the count after every change until it lands in range, never under 300.
Upload
Turn a CSV, a Salesforce query or a HubSpot list into a matched audience, cleaned and hashed.
03Results
Why it gets better results.
Size before spend
You see the count before any money moves, so budget never lands on an audience too broad to matter.
No dead ad groups
Audiences under LinkedIn's 300-member floor get caught before launch instead of sitting unserved.
Cleaner matches
Lists go up with the right columns and hashed emails instead of half matched.
In practice169 audience estimates in real use, narrowing by seniority and region until each count landed in range. LinkedIn's 300-member floor decided which ad groups could exist at all.
How long does matching take?
Up to 48 hours. Adwarp can check the status for you.
Should I upload contacts or companies?
Contacts when you know the people, companies when you want everyone in a role at those accounts. Adwarp detects which one your file is.
Is my contact data sent anywhere?
Emails are hashed with SHA-256 on your machine before upload and go only to LinkedIn.
What's the minimum size for a LinkedIn audience?
300 members. LinkedIn won't serve ads to anything smaller, and Adwarp flags it before launch. Above that, the right size depends on the job.
| Job | Right size |
|---|---|
| 1:1 account-based ads | 400 to 1,000 decision makers per account |
| A persona at target companies | A few thousand, narrowed by seniority and region |
| Retargeting | At least 300 matched members, ideally far more |
Which columns should my list have?
These are the headers LinkedIn expects. Adwarp detects which kind of list you have and fixes the columns for you.
Contact list
- firstname
- lastname
- jobtitle
- employeecompany
- country
Company list
- companyname
- companywebsite
- companyemaildomain
- linkedincompanypageurl
- industry
- companycountry
Which tools and commands does it use?
7 MCP tools and 4 CLI commands, with what each one does.
| Tool | What it does |
|---|---|
estimate_ | Size any combination of targeting facets |
search_ | Find titles, skills, companies and regions by name |
list_ | Browse the values of a targeting facet |
upload_ | Clean, hash and upload a contact or company list |
audience_ | Build a matched audience from a SOQL query |
audience_ | Build a matched audience from a HubSpot list or search |
get_ | Check how a list is matching |
CLI
npx adwarp targeting estimate <facet> <urns...>npx adwarp audience upload -n <name> -f <csv> --dry-runnpx adwarp audience from-salesforce -n <name> -q "<SOQL>"npx adwarp audience from-hubspot -n <name> --list <id> --dry-run
What are the limits?
3 things to know before you start.
- Matching takes up to 48 hours after an upload.
- List uploads need LinkedIn's Audiences product on your developer app.
- CSV, Salesforce and HubSpot uploads run locally, not on the hosted endpoint.