Carpet Cleaning Leads: Buy Them or Reply Faster With AI?

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Carpet Cleaning Leads: Buy Them or Reply Faster With AI?
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Carpet Cleaning Leads: Buy Them or Reply Faster With AI?

Buying carpet cleaning leads pays only when your cost per booked job, not per lead, sits well below the gross profit on a typical job. For most small firms the cheaper first move is replying to every enquiry already coming in within minutes, because it applies to every source, including the free ones.

A lead you pay for and answer three hours later can be a lead another firm has already booked, so slow replies make every source look worse than it is. Log your own reply times and booking rates before judging any source; a paid one can still earn its place once the numbers are yours.

Follow me on Instagram@sagnikteaches

Cost per lead hides the number that decides it

A $25 lead sounds cheap until you divide the month's spend by the jobs it produced. The figure to track is cost per booked job: everything spent on a source in a month, divided by the jobs booked from it. The figure to compare it with is the most you can afford to pay for one job, which I would set as gross profit per job minus the profit you want to keep.

Connect on LinkedInSagnik Bhattacharya

Take a two-van firm with illustrative numbers, not market averages; the logs, enquiries and cases later on are invented in the same way. The average job is $260. After technician time, solution, fuel and van wear it leaves $150 of gross profit. The owner wants to keep $60 of that after marketing, so the ceiling is $90 per booked job ($150 minus $60). One month of figures, with replies currently taking about three hours:

Subscribe on YouTube@sagnikteaches
SourceMonthly spendEnquiriesJobs booked now (cost per booked job)Jobs booked if replies take under ten minutes (cost per booked job)
Pay-per-lead marketplace$90036 leads at $256 ($150)8 ($113)
Pay-per-lead search ads$75015 leads at $505 ($150)7 ($107)
Facebook lead-form ads$40020 leads at $204 ($100)5 ($80)
Google Business Profile, website, referrals$040 enquiries14 (no lead fee)19 (no lead fee)

Read the "now" column first. The three paid sources spent $2,050 and booked 15 jobs, about $137 each, against a $90 ceiling. Not one clears it. The free row booked 14 jobs from 40 enquiries with no lead fee, but those enquiries are being answered slowly too.

The right-hand column rests on one assumption: that answering in under ten minutes instead of about three hours lifts bookings on every source by a third, rounded to whole jobs. I have no benchmark behind that figure. It is a guess to test, and the log further down shows how to replace it with your own. On the guess, the free sources add five jobs, worth $750 of gross profit (5 × $150), with no extra lead fee. Facebook slips under the ceiling at $80. The marketplace ($113) and the search ads ($107) stay above it.

That is the usual shape of the answer. Speed works on all four rows and carries no per-lead fee, while each paid row still has to clear the ceiling on its own. If a source is still over the line after fast replies, cut its budget or drop it. If it sits a few dollars over and the diary is quiet, keep it on a cap while you collect more data.

What each lead source bills for and what you can claw back

The four rows above behave differently when a lead turns out to be useless, and that changes how hard you should chase each one.

SourceYou are billed forIf a lead is bad
Pay-per-lead marketplace (Thumbtack is one example)Each lead that matches your settings, whether or not you win the job, usually against a budget you set. The same request may also reach rival firmsRefund and credit rules differ by platform and can change. Read the current policy, note how long you have to ask, and keep message timestamps as evidence
Pay-per-lead search ads (Google Local Services Ads)Valid leads such as answered calls, messages and booking requests, not clicksGoogle reassesses charged leads and may credit low-quality ones, in most cases within 30 days. It no longer credits "job type not serviced" or "geo not serviced" leads
Your own Facebook adsAd delivery, so cost per lead is a number you work out, not a price you were quotedNothing to claim. Your form questions and targeting are the filter
Google Business Profile, website, referralsTime, plus any website or listing costNothing to claw back, which is why reply speed matters most here: you cannot buy these enquiries again

I have quoted no marketplace lead prices on purpose. They vary by service area and job type, and the vendors' pages do not publish a single list price I could verify. Your own invoices are the honest source, so pull the last three months for each paid source before you decide anything.

Three details on Google's version are worth knowing, and the first two favour speed. A lead can be a message rather than a call, so message replies count as much as phone answering. A missed call during your business hours counts as a valid lead if the caller stays on the line for more than 20 seconds, so a call you could not answer can still be one you paid for. And Google is moving Local Services Ads campaigns into Google Ads, as Performance Max campaigns with pay-per-lead goals, in phases from August 2026 through 2027. You still pay per valid lead and the ads still show on Search and Maps, but a manual maximum cost per lead is no longer supported, and Local Services Ads performance reports do not carry over, so export yours before your account moves. The tutorial on what the Google Ads move changes for carpet cleaners covers the practical effects. If you run Facebook ads, writing and testing offers with AI is the companion piece.

Time your own replies on the next 20 enquiries

The "third more bookings" guess in the first table is the weakest number in this tutorial, and you can replace it in two weeks with a log. For each new enquiry record the source, when it arrived, how long until the first reply (human or automatic), and whether it ended in a booked job. A spreadsheet or a notes app is enough. Here is an excerpt of such a log:

SourceArrivedFirst reply afterBooked
Website formMon 18:406 minutes (automatic text)Yes
Google Business Profile callTue 10:15Missed; called back after 2 h 10 minNo
Marketplace leadTue 14:054 minutesYes
Facebook formTue 21:3011 h 50 min (next morning)No
Website formWed 07:553 minutes (automatic text)Yes
Referral textWed 12:3025 minutesYes
Marketplace leadThu 16:453 h 5 minNo
Google Business Profile messageFri 19:108 minutesYes

After 20 entries, group them by reply time and divide booked by enquiries in each group:

First replyEnquiriesBookedBooked share
Under 10 minutes8563%
10 minutes to 2 hours6233%
Over 2 hours6117%

I would not plan a budget around a gap that wide from 20 rows. Evening enquiries get the slow replies and may come from people browsing rather than buying, so the groups are not a clean comparison, and urgent customers tend to reply faster themselves. Treat the table as a pointer to where to test, then test properly: switch automatic first replies on for alternate weeks, keep everything else the same, and compare booked share across the on weeks and the off weeks.

Suppose the two-van firm runs that test for four weeks. In the two weeks with automatic first replies, 52 enquiries arrive and 18 book, 35 per cent. In the two weeks without, 54 arrive and 14 book, 26 per cent. Nine points on about 110 enquiries a month is ten extra jobs, close to the guess in the first table and worth about $1,500 of gross profit. Before you trust it, run another four weeks of alternation, because two fortnights is a small sample, and check that the on weeks did not include a holiday rush or a price change. If the gap holds over eight weeks, put your own figure in place of the guessed third.

Split the log by source as well. A marketplace lead answered in four minutes and still lost tells you something different from a Facebook lead that was never answered at all. The first is a pricing or trust problem; the second is a speed problem you can fix this week.

Replying with a price before a person is free

Two layers work better than one. The first layer is automatic and goes out within a minute: a thank-you, a price or the one question that settles a price, and a way to book. The second is a firm quote once a person has checked the job. Compare these two replies to the same web-form enquiry:

Before: "Hi, thanks for your enquiry. We will get back to you as soon as we can."

After: "Hi [first name], thanks for getting in touch. For three bedrooms and a hallway the usual price is $200. Stairs add $45 a flight and pet-stain treatment $25 a room, so tell me about those and I'll confirm your total. Thursday 9:00 or Friday 14:00 are free; reply 1 or 2 and I'll hold the slot for two hours."

The second message answers the question every customer asks first, gives a way to say yes in one word, and asks only for what changes the price. The numbers come from a rate card, which is the part to get right before any AI touches it. The tutorials on a per-room price calculator and a quote template for rooms, stairs and pets build that card.

Once the card exists, a ChatGPT or Claude project can draft the reply from it. This prompt is a starting point; paste it into the project's instructions and keep the rate card in the same place:

You write first replies for a carpet cleaning firm. Use ONLY this rate card (USD).
Bedroom or small living room $55; large living room $75; hallway $35;
stairs $45 per flight; standard-size area rug $40; pet-stain treatment $25 per room;
minimum call-out $120.
Enquiry: [paste the customer's message and form fields]
Free slots: [two slots from the diary]
Rules:
1. Under 90 words, friendly and plain.
2. Add up every item the customer mentioned and show the total.
3. If rooms or stairs are missing, ask for them instead of guessing a price.
4. Never promise a date other than the free slots above.
5. If the message mentions flooding, sewage, mould or a smell lasting days,
   do not quote. Say a technician will phone today.
6. End with one question.

Try it on this enquiry: "Two bedrooms, the big lounge and the stairs, and we have a cat. Can you do Thursday?" A first draft might come back like this:

"Hi [first name], thanks for your message. For two bedrooms and the large living room the usual price is $185. If the cat has had accidents on any carpet, treatment is $25 a room. I have Thursday at 9:00 or Friday at 14:00, which suits you?"

Two things to fix. The stairs were mentioned in the middle of the sentence and the draft left them out, so the total should read $230 (2 × $55 + $75 + $45), not $185. And the customer asked about Thursday, so the reply should name Thursday first and ask which time suits. That slip is why I would never let an AI send a price unchecked in the first month. Read 20 drafts, tally the errors, and only then let routine ones go out automatically. The 60-second reply routine for trade enquiries covers the wider set-up.

What replying fast costs against one extra job

Instant replies need either software that answers for you or a routine that gets drafts in front of a person within minutes. These are the set-ups I would price for a one-to-three-van firm, using list prices checked in October 2026:

Set-upMonthly costWhat it coversWhat it leaves out
Jobber Core plus Receptionist$58 ($29 for one user on annual prepay, plus $29)Online booking and quotes on Core; the Receptionist answers calls and texts, books visits and can text back callers who hang upAutomated quote and invoice follow-ups start at Connect
Jobber Connect plus Receptionist$128 on annual prepay ($148 with a one-year commitment billed monthly, $168 month to month)Everything above plus automated quote and invoice follow-ups, client reminders and time trackingOptional line items for upsells start at Grow
Smith.ai AI receptionistFree for 25 calls a month, then $3 a call; Pro from $150 for 75 callsAnswers calls 24/7 with AI, and lists scheduling through Calendly and other toolsCheck that it books into the calendar your vans actually use before you rely on it
ChatGPT Plus or Claude Pro with an enquiry form$20 (Claude Pro is $17 on annual billing)Drafts replies from your rate cardSomeone must paste and send, so nothing goes out at 21:30

Jobber's Receptionist is an add-on on the lower plans and included on Plus. Its $29 covers 30 conversations, then each extra one is $0.79. A month with 45 conversations costs $29 plus 15 × $0.79 ($11.85), which is $40.85. Smith.ai's free plan stretches further than it looks: 60 calls cost 35 paid calls at $3, so $105, which is still cheaper than the $150 Pro plan until you pass about 75 calls. Prices change; open the vendor's page before you commit.

Now set those costs against the job. At $150 gross profit per job, the $58 set-up pays for itself with one extra job every two to three months, and the $128 one with about one extra job a month. If the log shows that fast replies add even that, the tools are cheap next to a $900 marketplace budget. If it shows no change, you have learned that cheaply too. The comparison of Jobber, Service Fusion and Workiz for carpet cleaners goes deeper on which package fits.

Four ways fast replies lose the job

Each of these follows a pattern that is easy to build by accident.

The price that ignored the stairs. Suppose a website form asks for rooms but not stairs or pets, and the automatic reply quotes $165 for "three bedrooms". On site there is a staircase and two pet-stained rooms: $165 plus $45 plus $50, a $260 job. The customer feels misled and posts a poor review. The fix costs nothing: two required questions on the form, and a reply that says "usual price, confirmed once I know about stairs and stains".

Two replies, two totals. Picture a customer who sends an enquiry through a marketplace and the website on the same evening and receives an automatic text, a phone call and an emailed quote, with three different figures. Give each enquiry one owner and one source of prices, the rate card, and mark the enquiry "replied" in the job record the moment the first message goes out.

The after-hours promise. An automatic reply at 21:30 says "we will call you first thing", but nobody owns the morning list, and by 10:00 the customer has booked someone else. A receptionist tool can capture the details overnight, but you still need a named person and an 08:30 callback slot, in that order.

Quoting what should never be quoted. Flooding, sewage and mould are different work with different insurance questions. Put a stop rule in the prompt, as rule 5 above does, so those messages go straight to a person with the details attached. Speed is for routine jobs; a wrong automatic price on a risky one costs more than a slow reply.

A capped test before any lead budget goes up

If the numbers say a paid source might work, test it rather than commit. Use the ceiling from the first table and follow these steps:

  1. Work out the ceiling: gross profit per job minus the profit you want to keep ($150 minus $60 is $90 in the example).
  2. Set a cap you could lose without noticing, such as $300 over 14 days.
  3. Tag every lead with its source on the booking form, using fixed choices, and copy the tag into the job record.
  4. Reply within ten minutes throughout, by hand or with tools. Otherwise you are testing your own speed, not the source.
  5. Judge at 30 leads or 14 days, whichever is later. Anything earlier is noise.
  6. Divide spend by jobs booked. Under the ceiling, renew. Between the ceiling and gross profit, keep it only for quiet weeks. Over gross profit, stop.

Rebooking can move the ceiling, but only with your own data. If one in three customers books again within a year, a $150 first job is worth about $200 in gross profit ($150 × 1.33), so with the same $60 target the ceiling rises to $140. Use your own rebooking rate, not mine, and count only customers who actually returned.

Capacity matters as much as price. A lead you cannot serve is a cost with no job at the end of it, so buy when next week's diary is under about two-thirds full, not when you are booked ten days out.

Logging bad leads so credits get claimed

Keep a one-line note the day a lead arrives, while the evidence is fresh. A filled-in example for a month on pay-per-lead sources:

WeekSourceProblemWhat to do
1Pay-per-lead search adsWanted a sofa cleaned, not carpetsGoogle no longer credits "job type not serviced", so tighten the job types in your settings and add a screening question to your reply
2Pay-per-lead search adsAddress outside the service areaSame: "geo not serviced" is not credited, so review the service area before the next billing week
2MarketplaceSame customer and job arrived twiceCheck whether the platform credits duplicates and how long you have to ask, then ask with both timestamps
3MarketplaceNo reply after three attemptsKeep the message timestamps; check whether the platform's policy covers customers who never reply
4Pay-per-lead search adsEight-second spam callOpen Leads, choose "Rate this lead" and complete the survey; Google says credits are applied in most cases within 30 days and the original charge stays on the invoice

Notice what the first two rows teach. Because those two reasons are not credited, the only protection is a tighter set-up: honest job types, a realistic service area and a form that screens before you pay. That is cheaper than any refund process.

Full diary, quiet diary, empty diary: what to buy

Your situationFirst move
First replies take over an hour and nothing answers at nightFix replies before raising any lead budget; start with the form questions and an automatic first text
Replies are under ten minutes, the diary is under two-thirds full and one source measures under the ceilingKeep that source and raise its cap in small steps, checking cost per booked job each month
Booked ten days outPause paid leads and spend the time on rebooking reminders for past customers
New firm, empty diary, no enquiries yetRun one capped test of one source, with the receptionist and the form questions live from day one

My own order of work would be: rate card, form questions, automatic first reply, reply log, then a capped test of one paid source against the ceiling. Buying leads first reverses that order and pays to find out which of your habits are slow.

Questions carpet cleaners ask before buying leads

How many leads should I buy before judging a source?

Judge a source at 30 leads or two weeks, whichever comes later, and only if you replied within ten minutes throughout. With fewer leads, one large job or one no-show swings the result. If the first 15 leads booked nothing and half had the wrong job type or area, fix the settings and restart the count instead of writing the source off.

Can AI answer leads without me checking each reply?

For acknowledgements, rate-card prices and booking links, yes, provided the AI can only use your rate card and you read a sample of replies each week. Keep a person on anything outside the card: stair counts it cannot read, flooding, commercial premises or an upset customer. Check the sums too, because AI can drop a line item.

What if a customer rings while I am on a job?

Missed calls are the biggest speed gap for a van-based firm. A phone-answering add-on such as Jobber's Receptionist can answer, book a visit using your online booking settings and text back a caller who hangs up. Without one, set an automatic text-back and fixed callback slots at lunchtime and in the early evening.

How do I know which source a booked job came from?

Add a required 'How did you find us?' question with fixed choices to your booking form and quote request, and copy the answer into the job record. Ask on the phone too. Do not rely on memory at month end, because customers misremember and two sources often touch the same customer.

Further reads

Sources: Jobber pricing and Receptionist pages; Google Local Services Ads help pages on valid leads and lead credits; Google Ads Help on the move to Performance Max campaigns with pay-per-lead goals; Smith.ai's AI receptionist pricing page, all checked October 2026. Job prices, lead prices and booking rates in the examples are illustrative.

Want your enquiry replies set up before the next lead?

On a 1:1 call we'll map where your enquiries arrive, time your current replies, and pick the one reply step worth automating first with the tools you already run.

Book a 1:1 call with me