Local Business Prospect Sweep

Find local businesses in a niche and area, qualify their online presence, and build a scored lead sheet with verified contacts and a personal opener for each.

A real workflow from the Magister template catalog — the same steps a dedicated agent executes for your brand, shown in full before you run anything.

What you provide

The steps, in full

  1. 1

    Load the offer and exclusions

    Read BRAND.md and PLAN.md for the offer, the ideal customer, and the voice. If resources/workflow-results/local-prospects/sheet.json exists, read the spreadsheet id it records and load that sheet's Do not contact tab with magister_integration_read (service=google_sheets); otherwise start with an empty exclusion list. Note which connections are available (google_sheets, hunter) so later steps degrade honestly.

  2. 2

    Discover businesses

    Load magister-dataforseo and call magister_integration_read with service=dataforseo: POST serp/google/maps/live/advanced for niche in location (one task per live call; add a second nearby-area query only if needed). The requested maximum is max businesses: if that is blank, not a whole number, or still shows the placeholder braces, use 20, and never keep more than 60 businesses. Deduplicate by place_id, and by website domain only when the website is the business own site (never merge businesses that share a facebook.com, instagram.com, linktr.ee, or booking-platform URL); drop permanently closed listings, obvious national chains, and anything on the exclusion list. Record name, category, rating value and votes_count, website url, phone, address, place_id, and is_claimed.

  3. 3

    Qualify the first half

    For the first half of the list, classify website status as none, social-only (Facebook, Instagram, Linktree, booking page), weak, or modern. For businesses with a site, load magister-firecrawl and scrape the homepage and the contact or about page: check for separate service pages, city or neighborhood pages, a quote or lead form, click-to-call, and schema markup, and capture any business email and owner name shown. Use magister-web-vitals for a mobile PageSpeed score where the site looks weak. Keep findings factual and specific.

  4. 4

    Qualify the second half

    Apply exactly the same checks from the previous step to the remaining businesses, so every row is qualified on the same basis.

  5. 5

    Find and verify contacts

    For each business without an email from its own site, use magister-hunter domain search when Hunter is connected (skip honestly when it is not). Verify every email with magister-truelist and keep only deliverable ones; mark risky or catch-all results as such. Never guess an address from a name pattern.

  6. 6

    Score and write openers

    Score each business 0 to 100: a weak, social-only, or missing website with healthy reviews (rating at least 4 and a meaningful review count) scores highest; a modern site scores lowest unless a specific gap applies. For each business scoring 50 or more, write a one or two sentence opener in the brand voice that names one or two concrete findings tied to the offer (for example no page per service, no quote form, slow on mobile, strong reviews the site does not show). No flattery, no claims you did not observe.

  7. 7

    Write the lead sheet

    If Google Sheets is connected, load magister-google-sheets. Reuse the spreadsheet recorded in resources/workflow-results/local-prospects/sheet.json, or create one named Local prospects with a Leads tab and an empty Do not contact tab and record its id in that file. Append one row per business with magister_integration_change, with an idempotency key made of the place_id and this sweep start time (the same key for retries within this sweep, a new key on a later sweep): Business, Category, Rating, Reviews, Website, Website status, Findings, Score, Email, Email status, Owner, Phone, Opener, Sources, Date. Without Sheets, write the same columns to resources/workflow-results/local-prospects/<slug>.csv, where <slug> is niche-location lowercased with every run of spaces and punctuation replaced by one hyphen (for example roofers-austin-tx).

  8. 8

    Emit finding

    Summarize the sweep: how many businesses were found, qualified, and given verified emails, the top 10 by score with their opener, where the full sheet or CSV lives, and anything skipped and why. Persist it and call magister_submit_workflow_completion.

Capabilities it uses

DataforseoFirecrawlWeb VitalsHunterTruelistGoogle SheetsFindings

What it won't do without you

Magister workflows draft and prepare autonomously, but anything externally visible — publishing a page, sending an email, changing a campaign — waits for your approval. You can run this template once, or schedule it and review the results as they land.

Fork it into your own agent

Start free: enter your website, get a full marketing audit, and run workflows like this one in your own stack.

More Outreach templates