Long-cycle service reminders for septic companies

Micro-SaaSWebweekendNext.jsSupabaseTwilioPostmark

The idea

A septic tank needs pumping every three to five years, which is an eternity in CRM terms. The pumping company’s customer book is a decade of QuickBooks invoices and a dead spreadsheet; by the time a tank is due, nobody remembers, and the customer calls whichever competitor’s postcard arrived first. Each forgotten customer is a 400-600 USD job handed to someone else.

ServiceTitan and Jobber can technically do reminders, but they cost 100-300+ USD/month and are built around daily dispatch, not four-year silences. Nothing serves the ultra-long service cycle as its core object. A reminder engine that starts working at month 33 and does not lose the plot at month 48 is the whole product.

Who pays

The owner of a one-to-three-truck pumping company pays 29 USD/month, and a single recovered job pays for a year. These are unglamorous, profitable businesses that buy simple tools that clearly make money. Distribution: state onsite wastewater associations, septic industry Facebook groups, and cold email to companies scraped from county installer licence lists.

MVP scope

  • CSV import with column mapping and phone/address dedupe
  • Per-county default intervals with per-customer overrides
  • Month 33/36/39 email and SMS cadence anchored to due date
  • One-tap rebooking link that creates a request and halts the sequence
  • Customer book with due-date sorting and per-customer activity log
  • Skip for v1: postcards, scheduling/dispatch, invoicing, route planning, QuickBooks sync
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build TankTimer, a web app that runs multi-year come-back reminder sequences for septic pumping companies.

Stack: Next.js (App Router), Supabase (Postgres + auth), Twilio for SMS, Postmark for email.

Core flow: the owner imports past jobs via CSV (customer name, phone, email, service address, county, last pump date). Each customer gets a next-due date from a per-county default interval (36-60 months, editable per county and overridable per customer). A daily cron walks the book and fires a cadence anchored to the due date: month 33 email (your tank is coming due), month 36 SMS, month 39 SMS plus email marked overdue. Every message carries a one-tap rebooking link where the customer picks a preferred week; that creates a booking request, notifies the owner by SMS, and stops the sequence.

Pages: magic-link login, CSV import with column mapping and dedupe preview, customer book with due-date sorting and status filters (upcoming, in-sequence, booked, lapsed), county interval settings, message template editor, booking requests inbox, billing.

Implementation details: dedupe on normalised phone plus service address at import, because these books are messy. When a new job is logged against a customer, reset their clock automatically. Keep an activity log per customer showing every message sent.

Pricing: 29 USD/month flat, 60-day trial because value proves out slowly, unlimited customers.

// More Micro-SaaS ideas