
To build a sales prospecting list with AI, start from your closed-won deals, not from a database filter. Let the AI define the profile, detect the accounts where something just changed, enrich them until you have a mobile number, score them on fit, trigger and reachability, and push the result into a dialing session timed for the persona. Five steps. Here is each one, with the checks that keep the list honest.
A prospecting list answers two questions: who is likely to pick up, and why would they talk to you today. Firmographic filters answer neither. "SaaS, 50-200 employees, France, VP Sales" describes several thousand people and says nothing about which 50 to call this morning.
AI makes a bad list faster to build. It does not make it better unless the inputs change. The inputs that change it are signals and reachability. In our benchmark of 1,000,000 B2B cold calls in France, the average connect rate is 11.3%, and a trigger-based opener books 7-10% of conversations against 2-3% for a pitch-first opener. A list built from triggers therefore converts about three times better before anyone dials.
Take your last 30 closed-won deals and your last 30 closed-lost. Give the model the CRM fields, the industry, the headcount, the persona who signed, the sales cycle and the first touch that started each deal.
Ask for the three attributes that separate won from lost. In our experience the answer surprises founders: it is rarely industry, and often a tool in the stack, a hiring pattern or the persona who first picked up the phone.
That becomes the fit filter. Keep it to three or four criteria. A ten-criteria ICP produces a list of forty people.
Now ask a different question: among accounts that fit, where did something change this month?
The AI's job here is detection and deduplication, not judgment. It watches the sources, matches the account to the ICP and writes one line stating the trigger. A list of 50 accounts with a stated trigger is a better morning than 500 without.
A European list has a specific problem: mobile coverage. A single data provider typically returns a valid mobile for well under half of French B2B contacts, in our experience. The fix is a waterfall: query several providers in sequence, stop when one returns a number, validate the format and the country code.
Let the AI orchestrate the waterfall and flag the contacts that end up with a switchboard only. Those go to a separate list, called at a different slot, with a gatekeeper opener.
Compliance check for Europe: B2B prospecting on a professional number is lawful under legitimate interest, but you need an opt-out path and you must honour it. Keep the source of each number in the record.
Fit (from step 1), trigger strength (from step 2), reachability (from step 3). Multiply, do not add. A perfect-fit account with no trigger and no mobile should sit at the bottom.
Add one timing field: the persona's best slot. Founders pick up most around 10am, marketing around 4pm, HR around 1pm in our data. The list should know when it wants to be called.
Resist the predictive-scoring model with 40 features. Your team will not trust what it cannot explain, and a score nobody trusts is a score nobody dials.
A list in a spreadsheet is a to-do. A list in a dialing session is pipeline. Push the scored contacts, with their trigger line and their slot, straight into the dialer, grouped by persona so the 10am block is founders and the 4pm block is marketing.
After the block, the outcomes go back into the list logic. "Wrong person" removes the contact and asks the AI for the next one in the account. "Not now, Q1" schedules a callback with the trigger preserved. "Meeting" tags the trigger as a winner so it gets more weight next week.
Measure the list, not the rep: connect rate and meeting rate per list source. In our experience a signal-based list books about twice as many meetings per 100 dials as a static ICP export of the same personas. If your signal list is not beating your cold export, the signal is wrong, not the rep.
Sonik builds the list for you from signals: CRM dormant leads and closed-lost, website visitors, job changes and social intent, matched to your ICP. Each contact arrives with the trigger written out and a suggested opener from the AI call prep.


The list lands directly in a parallel dialing session, where reps get about 5x more conversations than with a manual dialer. Outcomes flow back to the CRM and to next week's list without a spreadsheet in between.
Our target is 20 conversations per SDR per day. The list is what decides whether those 20 conversations are with the right people.
AI changes list building only when it changes the inputs: closed-won defines fit, signals define timing, enrichment defines reachability, and the dialer closes the loop. This week, pull 50 CRM contacts with a trigger you can name, get a mobile for each, and dial them at the persona's slot. Compare the meeting rate with your usual export. That comparison is the only ROI calculation you need.