How it works
1. Source
Four trigger feeds are pulled weekly, and a fifth list covers the gaps.
- IT and sysadmin job postings. From Indeed and LinkedIn.
- Office moves and new leases. From the local business journal and city occupancy permits.
- Form D funding notices. From SEC EDGAR.
- CMMC and HIPAA registrations. From SAM.gov and the NPPES registry.
- A list of 20 to 300 employee companies from Google Maps. It covers any week when the four trigger feeds fall short.
2. Qualify
Filters remove companies under 20 or over 300 employees, companies with 2 or more internal IT staff on LinkedIn, existing clients, competitors, and anything outside the service radius.
Companies with an internal IT team or the wrong headcount get dropped at this step, so no Hunter credit goes to a company that will never sign a per-user contract.
3. Enrich
For each qualified company, the system finds the owner, CEO, COO, or finance lead through Hunter, with BetterContact verifying the address.
Companies that list an IT director are routed to that person with a co-managed pitch.
4. Outreach
Three emails and one LinkedIn connection request over 15 days.
- The opener. It names the job title they posted, the address they are moving to, the round they filed, or the audit date they face.
- The ask. A 30-minute discovery call.
5. Book & track
The Claude API labels each reply positive, question, has-MSP, has-internal-IT, not-now, or unsubscribe.
- Positive reply. It gets a 30-minute discovery call slot.
- Slack message. It carries the job title or lease address that started the thread, the user count from LinkedIn, and any tools named in the job post.
- CRM or PSA record. It stores the trigger, the user count, the current tool stack, and every email sent, so the discovery call starts with a per-user quote already sketched.
Lead sources for managed it services
Ranked by signal quality:
1. IT and sysadmin job postings
A 20 to 300 employee company posting for an IT Manager, Systems Administrator, IT Support Specialist, Network Administrator, or Help Desk Technician has a $60K to $110K budget line approved and a support gap today.
A replacement posting means 60 to 90 days with nobody covering tickets.
- Where it comes from. Indeed and LinkedIn Jobs via Apify actors weekly, plus Google Jobs via SerpAPI, filtered by title and company size.
- The pitch. A managed contract at $100 to $200 per user covers the gap in 2 weeks and costs less than the hire.
Highest intent, and the posting itself tells you the tools they run.
2. Office moves and new leases
A company signing a new lease needs cabling, Wi-Fi, a firewall, and a cutover plan 30 to 60 days before move-in, and the incumbent IT vendor is often left behind with the old building.
- Press sources. The local business journal’s weekly leases column and commercial real estate press releases, via an Apify scraper.
- Permit sources. City certificate of occupancy and tenant improvement permit portals.
Second-highest intent because the deadline is fixed.
3. Funding rounds
A company filing a Form D for a $1M to $20M raise typically grows headcount 30 to 100% within 12 months, and its investors ask for a security posture within the first board cycle.
- Where it comes from. The SEC EDGAR full-text search (free) weekly, with Crunchbase as an optional paid addition.
- Why it lands. Each new hire is a laptop, an identity, and a license, and the founder has no time to run that.
4. CMMC, HIPAA, and cyber-insurance deadlines
- Defense contractors. Registered in SAM.gov with DoD-related NAICS codes, they face CMMC Level 2 requirements in new contracts.
- Healthcare groups. Groups with 10 or more providers in the NPPES registry carry HIPAA obligations with an annual risk assessment.
- Both registries. Each has a free public API or bulk download.
- Cyber-insurance renewals. A third deadline, and insurers now require MFA, EDR, and tested backups on the application.
Renewal dates themselves are private, so the system uses the two registries to find these companies and the insurance questionnaire as the pitch.
5. Company inventory (Google Maps via SerpAPI)
Professional services firms, healthcare practices, manufacturers, construction companies, and nonprofits within 80 km with 20 to 300 employees on LinkedIn.
Labeled volume filler and lowest in intent. The sourcing workflow pulls from it only in a week when the job posts, leases, Form Ds, and registries together produce fewer than 120 new companies.
ICP definition
Filter logic the workflow applies:
| Filter | Rule |
|---|---|
| Company type | Professional services, accounting, legal, engineering, healthcare practices, manufacturing, construction, nonprofits, financial advisory, logistics |
| Size | 20 to 300 employees (proxy: LinkedIn headcount, NPI provider count, job post count, Form D employee field) |
| Radius | Within 80 km of base, or anywhere for a cloud-only service model |
| Trigger type | IT job post, new lease, Form D, CMMC registration, HIPAA registration, or the inventory source |
| IT job post | IT Manager, Systems Administrator, IT Support Specialist, Network Administrator, Help Desk Technician, or IT Coordinator, with no MSP phrases in the description (our MSP, managed service provider, outsourced IT partner) |
| Internal IT | 1 or fewer internal IT staff (proxy: LinkedIn title search at the company) |
| Funding | Form D of $1M to $20M |
| Email tenant | MX record at outlook.com or google.com (Microsoft 365 or Google Workspace) |
| Excluded | Current clients (CRM match), competitors (MSP keyword in the company name or description), companies above 300 employees, residential and home users, government entities (bid process), companies already in an active sequence within 120 days |
Outreach sequence
The four steps
| Step | Day | Channel | Goal |
|---|---|---|---|
| 1 | 0 | Name the job post, lease, Form D, or audit date and the support gap it creates; ask for a 30-minute discovery call | |
| 2 | 3 | Follow-up comparing the posted salary to a flat per-user rate, with the call calendar | |
| 3 | 8 | Connection request referencing the open IT role or the move-in date | |
| 4 | 15 | Breakup with a specific deadline (hire start date, move-in date, or audit date) |
Example step 1 (job posting trigger)
Subject: your [job title] opening
Hi [First name], I saw [Company] posted a [job title] role on [job board] on [post date]. Filling it usually takes 60 to 90 days, and tickets pile up in the meantime.
We run IT for [N] companies your size in [city], covered from day one, at a flat per-user rate that comes in under one salary plus benefits.
Open to a 30-minute call this week to compare the two options?
Expected reply rates
| Row type | Expected reply rate |
|---|---|
| Job post, lease, Form D, and registry feeds | 2 to 5% |
| Company inventory | 1 to 2% |
Both figures are estimates.
- An owner with an unfilled sysadmin role or a move-in date 45 days out. Answers near 5%.
- A SAM.gov registrant with no contract clause yet. Answers near 2%.
IT job postings peak in January and September and drop in late December, so the top of the range shows up in those two hiring windows.
Stack and running costs
| Tool | Purpose | Monthly |
|---|---|---|
| n8n Cloud | Orchestration | $24 |
| Apify | Job board, business journal, and permit portal scrapers | $30 |
| SerpAPI | Google Jobs feed and Google Maps inventory | $25 |
| SEC EDGAR full-text search | Form D funding feed | $0 |
| SAM.gov and NPPES APIs | CMMC and HIPAA registry feeds | $0 |
| Hunter | Decision-maker email finding | $34 |
| BetterContact | Waterfall enrichment + verification | $15 |
| Instantly | Sending + warmup | $37 |
| Claude API | First-line generation + reply classification | $7 |
| Sending domain | Deliverability | $1 |
| Supabase (free tier) | Prospect database | $0 |
| Total | ~$175 |
Crunchbase Pro ($49/month) is an optional addition for MSPs targeting venture-backed companies outside the states where Form D coverage is thin.
BuiltWith or a similar technology lookup ($295/month at the lowest plan) adds tenant and endpoint detection. It is left out of the base build because MX lookup covers the Microsoft 365 or Google Workspace check for free.




