Use AI as the drafting layer on three documents: a quote built from a vent count and a rate card you set, a job report written from the technician's notes and before-and-after photos, and short follow-up texts. Keep prices, counts and every claim under your own control, because AI writes smoothly whether or not the numbers are right.
Per-vent quoting only holds up if "vent" means the same thing to you, your technician and the customer. Neither a government environmental regulator's consumer guide to duct cleaning (updated February 2026) nor a duct-cleaning trade body's consumer pages mention per-vent pricing at all. The regulator talks about a price per heating and cooling system and a written agreement that sets out total cost and scope. The trade body warns about cheap "whole-house" specials that leave out the air handler, blower and access openings, and about cleaners who announce mould or other contamination without inspecting first. So the quote has to name what is included, and the report has to record what was seen rather than what might be wrong.
Decide what one vent costs before AI writes a quote
A quote drafted by AI is only as sound as the rate card behind it, so settle the card first. The shape I'd start from is a base fee for each heating and cooling system, a per-vent charge for supply registers, a slightly higher charge for returns, and separate lines for anything outside the standard clean. The base fee earns its place because set-up, floor protection, access openings and the work on the air handler, blower compartment, main trunk line and plenum cost the same whether the house has 8 vents or 18. Keep the air handler and blower inside that fee rather than selling them as extras: the regulator's guide tells householders to make sure a provider agrees to clean all components of the system, and those are exactly the parts the trade body says cheap specials leave out. A pure per-vent price underprices small houses and nudges you towards the low-price-then-upsell pattern that the trade body lists among its warning signs.
For scale, the regulator's consumer page puts duct cleaning in a range of $450 to $1,000 per heating and cooling system, depending on the services, the size and accessibility of the system, the climate and the level of contamination. The trade body's cost page gives the same range for an average-sized home. Treat that as a sanity check on your own card rather than a price list to copy. The prices below are examples, chosen to land inside that range for a typical three-bedroom house.
| Line | What it covers | Example price |
|---|---|---|
| System base fee | One heating and cooling system: set-up, floor and furniture protection, access openings, air handler and blower compartment, main trunk line and plenum | $195 |
| Supply vent | Each register or grille that delivers air, with its branch run | $15 each |
| Return vent | Each grille that draws air back towards the system | $24 each |
| Dryer vent | Cleaned end to end, outlet included | $85 |
| Coil cleaning | Inspected on every job; cleaned and charged only where the coil is accessible and photographed dirty | $150 |
| Minimum job | Applies when the lines above come to less | $350 |
Four definitions travel with the card, because most arguments about counts are really arguments about words.
- Supply vent: any register or grille that delivers air into a room, counted once per opening however many slots it has.
- Return vent: any grille that draws air back towards the system, including the big hallway grilles customers often mistake for supplies.
- Not counted: bathroom and kitchen extractor fans and cooker hoods, which normally exhaust separately from the heating and cooling system.
- System: one furnace or air handler with its own ductwork. A second unit in a loft or utility room is a second system with its own base fee.
Now run a three-bedroom house through it. The customer's message suggests 17 supply vents, 1 return and a dryer vent. The provisional quote is $195 + $255 (17 × $15) + $24 + $85 = $559. A walk round on the day finds 14 supply vents and 3 returns, which prices at $195 + $210 + $72 + $85 = $562. The difference is $3, so the firm charges the quoted $559. That outcome comes from a rule written in advance: if the on-site count moves the total by less than $25, charge the quoted price; if it moves it by more, or a second system turns up, stop, send a revised written quote and wait for a yes before starting.
The rule fires on a different job. A customer's quote covers 20 supply vents, 2 returns and one system, so $195 + $300 + $48 = $543. At the door the technician finds a second air handler in the loft feeding nine of those vents. Two systems mean two base fees: $390 + $300 + $48 = $738, which is $195 more. The technician stops, sends a two-line revised quote and starts only when the customer replies. This is a good place to let AI draft the message, since it needs to be polite and exact, not clever.
Write the stop conditions into the same paragraph of your terms. The regulator's guidance says the system should be inspected for asbestos-containing materials before cleaning and that those materials should only be disturbed by specially trained and equipped contractors. It also lists substantial visible mould growth, vermin and ducts clogged with excessive dust as the situations where cleaning may be warranted, with any moisture problem fixed first. None of those belongs on a standard per-vent line. Say that you will stop, tell the customer what you found and agree the next step, rather than carrying on and pricing it afterwards.
Answering "how much per vent?" without quoting blind
Plenty of first messages are just that question, sometimes with a loose description attached. A flat per-vent figure in reply invites a comparison with the cheapest whole-house special on the page, and it commits you to a number before anyone has counted. A better first reply explains the structure, gives a typical range for a home that size and asks the few questions that move the price. AI earns its keep here on one narrow job: turning the customer's loose description into a tidy count with every guess labelled as a guess.
Take this enquiry, written the way customers write them:
Hi, how much per vent? We've got a 3 bed house over two floors. I think about 12 vents upstairs, bathroom included, and maybe 5 downstairs plus the big grille in the hall. One furnace in the garage. Dryer vent goes out through the side wall as well.
The prompt for the first pass forbids prices and invented numbers:
You help a duct cleaning firm turn a customer's message into a provisional count.
Rules:
- Use only what the customer wrote. If a number is not given, write "unclear".
- Return a table with the columns: item, customer's number, confidence
(stated / estimated / unclear), what to confirm.
- Then list up to five questions to ask the customer, most important first.
- Do not give a price and do not add items the customer did not mention.
Customer message:
[paste message]
A typical reply:
| Item | Customer's number | Confidence | To confirm |
|---|---|---|---|
| Upstairs vents | 12 | Estimated ("I think about 12") | Which are supplies, which are returns or extractor fans |
| Downstairs vents | 5 | Estimated ("maybe 5") | Same check |
| Large hall grille | 1 | Stated | Supply or return |
| Systems | 1 | Stated (furnace in garage) | Any second unit in a loft or utility room |
| Dryer vent | 1 | Stated | Length of run and where it exits |
Its questions would be sensible ones: is there a second thermostat or air handler, are any vents in ceilings or behind fitted furniture, do you want the dryer vent done, can you send a photo of the hall grille and the furnace's front panel, and has there been building work, water damage or pests. Notice what the assistant did not do. It did not decide the hall grille was a return, and it did not add the bathroom fans to the count. Those are the calls a technician makes on site, which is why the table has a "to confirm" column.
The reply to the customer can then run to five sentences: how you price (a base fee for the system plus a charge for each vent), a typical range for a house that size, the questions, and what happens next. Pull the range from your last thirty or so invoices for similar houses rather than from a web page. Something like "most three-bedroom homes with one system come to between $450 and $650 before extras" is fine as a pattern, with your own figures in it.
A quote prompt that never does the sums
Do the arithmetic in a spreadsheet or your job software, not in the chat. A language model can slip on sums and will report the wrong total in the same assured voice as the right one. Give the assistant finished figures to copy and tell it not to calculate, round or reword anything numerical. Save the prompt, your rate card and your list of banned phrases in a ChatGPT Project or a Claude Project (Claude's free plan allows up to five) so every quote starts from the same instructions.
Write a quote email for a duct cleaning customer.
Use only the figures and wording below. Do not calculate, round or reword any
price. Do not add services, guarantees, or health or air-quality claims.
Customer first name: [first name]
Property: three-bedroom house, one heating and cooling system
Counts (provisional, from the customer's message): 17 supply vents, 1 return vent
Lines and total (from our spreadsheet):
System base fee $195
17 supply vents at $15 = $255
1 return vent at $24 = $24
Dryer vent clean $85
Total $559
Included: set-up and floor protection, access openings, air handler and blower
compartment, main trunk line, plenum, every vent listed, before-and-after photos
with a written report.
Not included: coil cleaning, repairs, any second system.
Count rule (copy exactly): We price from the count above. If our count on site moves
the total by less than $25, you pay the quoted price. If it moves by more, or we find
a second system, we stop, send a revised quote and wait for your yes.
Validity (copy exactly): This quote is valid for 14 days.
Tone: plain and friendly, no exclamation marks, under 150 words plus the price lines.
Here is a draft of the kind an assistant returns, with the slips left in:
Subject: Your duct clean for about $560
Hi [first name],
Thanks for the details. Here is your quote.
System base fee: $195
17 supply vents at $15: $255
1 return vent at $24: $24
Dryer vent clean: $85
Total: $559Included: set-up and floor protection, access openings, cleaning of the main trunk line, plenum and every vent listed, a sanitising treatment, and before-and-after photos with a written report. Not included: coil cleaning, repairs, any work on a second system.
A cleaner duct system means fewer allergens in your home. This quote is valid for 30 days.
Four things need fixing before this goes anywhere:
- The subject line rounds $559 to "about $560", although the prompt said not to round.
- "A sanitising treatment" appears under Included. You never listed one. Assistants fill gaps with what duct-cleaning pages usually offer, and the regulator's guidance advises householders against chemical treatments they do not fully understand, so a promised treatment is a liability as well as an error.
- The allergen sentence is invented. The same guidance says duct cleaning has never been shown to actually prevent health problems, and it advises against hiring cleaners who make sweeping health claims. Delete it.
- "Valid for 30 days" contradicts your 14-day rule, the count rule has vanished, and the air handler and blower have dropped out of the included list, which makes the quote read like the partial clean the trade body warns about. The model reached for a typical validity period and quietly dropped text it judged awkward.
Scan every draft for a fixed list before sending: allergen, mould, bacteria, health, air quality, sanitis, guarantee, "about" and "up to". Then compare four things against the spreadsheet: counts, total, inclusions and exclusions, validity. It takes two minutes and catches almost everything that matters. If you offer more than one package, the worked good-better-best quote for HVAC shows how to lay out options without the assistant inventing a middle tier.
Job reports from photos and a one-minute voice note
The report is where a duct cleaner's honesty is visible, and also where AI is most tempted to improve the story. Start by agreeing the shots before the first job. Take each before-and-after pair from the same spot, at the same angle and in the same light, because a darker "before" and a brighter "after" taken from different places proves nothing and invites the question. Limit yourself to three photos per location, keep faces, post and screens out of frame, and hold a sticky note with the location if you like. When you hand the photos over, number them and list what each one is in the prompt rather than trusting file names. Anthropic's vision documentation says Claude does not read any metadata from images, so the time a photo was taken has to go in your list as well. Check your assistant's image limit too: Claude's web app, for instance, takes up to 20 images per message at 10 MB each, so a long job may need two messages.
Photos show the inside of someone's home. Crop out anything personal, use a work account, and remember that business plans such as ChatGPT Business and Claude Team are documented as not training on your content by default, while personal plans have a model-training switch in privacy settings that you should check before uploading. For more on building a photo routine that survives busy days, see the tutorial on photo documentation apps and what AI adds.
After the job, the technician records a voice note of about a minute while still on site, along these lines: "One system, furnace in the garage. Cleaned fourteen supply, three returns, main trunk and plenum, blower and compartment, dryer vent end to end. Customer thought seventeen supply and one return; two of the grilles they counted were returns and one was the bathroom extractor fan, not connected to the system, so I left that. Light dust in the branches, hair and fibres at the two hall returns. Lint in the first two metres of the dryer vent, outlet flap sticking, now free. Blower wheel was dusty, before and after are photos seven and eight. Coil face behind the access panel has a layer of dust, photo nine, not cleaned, not quoted. No damage, nothing that looked like mould, no droppings. Price held, difference was three dollars." The transcript goes into this prompt:
Turn the technician's notes into a customer job report.
Use only facts in the notes. If the notes do not say something, leave it out.
Never write "mould", "bacteria", "allergens" or "air quality" unless the notes use
the word, and never describe a health benefit.
If the counts in the notes differ from the quote, say so plainly and do not
reconcile them yourself.
Sections: 1 Work completed (counts). 2 Count note (only if counts differ).
3 What we saw. 4 Not done and why. 5 Options to consider (only for items under
"What we saw"; use the price from the rate card). 6 One line stating that no
air-quality testing was carried out.
Then one caption per photo: location, before or after, what is visible.
Photos in order: [numbered list]
Rate card: [paste]
Notes: [paste transcript]
A good draft reads like this:
| Section | Draft report |
|---|---|
| Work completed | One heating and cooling system. Cleaned 14 supply vents, 3 return vents, the blower and its compartment, main trunk line and plenum, and the dryer vent end to end. |
| Count note | The quote used your estimate of 17 supply vents and 1 return. On site we found 14 supply and 3 return openings. One further grille, in the bathroom, is an extractor fan not connected to the system, and we did not clean it. The difference was $3, so the quoted price stands. |
| What we saw | Light dust in the supply branches and on the blower wheel (photos 7 and 8). Hair and fibres at the two hallway returns. Lint in the first 2 m of the dryer vent, with a sticking outlet flap that now moves freely. No damaged ducts and no droppings were noted. |
| Not done | The cooling coil, which was not quoted. Photo 9 shows a layer of dust on the coil face. |
| Option to consider | Coil clean, $150, if you would like it done. |
| Testing | No air-quality testing was carried out. |
The slip to look for is in the captions. Given a dark photo of the blower wheel, an assistant will often write something like "dust and mould spores on blower wheel". Nothing in the notes said mould, and a photo cannot confirm it. The trade body's consumer pages list unsupported contamination claims as a red flag, so the corrected caption reads "Blower wheel, before cleaning: layer of dust." Where you saw dark staining and do not know what it is, the honest caption is "dark staining on plenum wall; not tested; cause not determined".
To keep wording consistent between technicians, borrow a habit from home inspectors, who keep a comment library of pre-approved sentences (the comment library tutorial shows how to build one). For duct cleaning, ten or twelve lines are enough, each with a placeholder for the location:
- "Dust and hair at the [location] return, cleaned."
- "Lint in the dryer vent run, cleaned end to end; outlet flap now moves freely."
- "Flexible duct joint at [location] disconnected; not repaired by us; recommend an HVAC contractor."
- "Dark staining on [surface]; not tested; cause not determined."
- "[Component] not accessible; not cleaned."
Technicians pick the lines that apply, and the assistant's job shrinks to slotting them into the report and tidying the grammar.
Add-ons the report has already earned
The cleanest rule for upsells is that an add-on may only be offered when the technician has recorded the observation behind it, with a photo, and the price comes from the card. The assistant is told to say nothing about a service that the notes do not support. The table shows how that reads in practice.
| What the technician recorded | Add-on that fits | How the report puts it | What it must not say |
|---|---|---|---|
| Layer of dust on the coil face behind the access panel (photo 9) | Coil cleaning, $150 | "Photo 9 shows dust on the coil face. We can clean the coil for $150 if you would like it done." | Any efficiency saving you cannot show |
| Lint in the first 2 m of the dryer vent; flap sticking | Dryer vent clean, $85, if not already quoted | "Lint found in the first 2 m of the run; the outlet flap was sticking." | Worst-case warnings about what lint could cause |
| Flexible duct joint disconnected at the upstairs branch | None: refer to an HVAC contractor | "Joint at the upstairs branch has come apart; not repaired by us." | "This is why the upstairs is cold", a cause you have not established |
| Dark staining on the plenum wall; no standing water seen | None: a conversation, then testing or a heating contractor | "Dark staining on the plenum wall, not tested, cause not determined." | "Mould" or "toxic" without a test, or any treatment promise |
Notice that two of the four rows end with no sale at all. That is deliberate. A report that sometimes says "this is not ours to fix" makes the add-on lines more believable. If your packages and add-ons need a layout, the detailing price list with AI-built packages is a useful model. Never add work mid-job on the technician's word alone: stop, send the line with its photo and price, and carry on after a yes.
Follow-ups: chasing the quote, thanking, and one honest check-in
Every message below has a job and a stop rule, and the AI's role is to write variants in your voice from five or six of your real messages. Keep "[first name]" style placeholders in the draft and let your job software merge the details, so names and numbers never pass through the chat. If your software already chases quotes, paste the new wording into its templates instead of building a second system. Jobber, for example, lists automated quote follow-ups from its Connect plan upwards, and its help centre describes up to two reminders, each sent a set number of days after the quote (90 at most) by the same channel as the quote, so check what your own software offers. For a fuller automation of the quote chase, see quote follow-ups that run themselves.
| When | Channel | What it does | Stop rule |
|---|---|---|---|
| Quote sent | Lines, inclusions, exclusions, count rule, 14-day validity | None | |
| Day 2 | Text | Checks the quote arrived, invites questions | One text |
| Day 6 | Answers the usual three: what is included, how long it takes, how to prepare | Skip if they replied | |
| Day 14 | Text | Closes the quote and leaves it easy to reopen | Then stop and log it as silent |
| Job done | Text and email | Thanks, links the report, invites corrections | None |
| Two days after | Text | Asks whether anything looks wrong | None |
| Five days after | Text | One review request, the same to every customer | One request |
| Month 12 | Text | One check-in, no sales pitch | One message |
The timings are my suggestion, not a measured optimum, so test them against your own booking data. Here are the texts, as templates before the names and links are merged in:
| When | Text | Characters before merge |
|---|---|---|
| Day 2 | Hi [first name], it's [your name] at [business]. Checking my duct cleaning quote reached you. Happy to answer questions. | 120 |
| Day 14 | Hi [first name], I'll close your duct cleaning quote on [date]. Reply KEEP to leave it open. No pressure either way. | 116 |
| Job done | Thanks [first name]. Your job report and photos: [link]. If anything looks wrong, reply here and I'll sort it. [your name] | 122 |
| Review request | Hi [first name], if you have a minute, an honest Google review of the duct clean helps others choose: [link]. Thanks. [your name] | 129 |
| Month 12 | Hi [first name], it's a year since your duct clean. Had building work, water damage or pests since? Tell me and I'll take a look. [your name] | 141 |
Three details matter more than the wording. First, length: a text holds 160 characters in the standard alphabet, but Twilio's documentation says any character outside the standard set, a curly apostrophe being the usual culprit, switches the message to a different encoding where the limit drops to 70 (67 per part once it splits). Emoji do the same. A 150-character text that should be one message then bills as three. AI tools and word processors can both produce curly apostrophes, so paste drafts into a plain-text field and count after the merge, not before. Second, the review request: Google's review policy bars selectively soliciting positive reviews and offering any incentive, so send the same request to everybody, never a discount, and never only to the customers who seemed happy. Google's own tips say you can ask customers to follow a link or scan a QR code, and that reviewers must be signed in to a Google account; sending it a few days after the job is my habit, not Google's rule. The tutorial on review follow-ups for trades goes further on that loop.
Third, the month-12 message. Left alone, an assistant will write "Time for your annual duct clean!" because that is what most marketing copy says. The regulator's guidance recommends cleaning only on an as-needed basis and tells householders not to hire cleaners who recommend it as a routine part of maintenance, so a routine-clean reminder contradicts advice your customers may have read. The text above asks whether anything has changed and offers a visit only if it has. That is a sales message that happens to be true.
Spot-checks in the first month, and the sum on time
Read every quote and report yourself for the first two weeks, then one in four. Track a few numbers weekly: quotes sent and quotes accepted, hours from enquiry to quote, jobs where the on-site count broke the tolerance rule, reports where you had to delete a claim, and reviews per ten jobs. Keep a short mistakes log with the date and the line that was wrong. After a month the log tells you which sentence to add to the prompt.
A typical early slip: a report lists 19 vents against a quoted 17, because the assistant counted the same hallway return from both the downstairs and the hall notes. The customer spots it before you do and asks why the report says more than they paid for. The fix is a line in the prompt ("if the counts in the notes do not match the quote, say so and do not reconcile them") and one line of totals at the top of the technician's voice note, so the assistant has a number to compare against.
Then do the sum on time. A firm completing 12 jobs a week used to spend 25 minutes writing and captioning each report by hand, and now spends 10 with an AI draft and a check (illustrative figures). That saves 15 minutes × 12 = 180 minutes a week, about 12 hours a month. At $25 an hour for office time, that is roughly $300 a month against an individual AI plan at about $20 a month list price, as of October 2026. The sum only holds if the check really is quick. If your technicians still rewrite every report, the first two weeks of spot-checks will show it, and the fix is better notes and a tighter prompt, not a different tool.
Questions duct cleaners ask before handing this to AI
Can AI count the vents from photos a customer sends?
Treat photos as a prompt for questions, not as a count. One photo shows one grille, not the ceilings, cupboards, lofts or second system outside the frame, and Anthropic's own vision documentation describes Claude's counts of objects in an image as approximate. Use customer photos to spot the type of unit and any access problems, then confirm the count on site and apply your tolerance rule before work starts.
Should the quote show each vent charge or only a total?
Show the lines. The regulator's consumer guidance tells householders to get a written agreement that sets out the total cost and the scope of the job, and a quote with a base fee, a count and a price per vent is easy to compare and easy to check on site. A single total with no count gives the customer nothing to hold you to and gives you nothing to point at if the count changes.
What should stay out of the prompts I send to AI?
Keep surnames, street addresses, phone numbers, door and alarm codes, and anything in a photo that identifies the household. The assistant needs the first name, the property type, the counts and the notes. Let your job software or mail merge add the personal details afterwards. Use a work account on a business plan where you can, and on a personal plan check the model-training setting in privacy settings first.
Further reads
- Photo Checklists and Quality Control for Cleaning Teams Using AI — Photo checklists that keep before-and-after pictures consistent across crews.
- Turning On-Site Voice Notes Into Job Sheets and Quotes With AI — Capture site notes by voice, then tidy them into a job sheet.
- How Much Do Missed Calls Cost a Heating and Cooling Business? — Put a number on unanswered enquiries before you automate the replies.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: a government environmental regulator's consumer guide to duct cleaning (page updated February 2026); a duct-cleaning trade body's consumer pages on costs, estimates and scams; Twilio's documentation on SMS character limits and encoding; Google's Maps review policy and Business Profile review tips; Jobber's pricing page and help-centre article on automations; Anthropic's vision documentation; OpenAI and Anthropic pages on Projects and business-plan training defaults.