Hey IH community!
I noticed a lot of founders and agency owners struggling with B2B lead generation. Buying leads is expensive, and most cloud scrapers get blocked by Google Maps instantly.
So, I built Client Koi—an open-source Chrome extension that runs entirely locally in your browser.
Instead of just scraping Maps, it actually clicks through to the business websites in the background to find their verified email addresses, LinkedIn pages, and Facebook handles. I also added a 2Captcha integration so it can run overnight without you needing to solve picture puzzles manually.
The code is 100% open-source on GitHub, and you can export your leads straight to CSV/Excel for your CRM.
Would love for you guys to try it out and give me some feedback on the UI or feature requests!

Awesome, always was looking something similar.
The local-in-browser approach to dodge the Maps block is the smart part here — that's the bit everyone underestimates. Full disclosure, I built a hosted version of roughly this (LeadGrid, it's mine), so here's where the time actually went for me: the scrape was the easy 20%. The email you pull off a business site is usually info@ or a contact form, and getting the owner's name plus a direct address takes a second enrichment pass. Then once people start cold-emailing the lists, deliverability lives or dies on verifying MX/catch-all before export — otherwise a chunk of the rows bounce and cook your domain. Might be worth baking a verify step into the export. The open-source-and-local angle is a genuinely nice privacy story though.
Curious how the $100/mo pairs with fully open-source and free -- is that a hosted/managed version, support, something else? Also, since this hits Maps directly: how are you handling rate-limiting or CAPTCHA risk as usage grows?
The local-in-browser approach to dodge the Maps block is the smart part here — that's the bit everyone underestimates. Full disclosure, I built a hosted version of roughly this (LeadGrid, it's mine), so here's where the time actually went for me: the scrape was the easy 20%. The email you pull off a business site is usually info@ or a contact form, and getting the owner's name plus a direct address takes a second enrichment pass.
Yo, this is super clean.
I hand-coded the first MVP in about three months. The stack is Next.js + Convex as the backbone. We have many side systems built with Go and Rust, hosted on Google Cloud, for integration and various subsystems that our AI agents use for scraping and generating documents.
built something similar a few weeks back but went the API route instead of scraping the DOM, google places api pulls the business list + website, then n8n hits the site for emails, then runs everything through Hunter io to verify before it goes out. slower to set up than a chrome extension but doesnt break every time google changes their maps layout and you dont risk getting your ip flagged since its all official api calls
ended up packaging mine as a gumroad product for hvac/plumbing leads, $9.9/mo, webhook-based so leads land straight in the customers sheet
curious if you hit issues with maps changing their dom structure on you, thats the main tradeoff im always weighing between scraping vs paying for the api
Running local instead of cloud is the right call for this specific job, we hit the same wall from the outreach side this week. We sourced 300+ leads for cold outreach and the biggest time sink wasn't finding businesses, it was the verified-email step you mention, most scrapers either return a generic info@ address or nothing at all. Curious how your website-crawl step handles sites that don't expose an email anywhere public (a lot of small local businesses only have a contact form). Also, does the export step dedupe against a CRM you've already contacted, or is that left to the user? That's the part that ate the most of our time today.
Open-sourcing a lead-gen tool is an interesting choice — most people in that space go straight to paid SaaS. What made you decide to go open-source first? Curious if that's driven signups to a paid tier, or if it's purely a portfolio/reputation play.
Nice Post
Yo, this is super clean. The background web enrichment for emails and socials is a game-changer—scraping raw Maps data usually leaves you with just phone numbers and generic contact forms, so pulling verified socials right out of the box saves a ton of tab-switching.
A couple quick thoughts/questions for you:
Pacing & Delay Controls: How are you handling rate limits on local IP runs? Adding a simple customizable "delay between searches" slider in the extension UI could help people avoid getting hit with heavy CAPTCHA walls in the first place, even with 2Captcha connected.
Deduplication: Does it check for dupes on export if someone runs overlapping zip codes or categories?
Export Formats: Direct CSV/Excel export is great, but adding a one-click Webhook or direct integration (Instantly, Smartlead, or Airtable) down the road would make this an absolute beast for outbound stacks.
Open-sourcing it is a great move for the community. Starred the repo—congrats on the release, man!
The enrichment/verification points in this thread are the right things to fix before export. The thing I'd add to that list: once the list is clean and outreach actually starts, the next failure point isn't data quality anymore, it's tracking who replied, who went quiet, and who needs a nudge next week. Worth thinking about what happens to a lead the moment it leaves the CSV, since that's usually where the real revenue leaks.
Nice work! Running everything locally instead of through a cloud scraper is a clever approach. I like that it's open source too. Have you found Google's anti-bot measures to be much less aggressive when it's running as a browser extension?
Hey, your product looks solid.
Amazing how you create it as open source and work on everything locally so it is a good thing to people that use lead generation tools without fell suspicious about it. That's great. Good luck to your future.
Really cool project—running everything locally is a smart approach compared to relying on cloud scrapers. One feature that would add a lot of value is lead scoring or confidence ratings for the contact data (for example, indicating whether an email is verified or simply found on a contact page). Another interesting direction would be optional integrations with AI voice platforms like Bland, Vapi, Retell AI, so users could scrape and enrich leads, then seamlessly launch outbound calling campaigns. That would turn it into a complete lead generation and outreach workflow rather than just a scraping tool.
Nice — the "click through to the actual site instead of trusting the Maps listing" step is the part most Maps scrapers skip, and it's where the real emails live. I build a paid tool in the same space (LeadGrid), so I've spent way too long on this exact pipeline.
Two things that bit me that might save you time: catch-all domains will happily accept anything@ and make verification look green when it isn't, so it's worth flagging catch-alls separately so people don't blast a list that silently bounces. And a lot of small local businesses only put an email on their Facebook page, never their site, so the social hop you're doing is worth more than it looks — lean into it.
2Captcha overnight is a clever touch. Are you seeing Maps throttle the local-browser approach much at volume? That's been the endless cat-and-mouse on my end.
I like that you solved more than scraping. Finding verified contact details makes the output much more useful for real outreach.
Nice idea. Running everything locally instead of relying on a cloud scraper is a smart design choice, especially for reducing blocking issues.
I also like that you enrich the data by visiting the business websites instead of only extracting what's available on Google Maps.
Have you considered adding an AI layer to automatically qualify leads (industry, buying intent, company size, contact priority) after the scraping step? That could make the exported list much more actionable for agencies.
Amazing achievement. Great project.
Nice project! Running everything locally is a smart approach for privacy and avoiding reliance on cloud services. It'd be interesting to see features like lead scoring, CRM integrations, and AI-powered qualification added in future versions.
How does it handle rate limiting on the "clicking through to business websites" step? That sounds like the part most likely to get flagged, even running locally.
The local-first approach is an interesting implementation choice, but I'd keep validating what people are actually adopting Client Koi for. The bigger opportunity may not be scraping Google Maps—it may be giving teams a reliable way to build outreach lists they trust without depending on expensive lead databases.
Curious how the $100/mo pairs with fully open-source and free -- is that a hosted/managed version, support, something else? Also, since this hits Maps directly: how are you handling rate-limiting or CAPTCHA risk as usage grows? That's usually the real ceiling on scrapers like this, separate from the enrichment/deliverability point above.
Open-sourcing a lead gen tool instead of gatekeeping it behind a paid API is a solid way to build trust early. Curious how you're thinking about sustainability long-term — donations, a paid tier later, or just building reputation for now?