Buyer's guide ยท Leadlantern
A local lead finder script for agencies that sell to local businesses
Leadlantern is self-hosted Node.js and TypeScript source code for a local lead finder. It finds the businesses of one type in one area, checks what each public website lacks, and scores every business for the service you sell. You send the owner a report page under your own brand with a first message that a person reads and approves, then follow each business through a pipeline to a signed client.
What you get
The full source code
The Node.js and TypeScript core, the operator console with its source, tests, an .env.example and the documentation.
Self-hosted
One Node.js process and one SQLite file on your own Linux server or VPS.
Two place sources
OpenStreetMap with no key, 40 business types. Or the Google Places API (New) with your own key, up to 60 results per search.
Website check
The home page and up to four contact, about or booking pages: https, phone layout, title and description, structured data, analytics, booking and chat tools, contact form, load time and more. robots.txt is respected.
Opportunity score
0 to 100 for the service you sell (websites, SEO, booking, advertising or phone answering), with up to six reasons in plain sentences.
White-label report page
An unguessable link with your brand, logo and colour that shows what was found and what is missing, with a view counter and noindex. It never shows e-mail addresses or the score.
Pipeline
Seven stages, notes, tasks, deal values and a CSV export.
How an agency wins clients with it
Leadlantern is a tool for your own agency, not a platform you resell: one agency per installation, with no client accounts and no billing.
Find
Pick a business type and an area. Results come from OpenStreetMap or Google Places, and running the same search twice adds nothing new.
Check and score
Each public website is checked, and every business gets a score for the service you sell with reasons you can say in one sentence.
Write
A first e-mail or call script drafted from those reasons, from a template or by AI with your own key. The AI prompt forbids promises of results and fake Re: subjects.
Send
A person reads, edits and sends one message with your name, postal address, an unsubscribe link and the report page link. Or copy it into your own mail app and mark it as sent.
Follow up
Move each business through the pipeline to a signed client. Won leads can show buttons that open the website builder or phone answering service you run for clients (links only).
What it needs to run
Every paid service below is optional and billed to your own account by its provider.
- Node.js 26 LTS (24 or newer also works) and pnpm
- A Linux server or VPS (1 CPU, 1 GB RAM), a domain and https through Caddy or nginx
- Build tools for better-sqlite3 when no prebuilt binary exists
- An ADMIN_SECRET_KEY (32 random bytes) backed up together with the data folder
- Your sender name and a real postal address for commercial e-mail
- Optional, on your own accounts: Google Places API (New), Resend with a verified sending domain, an OpenAI-compatible or Anthropic API key, a Google PageSpeed Insights key
What it does not do
- It is not a map scraper and not a bulk e-mail tool: no bulk sending, sequences, warm-up or mailbox rotation, by design.
- One agency per installation: no tenants, no client accounts, no billing of clients.
- It does not read replies from a mailbox. A person moves the lead to Replied.
- No headless browser, so sites built only in JavaScript can show false missing findings.
- No PDF generation (print the report page to PDF from the browser), no mobile app, and an English interface only.
- Google Places and AI drafts are covered by offline tests against faked servers. Run one search and one draft with your own keys before you rely on them.
- It is not legal advice. You are responsible for lawful outreach in your country.
Questions
Is Leadlantern a map scraper or a bulk e-mail tool?
No. It searches one business type in one area through OpenStreetMap or the Google Places API with your own key, and every message is sent by a person's click. There are no sequences and no bulk sending.
Do I need a Google API key?
No. OpenStreetMap needs no key. The Google Places API (New) is an optional second source on your own Google Cloud account, billed by Google per request. Google details are removed after 30 days, as Google's terms require.
What stops it from sending too many e-mails?
The server refuses a send without a sender name and postal address, to a suppressed address or a do-not-contact lead, and above the limits. Defaults: 30 e-mails a day, 3 minutes between e-mails, 7 days before writing to the same business again and at most 2 unanswered e-mails per business. Each is a setting.
Which e-mail addresses does it store?
Only role addresses a business publishes, such as info@ or hello@. Personal addresses are only counted.
Can several agencies or my clients share one installation?
No. One installation serves one agency, with owner, manager and viewer roles for your team.
How much does Leadlantern cost, and what does the licence allow?
$41, one payment, no subscription. One licence, no tiers: any number of projects and clients, a paid SaaS, every line changed. The only limit is reselling or publishing the source code itself. The services you connect bill you directly. See the licence.
Is setup included?
Yes. We install Leadlantern for you and put in your logo, colours and texts. Bigger changes or new features get a fixed price before we start.
What if it does not work?
Write to us within 14 days. We fix it, usually the same day. If we cannot fix it within 7 days, you get your money back. See the refund policy.