Start from the due dates in your own records: count the tanks due each month, build offers for the months that run thin, and publish a local service page only for areas where you can add real job facts. AI drafts the offers, reminders and pages from a fact sheet you supply; it cannot supply local facts itself.
Septic demand is steadier than most trades because tanks fall due on a cycle, but it bunches. House sales, weather and the way customers originally joined pull jobs into a few months and leave others empty. Septic company marketing agencies tend to sell more leads. The cheaper fix is usually to move jobs you already own into the thin months, and your records show exactly where those are.
Find the thin months before writing any offer
Export every tank with its next-due date, count how many fall in each month and compare the counts with the number of planned pump-outs your trucks can take. Illustrative figures for a firm with 2,400 tanks on a three-year average cycle, which is 800 due a year, and room for 75 planned pump-outs a month once new customers and call-outs are allowed for:
| Month | Tanks due | Against 75 planned slots |
|---|---|---|
| Jan | 31 | 44 free |
| Feb | 34 | 41 free |
| Mar | 58 | 17 free |
| Apr | 92 | 17 over |
| May | 104 | 29 over |
| Jun | 88 | 13 over |
| Jul | 76 | 1 over |
| Aug | 70 | 5 free |
| Sep | 82 | 7 over |
| Oct | 90 | 15 over |
| Nov | 49 | 26 free |
| Dec | 26 | 49 free |
If your seasons run the other way, shift the table by six months. The shape is what matters: six months run over the line by 82 jobs in total, and January, February, November and December sit 160 jobs under it. That gap is the number to attack. Bunching like this usually has a history. A firm that ran a strong spring campaign three years ago has a lot of spring jobs falling due again now.
Pulling a job earlier is the safe direction. Pushing one later is a judgement for each tank, and some regulators set a maximum interval, so treat late slots as the exception. In this example the spring offer therefore targets tanks due from March to May and invites them to book in January or February. The autumn peak needs a different lever, which comes in the next but one section. The same list also feeds septic business software that reliably holds pumping logs and due dates, which is worth checking if the export was painful.
AI's job here is small and useful. Give it the monthly counts and the capacity figure, with no customer details, and ask which months are thin, by how much, and what three offers could pull jobs in the safe direction. Let the sheet do the arithmetic. Ask the assistant for ideas and wording.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowA year of offers, each tied to a reason to act
Every offer below starts from a goal in your due-date table, not from a holiday. Prices and wording are illustrative, and the seasons are written for ground that freezes, so adjust them to your own year.
| When | Goal | Offer to test | What AI drafts |
|---|---|---|---|
| Winter into early spring | Fill the thin months | "Beat the rush": book now, fixed price, for tanks due in the next 90 days, with the filter cleaned at the same visit | Three subject lines, a 90-word email, a two-line text |
| Spring | Inspection-led jobs before wet weather | "Spring check": inspection and written report at a fixed fee, a pump-out only if due, plus a "planning to sell?" variant | Plain-English report wording and an explainer on what a pre-sale inspection covers |
| Early summer | Holiday properties and busy households | "Before your guests arrive": owners give their dates and you fit the visit around them | A short message for holiday-property owners |
| Late summer | Upgrades while access is easy | A riser or lid upgrade at the same visit as a pump-out, at a stated price, if you fit them | An explainer on what a riser saves, written from your own job notes |
| Autumn | Get tanks done before the ground freezes or the rain sets in | "Neighbour day": a set discount when three or more tanks on the same road book the same day | The invitation text and the route-saving sum |
| Mid-winter | Protect margin, no discounting | An explainer on how to tell a tank is due, plus annual plan renewals | A short FAQ and the renewal letters |
Four guardrails keep the offers honest. Never discount a tank pumped within the last two years. Put an end date on every offer. Do not promise a result you cannot control, such as "avoid failure". And publish each offer as an Offer post on your Google Business Profile with its own date range, because posts older than six months are archived unless they carry a date range, and posts can be scheduled in advance, so a quarter's offers can be written in one sitting. Writing Google Business Profile posts with AI every week covers the routine, and a 12-month posts and offers calendar for plumbers shows the same planning idea in a neighbouring trade.
Here is what the first row of the table becomes as an Offer post, drafted from a three-line brief (illustrative): "Beat the rush. Book your septic pump-out by the end of February and pay a fixed $360 instead of $380, with the effluent filter cleaned at the same visit. For tanks due before the end of May. Book online or tap Call now." The assistant's first version also said "limited spots available", which was struck because nothing in the diary limited the offer. It also ended "call us on [number]", which came out too: Google may remove posts that carry unverified contact details, so attach the Call now button, which uses the verified number on your profile. Check the dates and the price against the sheet, and add the start and end dates in the post itself. Google's posting tips also ask you to avoid auto-generated content, so what goes live is your edited version, never the assistant's raw draft.
Neighbour days: the discount that pays for itself
A discount is honest marketing only when a cost you cut pays for it. Clustering is the clearest case. Suppose scattered stops average 25 minutes of driving between jobs and a cluster on one road averages 10, saving 15 minutes a stop. At $95 an hour to run the truck and crew, that is $23.75 a stop. A $20 neighbour discount costs less than the driving it removes, and four clustered stops free up about an hour, which is roughly one more job in the day. If you cannot name the cost the discount removes, it is only a discount.
Pick the day and the road from your route list, then invite tanks due within the next three months that sit within a few minutes' drive. The assistant drafts the invitation. The office decides who gets it and sets a minimum of three bookings before the discount applies. Illustrative text, 145 characters before the placeholders are filled in:
Hi [first name], we're pumping tanks around [road] on [date] and yours is due by [month]. Book that day for $20 off. Offer ends [date]. [company]
One rule matters more than the wording: never tell a customer who else has booked. The message says the road, not the neighbours.
Pump-out reminders that carry the offer
The reminder deserves the most care of any message a septic firm sends, because the customer already owns the problem and the due date is real. Use three touches: a heads-up 60 days before the due date that carries the current offer, a nudge at 14 days, and a chase 30 days after the date. Give the assistant the facts it may use and the claims it may not.
Write three reminders for septic tank customers: a 60-day heads-up, a 14-day nudge and a 30-day-overdue chase.
Facts you may use: the tank is due on [date]; the offer is [offer] and ends [date]; the phone number is [number]; replying YES creates a booking request.
Rules: under 160 characters each, no scare claims, no promises about system failure or cost, no claims about licences, insurance or years in business, one clear action per message.
A useful result, which I would still read before sending, looks like this (illustrative, each near 160 characters before the placeholders are filled in):
- Hi [first name], your septic tank is due for pumping around [month]. Book before [date] for the fixed price of $[price]. Reply YES or call [number]. [company]
- Hi [first name], a reminder: your tank is due in about two weeks. We have visit slots on [days]. Reply YES and we'll hold one for you. [company]
- Hi [first name], your tank was due last month. Reply YES and we'll find you a slot this week, or call [number]. [company]
A typical first-draft slip, even with the rules in the prompt: "Avoid costly backups and keep your system running smoothly." The first half is a scare claim and the second is a promise you cannot keep, so both come out. The same goes for "our licensed team", which is only true if it is true of every technician you send. Send reminders only to people who have agreed to hear from you, and keep a record of when and how they agreed. Customers on an annual plan get a different message entirely, covered in septic service agreements, annual contract wording and renewals.
Local service pages that carry real job facts
A page for every town sounds sensible and is where many septic sites go wrong. Google's spam policies describe doorway abuse as pages created to rank for specific, similar searches that lead people to a less useful page, with city-targeted pages as one example. They describe scaled content abuse as many pages generated mainly to manipulate rankings, and they name generative AI used to produce many pages without adding value. A local page earns its place only when it holds facts a competitor's page cannot copy. Where you have none, list the area on one "areas we cover" page and stop.
Build a fact sheet for each area from your own records before the assistant writes a word. An illustrative sheet for an invented "[Town A]":
| Field | Illustrative entry | Where it comes from |
|---|---|---|
| Jobs in the last 12 months | 63 pump-outs and 9 inspections | Job log export |
| Typical systems | Mostly older two-compartment concrete tanks, a few pumped systems | Tank records |
| Access quirks | Two lanes too narrow for the large truck, so the smaller unit goes | Technician notes |
| Median time from call to visit | Four working days | Booking data |
| Standard pump-out price | $380, no travel charge | Price list |
| Questions customers there ask | "Do I have to dig up the lid?" and "How often for a family of four?" | Call notes |
| Photo and review | One real job photo with no house number, one review sentence, both with permission | Technician phone, review log |
Write a local service page of about 350 words for [Town A].
Use only the fact sheet below. If a fact is missing, write [MISSING] instead of inventing one.
Do not mention soil, geology, history, landmarks, licences, insurance, guarantees or years in business unless they are in the sheet.
Structure: a heading with the service and the town; what we do there; access and truck sizes; price and timing; three customer questions answered briefly; how to book.
Fact sheet: [paste]
The difference shows in a single paragraph. Weak, and copyable by any competitor: "Looking for the best septic company in [Town A]? Our expert team provides fast, reliable pumping and inspections across [Town A] and the surrounding areas." From the sheet: "Last year we pumped 63 tanks in and around [Town A], mostly older two-compartment concrete tanks. Two lanes are too narrow for our large truck, so we send the smaller unit; tell us when you book. A standard pump-out is $380 with no travel charge, and the median wait from call to visit was four working days."
The assistant still adds flourishes. A first draft for [Town A] included "the clay soils around [Town A] mean tanks need pumping more often", which appeared nowhere in the sheet and was struck out. Others to watch for are "serving [Town A] for over 20 years" and "same-day service". The rule is that every sentence must trace to a line in the sheet or to something a named member of your team can confirm. Start with three to five pages in the areas where you do the most work, and add another only when its fact sheet is full. Fence company marketing with local pages, photos and posts walks through the same method for a different trade.
Review asks that follow Google's rules
Ask once the invoice is paid and the technician's report has gone out, because by then the customer has seen the whole job. Send the same message to everyone. Google's review policy bars offering discounts, payment or free items for a review, or for changing or removing one, and it bars asking only the customers you expect to be happy or discouraging negative reviews. That includes steering unhappy customers to a private form instead of the public page. So no "leave five stars for $10 off", and no "rate us 1 to 5 first, and we'll send the review link only if you say 4 or 5".
An illustrative ask, about 150 characters:
Hi [first name], thanks for choosing [company] today. If you have a minute, an honest review helps other homeowners find us: [link]. Thank you. [your name]
Use the assistant for the replies, where it saves most time. Two illustrative drafts, one for each kind of review. For a good one: "Thank you, [first name]. Glad the visit went smoothly. Your tank is next due in [year] and we'll send a reminder nearer the time." For a late arrival: "Sorry we were late, [first name]. We said 9 to 11 and arrived at 11:40, which was not good enough. Please call [number] so I can hear more." Reply within the week, never argue and never add job details beyond what the reviewer wrote. Getting more Google reviews with automated requests covers how to send the ask without doing it by hand.
Prove an offer worked with a hold-out and one sheet
An offer that produced bookings has not necessarily produced extra bookings, because some of those customers would have booked anyway. Measure it with a hold-out. When you send the autumn invitation, keep back a random tenth of the eligible list (draw them with a spreadsheet, not by hand), send them nothing, and compare booking rates when the offer closes. Put a code in every message, such as "mention BEAT", and ask for it at booking.
An illustrative result. Of 300 eligible tanks, 270 got the message and 30 were held back. Of the 270, 36 booked, which is 13.3%. Of the 30, 2 booked without any message, which is 6.7%. If the message had done nothing, 270 times 6.7% gives 18 bookings that would have happened anyway, so the offer brought about 18 extra jobs. Everyone who booked got the $20 discount, 36 in all, so it cost $720, or $40 per extra job against a $380 pump-out. A hold-out of 30 is small, and two bookings against three would change the answer, so treat it as a sense check and repeat it next season.
| Column | What goes in it |
|---|---|
| Offer code and dates | The code, start and end date |
| Sent and held back | Counts for each group, so the booking rates can be compared |
| Bookings from each group | Jobs on the diary, not replies |
| Discount given | Bookings times the discount |
| Jobs completed and revenue | Filled in when the work is done, not at booking |
Give the assistant the finished table, with no customer details, and ask which offers had a held-back group that booked nearly as often as the treated one. Those are the offers to drop or rewrite. Leave the arithmetic to the sheet.
Claims to strike from every septic draft
Certain phrases sound normal in septic marketing, so assistants produce them freely and owners let them through. Strike each one unless you can prove it for every technician you send:
- "Eco-friendly" or "environmentally safe", which you cannot verify and a regulator or customer may challenge.
- "Guaranteed" results, response times or prices, unless the guarantee is written down and you will honour it.
- "Licensed and insured" or "certified", unless it is true of the whole team and you can show the paperwork.
- "Serving the area for 20 years" or similar, unless the records exist.
- "Prevents system failure" or "avoid costly repairs", which no pump-out can promise.
- "24/7" or "same-day", unless your rota delivers it on the worst day of the year.
A four-week start for an owner who also drives the truck
- Week 1, about two hours. Export the due dates, build the monthly table and mark the thin months.
- Week 2, about three hours. Write one offer and its three reminders, publish the Offer post with an end date, and send to a list with a 10% hold-out.
- Week 3, about three hours. Build the fact sheet for your busiest area, draft the page, and have a technician read every sentence against the sheet.
- Week 4, about two hours. Add the review ask to the invoice routine, answer the unanswered reviews and start the tracker.
That is ten hours in a month, and none of it needs an agency or a bigger lead budget. What it needs is trustworthy due dates, which is why the software checklist linked earlier comes first for many firms.
Further reads
- Pest Control Company Content Marketing: A Seasonal AI Calendar — Another recurring-service trade planning content by season.
- Insulation Contractor Marketing: Autumn Campaigns and Local Pages With AI — An autumn campaign built around a short buying window.
- Garage Door Repair Marketing: Honest Offers and Local Pages Written With AI — Honest offers and local pages for an emergency-led trade.
- Septic Inspection Report: Can AI Write It From Field Notes? — Turn inspection notes into the proof your pages need.
- HVAC Google Business Profile: Service Areas, Q&A and Review Replies With AI — Profile posts and review replies written for a service trade.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Google Search Central spam policies, Google Business Profile help pages on posts and photos, Google's review policy, and widely quoted septic maintenance guidance on pump-out intervals. Figures in the examples are illustrative.