
Lead Stack – Exclusive Car Leads, Matched and Delivered Automatically
Lead Stack is my own business: it takes enquiries from motorists who want to scrap or sell a car, matches each one to a single buyer who covers that postcode, and delivers it within moments by email, text and an agents' portal. Buyers pay with prepaid credits. I built the whole platform, from intake and matching to billing, the admin and an AI phone receptionist, and moved it off WordPress onto its own infrastructure.
Jump to a section

Built with
- Node.js
- Express.js
- MongoDB
- Mongoose
- Redis
- Stripe
- Nodemailer
- React
- Vite
- Tailwind CSS
- Next.js
- Twilio
- OpenAI
- Claude API
At a glance
What it is
my own business, selling exclusive scrap and salvage car leads to vehicle buyers across the UK
Who it serves
motorists who want to scrap or sell a car, and the collection agents and buyers who want to buy it
What I built
the whole platform: lead intake, matching, delivery, credits and billing, an agents' portal, an admin, and an AI phone receptionist
Status
trading, on its own platform since July 2026, after starting life as a WordPress system
How the business works
Every day, motorists go online looking to scrap an unwanted car: an MOT failure, a non-runner, an accident write-off. Collection agents and salvage buyers want exactly those cars, but finding sellers themselves means running their own advertising and websites.
Lead Stack sits in the middle. Consumer sites I run, plus partner sites, take the enquiries. Lead Stack checks each one, finds the right buyer for that car and postcode, and sends it to them within moments. The buyer calls the motorist, agrees a price and buys the car, keeping the whole margin. Lead Stack never quotes the customer and never takes a commission on the car. Buyers pay for leads with prepaid credits.
Motorists
describe their car once and get a call from a buyer who covers their area.
Buyers
choose the postcodes they cover, and receive every matching lead exclusively, by email and text.
Lead Stack
runs the campaigns and the platform, and earns from the credits buyers buy.
The rules that make it fair
One lead, one buyer. Every lead goes to exactly one buyer. It is never sold twice.
Coverage is precise. Buyers pick postcode areas and can exclude districts within them. They can also say which makes and models they prefer, and get priority on those cars.
The same car isn't charged twice. If a vehicle comes back, it only goes to a buyer who hasn't already had it.
Bad leads are put right. If a number is wrong or the car has already gone, the buyer reports it. The team reviews it and returns the credit, once per lead.
Nobody pays for leads they can't receive. When a buyer's credits run out, their leads pause until they top up.
The platform behind it
Taking leads in
For the business: a lead that arrives at 2am is handled the same way as one at 2pm.
Under the hood: leads arrive from the consumer sites, from the AI phone line, and from staff entering phone enquiries in the admin. Each lead is given a customer reference, recorded with where it came from (including which advertising channel brought the visitor), and placed on a job queue. The sender gets an instant answer, while the queue works through the lead in the background and retries automatically if anything fails.
Matching each lead to one buyer
For the business: leads go to buyers who can actually collect the car, and every eligible buyer gets a fair share.
Under the hood: the matcher finds every buyer with credits (or an agreed invoice arrangement), leads switched on, coverage that includes the postcode, and no previous lead for that vehicle. Buyers with a matching make or model preference go first. Among the rest, the choice is weighted at random, with an optional priority boost. If nobody covers the area, the lead is passed to a partner buyer, with retries and an alert to the team if that fails.
Delivering it
For the business: the buyer can call the motorist while they're still thinking about their car.
Under the hood: the buyer receives the lead by email and by text, on up to three phones. It also appears in their portal with the vehicle details: registration, make and model, year, fuel, MOT and mileage where known. Every delivery is written to an audit log.
Credits and billing
For the business: buyers pay up front, nobody chases invoices, and buyers never run dry by accident.
Under the hood: buyers buy credit packs by card through Stripe, with a bonus on their first pack, where one credit is one lead. Auto-renew is on by default: when a balance falls low, the saved card is charged for a new pack. It checks again on a schedule, avoids double charges, and pauses after repeated declines. Larger buyers can be set up on agreed per-lead pricing, invoiced afterwards, and packs can be offered to named customers only. Each lead is stamped with its value at the moment it's delivered, so later price changes never rewrite history.
An AI phone receptionist
For the business: calls from motorists are answered even when the team is busy or the office is closed.
Under the hood: the phone line connects to a real-time AI voice agent. It looks up the car from its registration, takes the caller's details and submits the lead. If someone is chasing an existing enquiry, it finds their lead and passes a message to their buyer. It is never allowed to quote a price; that's the buyer's job.
Running the business
For the business: the numbers, the buyers and the problems are visible in one place.
Under the hood: the admin has reports by lead source, buyer, area, vehicle and time, with revenue and rejection rates. It also covers buyer accounts, leads (rejecting, crediting, redistributing and exporting), credit packs, settings, and email and audit logs. An outreach module helps recruit new buyers, with email and text campaigns, unsubscribe handling, and an AI assistant to help draft them. Buyers get low-credit warnings and a daily balance summary, and the team gets lead totals through the day.
From WordPress to its own platform
Lead Stack began as a WordPress system, with distribution and subscriptions handled by WordPress and WooCommerce. As the business grew, I rebuilt it as a standalone platform with direct Stripe billing, a proper job queue and its own portal. A migration script moved the accounts, leads and payment records across from the WordPress database. The intake interface stayed compatible, so the sites sending leads didn't need to change. The new platform has run on my own infrastructure since July 2026.
Architecture
leadstack.biz: a static Next.js marketing site, which reads live pack prices from the API.
The agents' portal and admin: a React single-page app.
The API: Node.js and Express on MongoDB, with a Redis-backed job queue for lead processing and scheduled jobs for renewals, warnings and digests.
The call agent: a separate Node.js service bridging the phone line to a real-time AI voice model.
Payments: Stripe, with saved cards for auto-renew and signed webhooks.
Technical stack
For readers interested in the technology:
Node.js and Express, MongoDB with Mongoose, Redis with Bull queues, node-cron, Stripe, Nodemailer with email-to-SMS, React 19 with Vite and Tailwind CSS, Next.js for the marketing site, Twilio and a real-time OpenAI voice model for the call agent, and Anthropic's Claude for outreach drafting.
Need a system that runs while you sleep?
Lead Stack matches, delivers and bills around the clock, with people stepping in only where judgement matters. If part of your business could run like that, let's talk.
