72 hoursthe window most local buying signals stay hot before the trigger goes cold and you are competing on offer, not timing

Most "local prospecting" advice is written by people who have never sold anything to a plumber. They lift a SaaS playbook, swap the logos for a ZIP code, and act surprised when funding-round triggers do not fire on a family-owned dental office. Local B2B has its own signal layer. It is louder and cheaper than anything Apollo will ever sell you, but you have to stop pretending Main Street runs on Crunchbase.

This is the taxonomy we use at Milo to score every local prospect before a single email goes out. It is opinionated, and it is the same framework we teach customers who are running outbound to SMBs for the first time.

What counts as a buying signal?

The clearest working definition comes from the intent-data teams that pioneered this vocabulary. UserGems calls a signal "an observable event that indicates a prospect is a good fit and likely to buy soon." Outreach frames signals as "trigger events that reveal timing." Put more plainly, signals answer the question "why now?" for a given account.

UserGems on buying signals Read the UserGems primer.

The three local why-nows

For local B2B the "why now?" is usually one of three things: a visible operational gap, a growth move, or an environmental trigger. The trick is knowing which specific artifacts each of those produces on the public internet.

What signals make up the Milo local-signal taxonomy?

  • Signal
    No website
    What it means
    Business is running without a digital storefront
    Where it appears
    Google Business Profile with no site link
    Freshness
    Static
  • Signal
    Thin online presence
    What it means
    One-page site, no SSL, or Facebook-only
    Where it appears
    Domain WHOIS, site crawl
    Freshness
    Static
  • Signal
    Weak reviews
    What it means
    Under 20 reviews or rating below 4.0
    Where it appears
    Google Maps, Yelp
    Freshness
    Weekly drift
  • Signal
    No Google Business Profile
    What it means
    Unclaimed or missing listing
    Where it appears
    Google Maps search
    Freshness
    Static
  • Signal
    Hiring signal
    What it means
    Open role for a function you augment
    Where it appears
    Indeed, LinkedIn, company site
    Freshness
    Days to weeks
  • Signal
    Storm or weather event
    What it means
    Roofing, tree, restoration demand spike
    Where it appears
    NOAA, local news
    Freshness
    Hours to days
  • Signal
    Permit filed
    What it means
    Construction, HVAC, electrical scope
    Where it appears
    City permit portals
    Freshness
    Days to weeks
  • Signal
    Seasonal window
    What it means
    Tax season, back-to-school, fiscal year end
    Where it appears
    Calendar
    Freshness
    Predictable
  • Signal
    Ownership change
    What it means
    New owner listed on state records
    Where it appears
    Secretary of State filings
    Freshness
    Weeks
  • Signal
    Menu or service change
    What it means
    New service line advertised
    Where it appears
    Site diff, social
    Freshness
    Days
The ten signals Milo watches for local B2B prospecting.

What is the difference between static and event signals?

Two categories, two playbooks. Static signals (no website, weak reviews, no Google Business Profile) describe a persistent gap. They are always true until the business fixes them, so competition on these signals is a race on quality of outreach, not speed. Event signals (permits, storms, hires) have a decay curve. A roofing lead 48 hours after a hailstorm is worth ten leads a week later. If your workflow cannot reach event signals inside their freshness window, treat them as static and stop paying premium prices for real-time feeds.

The 72-hour rule

For event signals, if you cannot personalize and send within 72 hours of the trigger, you are competing on offer, not timing. Choose your signals accordingly.

How do you score a signal with the Milo FTR Score?

Not every signal is equal. Score each one on three axes and add them up. We call this the Milo FTR Score: Fit, Timing, Reachability. Each axis scores 1 to 3, so a signal maxes at 9 out of 9. Anything under 6 out of 9 goes to a nurture list, not the send queue.

  • Fit (1 to 3): does the signal imply the business needs your specific offer, or is it just generic pain?
  • Timing (1 to 3): how fresh is the trigger, and how narrow is the window before it goes cold?
  • Reachability (1 to 3): can you contact the decision maker, or does the signal only touch a proxy?

A worked score: clinic hire vs weak reviews

A hiring signal for a "Marketing Director" at a 30-person clinic is a strong fit if you sell fractional marketing, a strong timing signal (they will pick a partner in 6 weeks), and moderately reachable (the CEO usually approves). A weak-reviews signal for the same clinic scores lower on timing and often lower on reachability if the front-desk manager is the reader.

How do you go from signal to first meeting?

  1. 01

    Detect

    Pull candidates that match at least one signal, not a generic ICP filter. In Milo this scopes to public map data and reads their public web footprint that tags each business against the taxonomy above.

  2. 02

    Enrich

    Confirm the signal is real. A missing site on Google Business Profile is not proof; check WHOIS, LinkedIn, and Facebook. Discard businesses that already fixed the gap.

  3. 03

    Score

    Apply the Milo FTR Score (Fit + Timing + Reachability, each 1 to 3). Anything under 6 out of 9 goes to a nurture list, not the send queue.

  4. 04

    Personalize

    The email must reference the specific signal in the first line. "Noticed you are running without a site" beats "hope this finds you well" every time.

  5. 05

    Send from a real inbox

    Do not blast from a fresh domain. Warm up, throttle, and route replies to a human. Milo does this from your own Gmail or Outlook.

  6. 06

    Book

    One CTA per email. A Cal.com or Calendly link, or a soft ask for a reply. Do not stack asks.

What signals should you skip on purpose?

Some signals popular in mid-market outbound (technographic changes, Series B announcements, LinkedIn engagement spikes) do not translate to local B2B. A hair salon does not use a CDP. A local law firm does not raise a Series B. Chasing these signals for local accounts wastes credits and produces awkward personalization. If a signal cannot plausibly apply to a 5 to 50 person business in your target vertical, drop it.

Signal fatigue is real

Sending five outreach threads to the same business across five signals in a month reads as spam, no matter how personalized each one is. Cap outreach at two signals per business per quarter.

How does Milo automate this?

Milo runs the whole taxonomy on autopilot. You describe your ICP in plain English, and we discover businesses on the public map, read their public footprint, tag every applicable signal, score the fit, draft the email, and send from your inbox. You pay per credit, not per seat, and the first 100 credits are free.

See the pipeline end to end How Milo works.

Are buying signals the same as intent data?

Intent data is one flavor of signal, usually second-party topic-consumption data from B2B publishers. Signals is the broader category that also includes hires, permits, reviews, and any other observable trigger.

Do buying signals work for very small businesses?

Yes, but the signal mix changes. The corporate signals (funding, exec hires) largely disappear and are replaced by the local operational signals in the table above.

How many signals should I track at once?

Start with two. Pick one static signal that maps to your offer and one event signal you can react to fast. Add more only after each is producing meetings.

Where do storm and permit signals come from?

NOAA publishes storm event data, and most US city and county governments publish permit records through open portals. Both are free and public.

What is the strongest single signal for local B2B?

It depends on your offer. For web agencies, "no website" is unmatched. For roofers, storm events. For staffing firms, open roles. Match signal to offer, not the other way around.