In 2020 I spent my days with 4 browser tabs open. SellerCrowd, a database of which agency people work on which brands, in one. LinkedIn in the next. Apollo, a contact database, in the third. The spreadsheet I was filling in the fourth.

I'd look up one account, find who was supposed to be running it, open that person on LinkedIn to see if it was still true, and type them into a row. Then the next account. SellerCrowd wouldn't export a bulk search, so it really was one at a time. About 10 minutes a contact, on a good run.

I don't miss it. I still have nightmares about spreadsheets. AI does that research now, faster than I ever did, and I build systems that use it every day. But it skips the part of the job that mattered most, which was checking each row before anyone trusted it.

If your CRM looks full and your revenue isn't moving, you're skipping something too, and my money's on the data going in.

01What the job was

It was my first real job online. I did prospect research for outbound campaigns at a small agency, for clients that were mostly ad tech, data and software companies, and I did it for a bit over a year.

One client was an ad tech company that sold to creative agencies, and separately to travel companies and tourism boards. So a real chunk of my 2020 went into figuring out who runs marketing for tourism boards. A lot of them were in Florida, which totally makes sense.

SellerCrowd would say one person ran the account, and LinkedIn would say they'd moved to a different client.

Every client went through the same steps. Work out who they sell to. Find the targets on the brand side, the agency side, or both. Review them, fill in what's missing, then pare the list down by checking it by hand. Write the outreach, load it into Outreach, the tool that sends the sequences, launch it myself, and update the reporting by hand every week.

A typical list started at maybe 1,500 contacts and ended around 200 I'd checked myself. On the brand side, that meant paring a company down to the handful of titles that could actually say yes. On the agency side, it meant figuring out who at an agency ran a brand's account. That's where it went wrong most.

SellerCrowd would say one person ran the account, and LinkedIn would say they'd moved to a different client. They were still at the same agency with the same title. They'd just been moved, so nothing a tool watches for had changed. The only way to know was to go look, and after enough of those I stopped believing the account field until I'd checked it myself.

Toward the end I started writing a custom line for each person. I'd read up on what they actually worked on and write one sentence into its own column, and the email pulled it in automatically. It moved reply rates on those campaigns. I'm not going to put a number on that from memory.

25 of 132agencies an AI had sorted as a fit that held up when I checked each one

02Then I did it all again, with AI in the mix

From 2023 to 2025 I ended up doing the same work again, this time as a contractor: about 1,400 billed hours of building lists, checking contacts and launching sequences. 2 things were different. I was the one writing the rules for whoever did the research, and AI had started showing up inside the tools.

Neither one fixed the problem I had in 2020.

The rest were the wrong kind of agency or weren't agencies at all, and the AI had labelled them exactly the same way as the 25.

In the summer of 2024, bounces from the agency side started climbing on a campaign, and the tool kept flagging job changes. So I wrote the researcher a note asking them to open every agency contact's LinkedIn before launch. That was my 2020 lesson, written down as an instruction for somebody else.

A few months later a partner sent over 132 agencies an AI had sorted as the right fit for a campaign. Every row came labelled as a fit. I checked them one by one, and 25 held up. The rest were the wrong kind of agency or weren't agencies at all, and the AI had labelled them exactly the same way as the 25.

Early in 2025, on another client's campaign, every contact the CRM had on 4 of the target accounts had changed jobs.

5 years and a lot of better tools later, it was the same story. The sheet looked done before anyone had checked it.

3,486 of 12,704calls on record at one client that were conversations long enough to grade

03Why a filled cell isn't a checked one

That year taught me one thing above everything else. In a spreadsheet, a row somebody checked and a row somebody pasted look exactly the same. They have the same columns and look just as sure of themselves. The account field doesn't tell you whether anyone opened LinkedIn.

AI tools have the same problem at a much bigger scale. An AI tool will fill in almost every cell you give it, because that's what it gets graded on. In most setups I see, nobody has the job of checking whether the row is true.

You feel this first in activity. Your team logs a lot of calls, sends a lot of email, the CRM looks full, and revenue doesn't move. One client I work with has 12,704 calls on record. 3,486 of them were conversations long enough to grade. Most of the rest were short dials, voicemails and rings nobody picked up, and the call log counted every one of them as a call. I wrote up the system that sorts them if you want the build.

I've called this gap the Lie Layer before, the space between what your dashboard says and what's true underneath. I think it starts in the rows, long before anybody builds a dashboard on top of them. Most of my work now is finding where that happens inside a sales team like yours and fixing it, in the CRM and tools they already have.

500 of 673"replied" flags in one CRM that were autoresponders

04What to check in your own CRM

You don't need me for the first pass. Pull 20 contacts your team is about to work and check them by hand. Open the person, the company and the date, and ask whether you'd stake a call on it.

Look at the name field. If it says "Owner", "General Manager" or the company's own name, there's no person there, however full the row looks.

Open the person, the company and the date, and ask whether you'd stake a call on it.

Look at who your CRM says replied last. In one CRM I looked at, 500 of 673 contacts flagged as "spoke last" were autoresponders, and 179 real replies were sitting underneath them where nobody saw them.

And look at the dates. If nobody has checked a contact since it came in, the CRM is still showing you who used to work there.

343 of 922contacts on a client's list that were a job title or the business's own name

05How I build the checking in now

None of this means doing it all by hand again. The systems I build let AI do the finding, and then they put the check exactly where a row is most likely to be wrong.

In August I built a list for a client from a spreadsheet of 1,470 local businesses. Before anything got looked up or paid for, a script read every name field. On the bigger tab, 343 of the 922 contacts weren't people. 205 were a job title typed where a name goes, and 138 were the business's own name. Only an email that came back confirmed valid could go into a sequence, and in the end 486 businesses had one.

Then a person still reads the rows. On another client's CRM, an enrichment run marked one of their contacts as deceased and cited an obituary as the source. The obituary was for a different man with the same name. I took that one wrong row as a reason to recheck every update the run had made, all 1,263 of them. About 4% were wrong, and 48 got rolled back.

That's the 2020 job, kept on purpose inside a system that does everything else on its own.

Here are 2 rows from that August list, with the businesses and the people taken out.

Field Row 1 Row 2
Name field a person (removed) the business's own name
Title General Manager none
Email found by an email-finder lookup found at a different company with a similar name
Verification valid, score 100 valid
Checked 2026-08-05, 01:21 UTC 2026-08-05, 01:23 UTC
Kept yes email removed, phone only
Goes to email sequence call list

If you pull those 20 rows out of your own CRM and don't like what you find, book a call.