The easiest clients to win are the ones you already had
Every agency has them. Companies that paid an invoice, were happy enough, and then went quiet because the consultant who owned the account left, or the client paused hiring, or nobody picked up the phone. Nobody there has to be persuaded that you can do the work. Terms may still be in place.
What stops people calling is simple. They do not know who is still there, and they have nothing to say beyond "just checking in". This play answers both before you dial: who sits in the seat today, and what the company is doing that gives you a reason to ring.
What you get back
A table per company. The contacts on your record, each marked as still there, left, or not verified. For each leaver, the successor with title and LinkedIn. The roles the company is advertising today, with the ones in your discipline marked. A checked work email for the people worth writing to, and a drafted reason to call.
Beside it sit the proposed CRM changes: leavers to mark, successors to add, emails to correct. Nothing is written until you approve it, and nothing is sent.
Variations worth knowing
Let the notes suggest the list. JobAdder returns dated notes per company and per contact, so the agent can propose a cut-off list from the latest note on each account. Treat it as a first draft that you correct, because a missing note is not a missing conversation.
Placed-with clients only. Where your CRM returns placements per company, as JobAdder does, the run can be limited to companies you actually placed with. It is a shorter list and a warmer one.
Follow the leavers. A contact who has moved is a second lead. Follow your client contacts when they move company qualifies the company they joined before any money is spent on it.
Keep watching. For accounts with nothing open today, know when a target account opens a role in your discipline tells you when that changes.
Where this goes wrong
Trusting a record-edited date. A bulk import or a data tidy-up touches every record and makes a dead account look active. It is not a conversation date, which is why the list is yours.
Reading unverified as still there. A contact the check could not match is unknown, not confirmed.
No open roles is not no reason. Roles filled through agencies or never advertised do not appear. When nothing is found the draft says less, and it does not invent a hook.
Ignoring why they lapsed. If an account went quiet after a poor placement or a dispute, the CRM may not say so. Read the list before the run and take those off, or make those calls yourself.