Agent-Run AgencyBuild log · Alex Rowan · Guides

Guide · Alex Rowan · 11 Oct 2026

Building a lead list for a local SEO agency from audit data

Build log

A cold email to a local business works better when it says something specific and true about their website. Audit data gives you that. This guide is how I'd turn a list of local business websites into a prioritised, contactable lead list using the Local SEO Bulk Site Auditor, an Apify Actor, while staying on the right side of accuracy and spam rules.

Disclosure: my agency, Manta Media, publishes this Actor, and I run an email-only local SEO agency myself. I'll only describe the Actor's documented inputs and outputs. My own outreach numbers below come from my build log, not from this Actor's output.

The idea in one paragraph

Collect homepages for one trade in a few cities. Audit them in bulk. Keep the ones with a published email address and at least one clear, fixable issue. Sort by how much there is to fix. Re-check right before you send. Write each email around one or two specific findings.

Step 1: pick a narrow segment

A list of "local businesses" is too broad to write good emails for. Pick one trade and a handful of cities, such as roofers in three mid-sized towns. A narrow list means the same few issues come up again and again, so you can write one good explanation of each and reuse it.

Collect the business's own homepage URL for each, plus the name, trade and city, in a sheet. Skip directory listings.

Step 2: audit in bulk

Open the Local SEO Bulk Site Auditor. Put the homepages in urls. For a lead list, I'd leave includeSpeed off on the first pass. It adds about 10 to 40 seconds per URL and needs your own PageSpeed key. You can run it later on the shortlist.

The cost is $0.004 per URL audited, about $4 per 1,000, with platform usage included and no start fee.

Step 3: export and join

Export the Overview view (URL, score, HTTP status, title, phones, emails, issues, error) and the NAP & schema view to CSV. Join them to your prospect sheet on the URL. Use finalUrl as well as inputUrl, because sites redirect.

Step 4: keep only contactable, real prospects

Filter in this order:

  1. Drop errors. Rows with an error, or an HTTP error (score capped at 20), need a manual look. They're not leads yet.
  2. Keep published emails only. The emails field lists public email addresses found on the page. Only contact addresses the business publishes itself. In my own first week, 92 of the 154 businesses my agents audited had a published email. The rest weren't emailed, even when an address could have been guessed.
  3. Keep rows with at least one clear issue. Use the issues list. Skip prospects where the only findings are marginal.

Step 5: prioritise

The localSeoScore (0 to 100) is a sorting tool. Lower scores usually mean more to fix. Combine it with which issues are present, because some are easier to explain and act on than others:

Finding Field Why it makes a good opener
No LocalBusiness schema schema.localBusiness false Concrete, checkable, clear fix
Phone mismatch napConsistent false Specific and a bit surprising to owners
No valid SSL sslValid false Visible to every visitor
No http→https redirect httpRedirectsToHttps false Simple fix for their host
No phone or address on page phones empty, addressOnPage null Basic, and costs them calls
Title cut off in Google titleLength Easy to show with a screenshot

Pick one or two per prospect. More than that turns a useful note into a report nobody reads.

Sample lead sheet (real run, anonymized)

The column layout I'd use, filled with the six sites from my own test on 11 Oct 2026 (local run scores; names, domains and phones removed):

Business Trade, country Score Email published Top issue to open with Keep?
Site A Roofing, US 87 Yes Schema says Organization, not LocalBusiness Yes
Site B Plumbing, US 77 Yes (a Gmail address) No LocalBusiness schema, no street address on page Yes
Site C HVAC and plumbing, US 100 Yes No issues found No: nothing to say
Site D Dental, SG 89 Yes Title is 11 characters; schema missing address and phone Yes
Site E HVAC, US 94 No Title 182 characters; schema phone doesn't match page No: no published email
Site F Dental, SG 74 No No meta description; server took 13.2 s No: no published email

From six audited sites, three are contactable leads with something specific to say. That's what the filters are for. A perfect score (Site C) isn't a lead, and a site with problems but no published email (Sites E and F) isn't one either, however tempting.

Step 6: verify right before sending

This is the step most lead lists skip. The audit and the email happen at different times, and websites change in between.

When my agents re-checked 30 of my own audits against the live sites before my first outreach batch, 10 cited a problem the business had already fixed. Two had no confirmed issue left and were dropped.

So before each batch:

  1. Re-run the Actor on just the prospects you're about to email.
  2. Keep only issues that still show up.
  3. Drop any prospect with nothing left.
  4. View the page yourself for anything that matters, especially schema on JavaScript-heavy sites. The Actor reads raw HTML and may miss content injected only by JavaScript.

Step 7: write the email around the finding

Keep it short:

  • Who you are and why you're writing
  • The one or two findings, in plain words, from their live site
  • One fix they could hand to their web person, whether or not they hire you
  • A plain offer with prices stated, and no call required
  • Your real name, business name, postal address and a clear opt-out

That last line isn't optional. In the US, CAN-SPAM requires a postal address and an opt-out. In Australia, the Spam Act has its own rules. Read them for the countries you email, and keep a suppression list that every batch is checked against. This isn't legal advice.

Step 8: send small, then adjust

Send a small batch first and read it closely. My first batch was 10 emails, sent by hand after a scripted send timed out. I haven't recorded replies yet, so I can't tell you what response rate to expect, and I'd be wary of anyone who promises one.

What the Actor won't do

  • It doesn't find businesses for you. You supply the URLs.
  • It audits one page per URL and doesn't crawl.
  • It doesn't send email or manage outreach.
  • It makes no claim about rankings, and neither should your email.

The whole workflow

  1. One trade, a few cities, own homepages only.
  2. Bulk audit with speed off.
  3. Export Overview and NAP & schema; join on URL.
  4. Drop errors; keep published emails and clear issues.
  5. Sort by score; pick one or two findings per prospect.
  6. Re-run and verify right before each batch.
  7. Short, specific, compliant emails, sent in small batches.

Audit data won't make anyone reply. It makes sure that what you say about their website is true, specific and useful, which is the minimum a stranger's email should be.

Free

Get the AI Agent Team Playbook

The five agent briefs, the approval gates and the verifier routine from this build, in a free 9-page PDF. No promises of rankings or income.

Get the free playbook