Lead Generation That Actually Works in 2025: A No-BS Playbook for Agencies & Freelancers
Stop copy-pasting from Google. This actionable guide shows how to find local B2B leads, enrich them, write AI-assisted cold emails

TL;DR
- Define one ICP and one offer first.
- Build a clean, local lead list (niche + city), enrich only what improves reply rate, and send short, specific emails.
- Measure the whole funnel: Click → Sign-up/Activation → Reply → Meeting → Revenue.
- Automate what repeats; never automate what requires judgment.
Why most lead gen fails (and how to avoid it)
Lead gen dies in three places:
- No sharp ICP or offer. “We build websites for everyone” = nobody replies.
- Dirty lists. Wrong industry, duplicates, closed businesses, missing contact info.
- Bloated outreach. Walls of text, zero relevance, no clear ask.
Fix those and even a small budget wins.
Step 1 — ICP & offer (10 minutes of painful honesty)
Write one sentence:
“We help [who] in [location/market] achieve [result] with [offer] in [time].”
Examples:
- “We help dental clinics in Kraków get 30+ booking requests/month with a conversion-optimized site + local ads in 4 weeks.”
- “We help real estate agents in Warsaw generate qualified seller leads using Google Maps data + AI cold emails.”
Guardrails
- If you can’t name 20 businesses that match your ICP in a single city, the ICP is too vague.
- If your offer can’t be delivered twice in parallel, it’s not ready for outreach.
Step 2 — Build a clean list (fast, not sloppy)
You want local + recent + reachable. That’s why Google Maps data is king for SMB B2B.
How to do it
- Choose niche + city (e.g., Dentists, Kraków).
- In LeadCompass, run a search and collect: name, address, website, phone, hours, rating, coordinates.
- Deduplicate by website/phone and fuzzy name+address.
- Optional enrichment (only if it improves replies):
- Add domain emails (BYO Hunter/Snov key)
- Add category sub-type (e.g., “cosmetic dentistry”)
- Note anything visible in reviews (“open late”, “free parking”, “new branch”)
Quality checklist
- 0% personal data scraping; business-public only.
- Remove multi-location chains (unless that’s your ICP).
- Keep a column “Why them?” (one-line reason you picked them).
Step 3 — Write emails people answer
Short, specific, and obviously human. AI helps, but you decide the angle.
Structure (85–120 words)
- Subject: Plain and literal.
- Opening line: One observation (from their listing/site/reviews).
- Value: 1–2 bullets on the outcome you deliver.
- Proof: 1 number or mini-case.
- Ask: One simple next step (15-minute call? “Reply with yes”?).
Template (steal this)
Subject: Quick idea for {{business_name}} Hi {{first_name}} — noticed {{1-sentence observation: “you’re open late / many 5★ reviews for implants / no online booking link”}}. We help {{niche in city}} get {{core result}} with {{your offer}}. • Example: {{proof point / metric / mini-case}} • Time to impact: {{X weeks}} If this is useful, would a 15-minute chat this week be crazy? Happy to send a short plan first. – {{Your name}}
AI assist
In LeadCompass, generate 3 variants per lead:
- A: Outcome-first (“30+ booking requests”)
- B: Problem-first (“no online booking link”)
- C: Social-proof-first (mini-case)
A/B at the sequence level; keep the winner.
Step 4 — Send safely (and land in Primary)
Do not blast 500 emails from a brand-new domain.
Deliverability basics
- Use your own Gmail/Outlook/SMTP (OAuth) or a warmed domain/subdomain.
- DKIM/SPF/DMARC aligned.
- Daily cap: 50–120 emails/domain/day with random delays.
- Always include an unsubscribe line and a physical address.
- Track bounces < 3%, spam reports < 0.1%.
Sequencing
- Step 1: initial email (day 0)
- Step 2: short bump (day 3)
- Step 3: value drop (checklist/template/link) (day 7)
- Step 4: breakup (day 12)
Bump template
Subject: Re: quick idea for {{business_name}} Just circling back — worth sending a 3-bullet plan for {{result}}? If not, all good — I’ll close the loop.
Step 5 — Measure the whole funnel
If you can’t see the leaks, you can’t fix them.
Core metrics
- List quality: valid contacts %, niche fit %
- Send → Open: aim 40–60% (with good data + warmed domain)
- Open → Reply: aim 5–12%
- Reply → Meeting: aim 30–50%
- Meeting → Close: aim 15–30%
- CAC: (ad spend + tools + time) ÷ deals
- Payback period: CAC ÷ monthly gross margin from plan
Rule of thumb
- If Open < 35%, fix deliverability/subject.
- If Open OK but Reply < 4%, fix offer/observation relevance.
- If Reply OK but Meetings < 25%, fix the ask (make it smaller: audit, quick video, 15-min slot).
- If Meetings OK but Close < 15%, fix proposal clarity and risk reversal (trial, guarantee, setup fee later).
Step 6 — Automate (only after it works manually)
Automation multiplies what’s already happening—good or bad.
Simple, safe workflow (n8n/Make)
- Trigger: LeadCompass export completed
- Step 1: Enrich (optional) via your API keys
- Step 2: Generate AI variants for cold email (keep 3)
- Step 3: Push to your mailer (BYO SMTP) with daily caps
- Step 4: Track replies → move card in your pipeline
- Step 5: Create task for follow-up or call
Pipeline (Kanban)New → Qualified → Emailed → Replied → Meeting → Proposal → Won/Lost
Keep fields tiny: business, contact, observation, last email date, next action.
60-minute launch plan (from zero to sending)
Minute 0–10: Define ICP + offer, pick one city.
10–25: Pull 200 leads (Dentists Kraków) in LeadCompass.
25–35: Clean + dedupe; add a one-line observation column.
35–45: Generate AI email variants; paste your proof metric.
45–55: Connect Gmail/Outlook (OAuth), set daily cap 60.
55–60: Send first 20, schedule bumps. Done.
Tomorrow: send the next 40. End of week: you’ve touched 200.
Paid traffic? Use it to feed the pipeline—not to replace it
Paid helps when:
- You target high-intent search (Google exact: “google maps to csv”, “baza firm z google maps”).
- You use Meta to retarget visitors and nudges to finish exports or start trials.
- You measure Activation (first export/AI email) as your north-star, not just sign-ups.
Event order (Meta AEM)Purchase > AddPaymentInfo > Activation > SignUp
Compliance & etiquette (EU/PL reality check)
- B2B outreach is allowed with conditions. Always include company details and an opt-out.
- Only use public business data; no scraping personal profiles.
- Store the source of each field (lineage). If asked, you can show where it came from.
- Respect do-not-contact requests immediately.
Common mistakes to avoid
- Spray-and-pray niches. One ICP per week until you hit traction.
- Over-enrichment. If it doesn’t move reply rate, don’t pay for it.
- Attachments and links in the first email (often hurts deliverability). Use them in the bump after a reply.
- Hiding pricing forever. A simple range removes tire-kickers and speeds up serious deals.
How LeadCompass fits (without hype)
- Finding leads: Search by niche + city, collect full business data in under a minute.
- Quality: Deduplication + confidence scoring + multi-source enrichment (optional).
- Outreach: AI generates multiple cold-email variants tailored to the niche and observation.
- Workflow: Export to CSV/Excel or push to your mailer/CRM via webhook.
- Speed: First 20 leads free; scale to hundreds in a few clicks.
If you already have a working manual process, LeadCompass turns it into a repeatable pipeline. If you don’t, it helps you discover whether your ICP + offer resonate—fast.
Final checklist
- One ICP, one offer, one city
- 200 clean leads (name, site, phone, hours, ratings)
- One observation per lead
- 3 AI email variants (outcome / problem / proof)
- BYO SMTP with caps and unsubscribe
- Track Open → Reply → Meeting → Close
- Automate only what worked manually
Ready to try it?
Build your first list in 60 seconds and generate AI-written emails at LeadCompass.app—your first 20 leads are on us.