TL;DR: The most reliable way for a freelance web developer to find local clients is to pick one trade in one city, research each business by hand, and email each owner about one specific gap you saw. This post uses plumbers in Leeds as the example. You get a four-signal checklist (listing, site age, reviews, ads), a spreadsheet layout, a good-versus-bad email, and a daily pace that keeps your domain and your name clean.
Most cold emails from freelancers say "I help businesses grow online" and could have gone to anyone. The ones that get answered mention something only the sender could have noticed. This is the manual version of that loop. You need a browser and a spreadsheet.
Why should you pick one city and one trade?
"Anyone who needs a website" is not a market. You cannot research it or write to it.
"Plumbers in Leeds" is a market you can finish. Google Maps shows a few dozen listings, and the same patterns repeat: outdated sites, no booking option, reviews about being unable to reach the business.
Pick a trade where work is local, jobs are urgent, and a website affects whether the phone rings: plumbers, electricians, roofers, locksmiths.
Write the pair down before you do anything else: trade + city. Mine is plumbers in Leeds.
What should you check on every business?
Open Google Maps, search "plumber Leeds", and work through the listings one at a time. Spend about five minutes per business. Check four signals.
| Signal | Where to look | What counts as a gap |
|---|---|---|
| Listing | Google Maps profile | No website link, a website link that is a Facebook page, missing hours, no photos |
| Site age | The website itself, footer, the Wayback Machine | Footer copyright from years ago, no https padlock, layout breaks on your phone, phone number only inside an image |
| Reviews | Maps reviews, sorted by newest | Few reviews, nothing recent, or complaints like "couldn't get through", "no way to book online", "couldn't find their prices" |
| Ads | Google Ads Transparency Center, Meta Ad Library, "Sponsored" results on a Maps search | Running ads that point to a weak page, or no ads at all while competitors have them |
- Site age: the footer year is a hint, not proof. Confirm with the Wayback Machine.
- Mobile: open the site on your phone, not a resized desktop window.
- Reviews: read the three newest and the three lowest. Complaints give you a specific gap.
- Ads: a business paying for clicks that land on a weak page is the strongest opening you can have.
Record what you find in a spreadsheet, one row per business:
| Column | Example |
|---|---|
| Business | Hartley & Son Plumbing |
| Maps link | (URL) |
| Website | Yes / No / Facebook only |
| Site age signal | Footer 2016, no https |
| Mobile | Phone number not tappable |
| Reviews | 41 reviews, newest 5 months ago |
| Review gap | "Hard to get a quote" |
| Ads | None found / running |
| The one gap I'd mention | Phone number is an image on mobile |
| Contact | Name, email |
| Status | Not sent / Sent / Replied / Closed |
| Last contacted | Date |
| Do not contact | Yes / No |
The column that matters most is "the one gap I'd mention". If you cannot fill it in for a business, skip that business. You are not short of plumbers.
How do you write a first email that gets answered?
Write one email per business, about that business's gap. Keep it under 100 words. Ask one low-effort question. Do not attach anything, and do not link to your portfolio.
Here is the version most people send:
Subject: Grow your plumbing business online!
Hi there, I'm a web developer and I help local businesses get more customers with a modern website. We offer SEO, redesigns and more. See our portfolio and packages here: [link] [link]. Let me know if you'd like a quote!
It could go to any trade in any city. The reader has no reason to believe you looked at them.
Here is a version about a fictional plumber:
Subject: Phone number on your Hartley & Son site
Hi Dave,
I was looking at plumbers in Leeds and opened your site on my phone. The phone number sits inside an image, so I couldn't tap it to call, and the footer still says 2016. Two of your recent reviews mention it was hard to get a quote.
I'm a freelance web developer in Leeds. Would it be useful if I sent you a short note on what I'd change first? No obligation either way.
Sam
Sam [surname], [your business name and address]
If you'd rather not hear from me, reply "no" and I won't write again.
The subject names something real, the observation is checkable, the question is cheap to answer, and the sender is identifiable. Dave, Sam and Hartley & Son are fictional.
How many emails should you send, and when do you stop?
Send a few a day. Each one needs five minutes of research, so the pace is natural, and a small steady volume protects your sending domain.
The rules I would follow:
- Send a few personal emails a day.
- If they reply, stop following up and talk to them like a person.
- If they say no, stop. Mark "Do not contact" in the sheet.
- If there is no reply, send one short follow-up after several days, then move on.
- Check the do-not-contact column before every send.
Basic compliance, kept short (and this is not legal advice, so check your own situation):
- Say who you are and give a way to reach you.
- Keep the subject line honest about what is inside.
- Make opting out easy, and honour it every time.
- In the US, CAN-SPAM covers commercial email, including B2B.
- In the UK, PECR and UK GDPR apply. Emailing a limited company about a relevant business service can rest on legitimate interest, but sole traders and some partnerships are treated more like individuals under PECR, so check which type of business you are writing to.
Why not just buy an email list?
Lists are a poor fit for this approach:
- Stale data. Small businesses change addresses, close, and rebrand. A list is a snapshot of someone else's old data.
- Bounces. A high bounce rate hurts the reputation of the domain you send from.
- No context. A list gives you a name and an address, not the footer year or the review that complained about booking. You cannot personalise from it.
- Terms. Many email providers' terms restrict sending to purchased lists. Check your provider's acceptable-use policy before you try.
A list tells you who exists. Research tells you what to say.
Can a tool do the research for you?
This section is optional. Do the first ten businesses by hand so you learn what a real gap looks like. To go faster, Helix (Helix Leads, app.helix-leads.com), automates the research and first-draft step of this same loop. You give it a niche and a city. It runs a local hunt, reads the Google Maps listings, the business websites and the Google reviews, scores the leads, and drafts a first email for each. You still read the draft and decide what to send.
The free plan is called Access. It gives you one real local hunt in your niche and city, with research, scoring and drafts for that first hunt. Sending needs a paid plan, listed on the Helix pricing page. The acceptable use policy, privacy policy and terms are public.
FAQ
How do freelance web developers find local clients without buying email lists?
A freelance web developer can find local clients by choosing one trade in one city and researching each business by hand. Each email then names one specific gap the developer actually observed.
What should I check before emailing a local business about a website?
Check four things: the Google Maps listing, the age and mobile quality of the website, the recent reviews, and whether the business runs ads. Footer copyright year, https and the Wayback Machine show how old a site is. Reviews that mention trouble booking or reaching the business are the clearest signal that a better site would help.
How many cold emails should a freelancer send per day?
A freelancer should send only a few personal emails per day, because each one needs about five minutes of research. Stop contacting a business as soon as it replies or declines, and record the opt-out in a do-not-contact list.
Is it legal to cold email local businesses?
Rules depend on where you and the recipient are, so this is not legal advice. In the US, CAN-SPAM requires an honest subject line, a real sender identity and a working opt-out. In the UK, PECR and UK GDPR apply, and emailing sole traders is treated differently from emailing limited companies, so check the business type first.
Your turn
Comment with your niche and city, and I will tell you which of the four signals I would check first. If you want to try the loop faster, the free Access hunt at app.helix-leads.com runs one real local hunt in your niche and city.
This is the second entry in the Helix build log.



Top comments (0)