Lead intelligence for service businesses: scoring, enrichment, and timing signals
A scraped list is raw material, not a book of work. How lead scoring, multi-source enrichment and timing signals build a layer that feeds every channel.

- A raw export answers 'who could I contact'. Intelligence answers 'who should I contact, why, and right now'.
- Score fit and intent separately. Fit decides whether to sell at all, intent decides whether now is the moment.
- Enrich from multiple sources and reconcile conflicts. One provider is a single point of failure on data quality.
- Triggers are the timing engine: a property changing hands, a permit on record, or a dropped contractor turns a cold account warm.
- Build the intelligence layer once and feed outbound, direct mail, and paid audiences from the same scored source.
A list tells you who you could contact. Lead intelligence tells you who you should contact, why them, and why now. The difference is the entire return on your outbound.
Most teams confuse a data export with a book of work. They scrape 10,000 property managers, builders, and facilities contacts out of a maps listing, drop them into a sequencer, and wonder why reply rates crater. A raw export is unscored, unenriched, full of duplicates, and blind to whether anyone on it has work to hand out this month. Our lead intelligence work exists to fix exactly that gap, turning a flat list into a ranked, enriched, trigger-aware asset that every downstream channel can act on.
This is the playbook: fit scoring, multi-source enrichment, timing and trigger signals, deduping and routing, and the part that pays for all of it, feeding one intelligence layer into outbound, direct mail, and paid at the same time.
The list versus intelligence gap
A name, a number, and an address are the easy part. Every competitor working your city can buy the same records from the same places. What separates a list that books jobs from a list that burns your sending domain is the layer wrapped around each record: whether this account hands out the kind of work you want, and whether something just happened that makes this the week to call. The contact information is table stakes. The intelligence wrapped around it is where the advantage lives.

The mental shift is from quantity to ranked quality. 10,000 unscored contacts is a liability that drags down deliverability and wastes the time of whoever is making the calls. 500 accounts that fit the work you want and show a live trigger is a season of real conversations. The job of an intelligence layer is to perform that compression for you, every week, automatically.
Step one: score fit and intent separately
Fit and intent are different questions and must never be collapsed into one number. Fit asks whether you want this account's work at all. Intent asks whether now is the moment. A perfect-fit account with no intent is a check-back-later target, a high-intent account that fails fit is a distraction, and the account that scores high on both goes straight to the top of the call list.
- 01Build the fit score
Score each account against the jobs you actually want: property type, portfolio size, distance from your yard, and whether they hire out the trade you run. Weight it on what your best jobs of the last year had in common, not on what feels aspirational.
- 02Build the intent score
Score what just happened: a permit pulled, a property changing hands, a building added to a manager's portfolio, weather that just created the problem you fix. This is the dimension a static list cannot see and the one that decides timing.
- 03Combine into a routing tier
Cross the two scores into tiers. High fit plus high intent is Tier 1 and gets the most expensive treatment. The matrix, not a single blended score, decides who gets what.
Enrich from multiple sources
No single data provider is right often enough to trust alone. Coverage gaps and stale records are a structural fact of every vendor, so we enrich from multiple sources and reconcile the conflicts rather than betting the whole list on one feed. When two providers disagree on who runs the account, how many properties they hold, or which email is live, the reconciliation logic decides, and the record gets a confidence flag.

- Account basics: property type, portfolio size, where they sit relative to your service area, and who owns whom, cross-checked across providers.
- Current vendors: who they use for this work today, which doubles as a fit signal and a trigger the moment it changes.
- Contact-level data: verified emails and direct dials, validated before send so bounce rates stay low and the sending domains stay healthy.
- A confidence score on each field, so downstream channels know which records are safe to spend a direct mail package on and which are not.
Multi-source enrichment is unglamorous and it is the difference between a list that books work and a bounce-rate problem. One provider is a single point of failure on data quality, and data quality is what every downstream decision compounds on top of.
Step three: intent and trigger signals
Triggers are the engine of timing, and they are what turn a cold account warm. The 3 highest-signal triggers for a service business are a property changing hands, a permit or inspection on record, and a vendor change, because each one opens a budget, a mandate, or a problem at a knowable moment.
- Ownership and management changes: a building that just sold or switched managers means someone new is picking every trade from scratch.
- Permits and inspections: a filed permit or a failed inspection means the work is dated, scheduled, and has to go to somebody.
- Vendor changes: an account that just dropped the contractor it used, or brought in an adjacent trade, is actively re-picking and you can walk into that.
A trigger is what makes outreach feel like timing instead of luck. An outbound email that opens with a real, current event at the account reads as relevant rather than templated, and the same trigger justifies the cost of a bespoke direct mail package, because you only spend a package on accounts where something is actually happening right now. The direct mail post walks through that package and the account math behind it.
Keeping the intelligence fresh
An intelligence layer is perishable in a way a list pretends not to be. People change jobs, buildings change hands, vendors get swapped, and a job that was urgent in March is finished by June. Contact data decays every month, and the decay compounds: a list nobody refreshes gets steadily more wrong, and the records that go wrong first are often the most valuable ones, because the people on them are the ones moving. A scored list you built once and never refreshed is just a list with extra steps.
Freshness is a process, not a purchase. We re-verify contact-level data on a rolling schedule, re-pull triggers continuously so the intent score reflects this week rather than last season, and expire stale signals automatically so a permit from last season stops inflating a score it no longer deserves. The fit score is stable and rarely moves. The intent score should be treated as a live reading that decays the moment you stop refreshing it.

Step four: dedupe, route, and feed 3 channels
The intelligence is only worth as much as its delivery. Duplicates inflate counts, double-touch prospects, and corrupt every metric downstream, so deduping across sources and against your own CRM or job book is non-negotiable before anything routes. Then the scored, deduped record flows to the channel its tier deserves.
- 01Dedupe across providers and against the CRM, merging records and keeping the highest-confidence field for each.
- 02Route Tier 1 (high fit, high intent) to bespoke direct mail and a senior-touch outbound sequence.
- 03Route Tier 2 to standard outbound cadences with trigger-led openers, sent on infrastructure built for placement, as covered in the cold email deliverability post.
- 04Push the full scored set as a custom audience into paid, so ad spend concentrates on accounts that already passed fit.
Routing is where most teams quietly leak the value they just built. A Tier 1 account that drops into the same generic sequence as everyone else wasted every dollar of scoring and enrichment that earned it the tier. The rule is simple: the more an account scores, the more expensive and human the treatment it gets. Tiering exists to concentrate your most costly motions, the bespoke report and the senior touch, on the handful of accounts where they will actually convert, and to keep cheap automation away from buyers who deserve better.
We build the scored, enriched, trigger-aware layer and wire it into every channel you run.
This is the payoff that makes the whole build worth it: one intelligence layer feeds 3 channels at once. The same scored account that gets a sealed report by courier also gets a trigger-led email and sits inside your paid ads custom audience, so the person deciding who to call meets a coordinated message everywhere they look instead of 3 disconnected campaigns guessing at the same person. Build the intelligence once, spend it everywhere. That coordination is what turns scattered marketing into a system, and it starts with refusing to call a scraped export a book of work.
A list is who you could email. Intelligence is who you should mail, call, and target, and why this week. Build the second thing.
Shivam Bindal
Written by Shivam Bindal. Founder, Markingo.



