Find the right contacts

Personas, job titles and buying committees.

Old switchboard on a red desk

Map the buying committee first, translate it into job titles by company size, then fetch one to five named people per account according to its tier. Exporting everyone with a relevant-sounding title gives you a big list and a poor reply rate.

The example continues: payroll software, French SMEs, 6,000 qualified accounts after enrichment. The committees and volumes below are illustrative, so replace them with what your own deals show.

Open your last 20 won deals in the CRM and note who replied first, who attended the demo and who signed. The patterns from your ICP work tell you which deals to read first.

Role in the deal In this example What they care about Contact them
Economic buyer Finance director, CEO in smaller companies Cost, risk of payroll errors Yes, primary
Day-to-day user Payroll manager Time spent on each pay run, compliance Yes, often the best first reply
Influencer HR director Employee experience, HR data Yes, secondary
Technical check IT manager Integrations, security Later, in the deal
Outside party The company’s accountant Often runs payroll for the company Separate channel, separate message

That last row matters more than any title list. Plenty of small companies outsource payroll to their accountant, and for those accounts there is no payroll manager to find. Keep it in mind when a search comes back empty: it can be a qualification result.

Adjust the committee to company size

Headcount Primary contact Secondary What changes
50 to 99 CEO, or head of admin and finance Accountant in the company Few dedicated functions, one person wears several hats
100 to 249 Finance director HR manager, payroll manager A payroll function usually appears
250 and up HR director Payroll manager, HRIS manager, IT Longer process, more people involved

Treat this grid as a hypothesis until your CRM confirms it. It takes an hour to check and it decides every search you run afterward.

Tangle of cords on a switchboard

Turn personas into titles a search can match

French job titles have variants that a lazy filter misses: masculine and feminine forms, spelled out and abbreviated, French and English in the same company.

Persona Include Exclude
Finance directeur administratif et financier, directrice administrative et financière, DAF, RAF, responsable administratif et financier, CFO assistant, assistante, alternant, stagiaire
HR DRH, directeur des ressources humaines, directrice des ressources humaines, responsable RH, HR manager, HR director chargé de recrutement, talent acquisition
Payroll responsable paie, gestionnaire de paie, payroll manager assistant, consultant, éditeur

In a boolean search field, one block per persona:

("directeur administratif et financier" OR "directrice administrative et financière"
 OR "responsable administratif et financier" OR DAF OR RAF OR CFO)
NOT (assistant OR assistante OR alternant OR alternante OR stagiaire)

Whatever you fetch, classify it afterward from the raw title, so one persona column drives the rest of the pipeline. With the title in column A:

=IF(REGEXMATCH(LOWER(A2),"assistant|alternant|stagiaire"),"exclude",
 IF(REGEXMATCH(LOWER(A2),"financi|\bdaf\b|\braf\b|\bcfo\b"),"finance",
 IF(REGEXMATCH(LOWER(A2),"paie|payroll"),"payroll",
 IF(REGEXMATCH(LOWER(A2),"\bdrh\b|ressources humaines|\brh\b|\bhr\b"),"hr","other"))))

Read the other rows. They are where you discover the title you forgot.

Pull the people account by account

I co-founded Derrick, so take this with that in mind. You already have the LinkedIn company URLs from the previous chapter, and there are two ways to go from there.

Your situation Feature What goes in What comes out Credits
No Sales Navigator, or broad function search Find a company’s people LinkedIn company URLs, optional job function Name, role, location, connection degree, profile URL, in a new tab 1 per person imported
Precise title and seniority search Import Leads from Target Companies LinkedIn company URLs and a Sales Navigator people search Name, title, company, location, profile URL 1 per lead imported, Sales Navigator required
You already know the name Search Leads Full name, optionally the company LinkedIn profile URL 1 per profile

The function filter in the first option is broad, so run the classification formula on the output. Then get the address only for the people you keep: Email Finder takes the profile URL and costs 5 credits per email found, nothing when it finds none. If you already hold addresses from elsewhere, Email Verification checks them at 1 credit per email. Verified doesn’t mean certain, so expect some bounces and keep your sending volume sensible. Phone Finder costs 200 credits per number found, which is why I’d reserve it for the top tier.

These features depend on LinkedIn data and your own LinkedIn account, so they find nothing about people who aren’t there. A payroll manager at a 60-person manufacturer may well have no profile. In that case, SIRET/SIREN Enrichment returns the directors of French companies, which gives you a name for the CEO. For the rest, the manual route still works: the company’s team page, a search on the name of the company and the title, or a call to the switchboard to ask who handles payroll. For high-value accounts, that call is often the fastest option anyway.

Antique wall-mounted wooden telephone

Cap the contacts and record what you found

Tier Contacts per account Who
A 3 to 5 Whole committee
B 2 Primary and day-to-day user
C 1 Primary only

The tiers come from the next chapter. Until you have them, stop at two per account and top up afterward. A contacts table separate from accounts keeps this clean:

Column Example Note
contact_id, account_id c_8841, a_2210 One account, many contacts
full_name, title_raw Claire Dupont, Responsable paie Fictional person, title as found
persona, deal_role payroll, user From the classification and your grid
linkedin_url, email, email_status profile URL, address, verified One status per address
source, collected_at find_staff, 2026-11-09 For freshness and for data subject requests
opt_out false Checked before every send

Track coverage per account with =COUNTIFS(contacts!B:B,A2,contacts!E:E,"finance"), and mark accounts with no match as no_contact rather than deleting them. A sector where most accounts come back empty tells you the channel is wrong for that sector.

Treat people data differently from company data

From this step on your database holds personal data, and the rules that apply are different from those for a company list. Collect only what the campaign needs, record the source, and be ready to tell someone where you got their details and to remove them. Rules on B2B prospecting depend on the country and the channel. The CNIL’s page on electronic prospecting is the reference for France, nothing here is legal advice, and you should check your setup with counsel and read each source’s terms of use. The maintenance chapter covers opt-outs in practice.

Your next step: write the committee grid from 20 won deals, build the title blocks for each persona, and run them on 50 accounts. Read the other rows and the empty accounts, fix the lists, then launch the full pull.