The problem this solves
A list that took a week to build usually ends its life as a CSV in a Slack thread, and the paid team rebuilds it in Campaign Manager by hand: rename the columns to fit the template, drop the rows without an email, upload, wait. When the audience comes back smaller than expected, nobody can say which rows were lost or why.
LinkedIn matches two ways, and the strong play is to use both. A company list matches on company name, website domain and LinkedIn page, and reaches everyone at the account who fits the job filters you add later. A contact list matches on the person, using email first and name, title and employer as backup, and reaches the exact people you sourced. Building only one leaves reach on the table, and building both by hand doubles the manual work.
This playbook takes list <name> as it sits in the workspace, creates both audience shapes on the connected LinkedIn Ads account, and reports the sizes once LinkedIn has finished matching, so the paid team plans against real numbers.
How the mission runs
- Split list <name> into the two shapes LinkedIn matches on. The Audience Agent reads list <name> and builds two inputs from the same rows. The company input carries company name, website domain and LinkedIn page URL for each account. The contact input carries email, first name, last name, job title, employer and country for each person, so the match can still succeed on the person when LinkedIn has never seen that email.
- Normalize, deduplicate and check suppressions. Emails are lowercased and trimmed, domains resolved to their registrable form, and duplicate people or companies collapse into one row. With a CRM connected, current customers and open opportunities are flagged before the push and shown as a separate count, so you decide whether they belong in a targeting audience at all.
- Stage both audiences for approval. Nothing is created yet. The agent shows the two audience names, the row counts going into each, the rows set aside for lacking a usable identifier, and the ad account they will be created on. You approve, rename or trim, and only then does the creation call run against the connected LinkedIn Ads account.
- Create the audiences and wait for LinkedIn. LinkedIn processes matched audiences on its own schedule, so the agent creates both segments, records their ids, and checks back until each one is marked ready. Every call is metered in credits and written to the audit trail, so a reviewer can later see when each audience was created and from which version of the list.
- Report the matched sizes in #paid. When LinkedIn finishes, one message lands in #paid: the matched size of the company audience, the matched size of the contact audience, whether each cleared the minimum LinkedIn requires before an audience can serve, and where to find them in Campaign Manager. The numbers are the platform's own, quoted as reported.
The prompt
This is the exact objective the agent receives. Swap the obvious placeholders for your own domain, segment or channel and run it as-is from the console, Slack, or the API.
What comes back
Two matched audiences on your connected LinkedIn Ads account, both named after list <name>: a company-matched audience of the accounts and a contact-matched audience of the people. The #paid message carries the size LinkedIn reported for each, the rows submitted, the rows set aside and why, and the audience ids for the campaign build. List <name> stays in the workspace with its criteria, so a later refresh adds new members to the same audiences instead of creating new ones.
Make it yours
- Ask for the contact audience only when the list is people-first and the accounts are already covered by an existing company audience.
- Add a suppression step from HubSpot or Pipedrive so customers and open opportunities are removed before staging, with the count removed at each step shown.
- Mirror the same list to a Meta custom audience or a Reddit custom audience in the same run and get all the sizes in a single #paid message.
- Schedule it monthly against the same list so newly matching rows are added under the same audience ids and the size delta is posted.
Frequently asked questions
Why create both a company list and a contact list?
They reach different people. The contact audience is the exact set you sourced, which suits a message written for those roles. The company audience reaches the whole account and lets you layer LinkedIn job-title and seniority filters on top, which catches committee members your list never named. Running both from one list gives the paid team two levers for one build.
What if a size comes back under LinkedIn's minimum?
The agent says so plainly and suggests the fix: widen the list criteria, add the missing identifiers, or combine the audience with a second list. A refresh against the same list adds members to the existing audience rather than creating a new one.
Does the agent hash contact data before it goes to LinkedIn?
Yes. Identifiers are normalized and hashed the way LinkedIn documents, and only the hashed values plus the plain matching fields LinkedIn accepts, such as name, title and employer, are sent. The full list stays in your workspace.