Case Study — Autonomos AI

From Brick & Mortar to
Fully Autonomous in 4 Months

How a one-man air conditioning business on the NSW Central Coast replaced a receptionist, a booking system, a marketing team, and a follow-up process with a single AI operating system — and never missed a lead again.

Industry: Air Conditioning Services Location: Central Coast, NSW Timeline: Feb – May 2026 Stack: Autonomos AI / Magic Cue

The Problem Every Trades Business Knows

Jason McKay runs My Air Con Care — a split system and ducted air conditioning cleaning service based in Kariong, on the NSW Central Coast. He's been doing it for over seven years. He's good at it. His customers love him. He has 7,950+ Facebook followers and a reputation built on showing up, doing the work properly, and charging a fair price.

But in early 2026, Jason had a problem that every sole trader eventually hits:

Four months later, the business runs itself.

24/7 SMS Response Time
0 Missed Leads
6 Compliance Gates
100% Automated Follow-up
7,950+ Customer Reach
2 AI Agents Running

What We Built: The Complete Stack

The system that runs My Air Con Care today is not a chatbot. It is not a receptionist service. It is a full agentic business management system — two specialised AI agents (Steve and Anna) working inside a 6-gate compliance pipeline, backed by a unified CRM, an automated marketing engine, and a professional web presence. Every component was built, tested, and deployed in under four months.

Here is every piece, in detail.

1. The Digital Storefront

Landing Page & Service Pages

The My Air Con Care website at myairconcare.com is a dark-themed, video-driven single-page experience built on pure HTML, CSS, and vanilla JavaScript — no frameworks, no page builders, no ongoing costs. It loads fast, works on every device, and converts visitors into leads.

Key elements:

Why This Matters

A trades website doesn't need to be complicated. It needs to load instantly, show social proof immediately, communicate the offer clearly, and capture the lead. This site does all four — and converts at a rate that beats most $5,000 agency builds.

Blog & SEO Content

Five long-form blog posts were published, each targeting a specific search intent on the Central Coast:

Every post follows the same pattern: valuable information first, soft CTA second. No aggressive selling. The content itself builds authority.

SEO & Tracking Infrastructure

HTML5 CSS3 Custom Properties Vanilla JS Canvas API Google Fonts (Inter) SVG Icons Responsive Design GA4 Meta Pixel + CAPI

2. The AI Sales & Admin Engine

This is the core of the system. Every SMS that comes into the business flows through a 6-gate compliance pipeline before a single reply is sent. Two AI agents — Steve (sales and customer service) and Anna (calendar and booking management) — work together inside this pipeline, each with their own bootstrap identity, knowledge base, and operating rules.

Steve — The Sales Agent

Steve handles every customer conversation. When a lead texts the business, Steve:

  1. Reads 7 bootstrap files (SOUL.md, AGENTS.md, USER.md, KNOWLEDGE.md, claude-prompt.md, system-prompt.md, and the per-customer JOB-CARD.md) — every single time
  2. Reviews the full conversation history, contact details, pipeline stage, and any active bookings
  3. Determines the customer's intent — is this a new enquiry? A booking confirmation? A rejection of a proposed date? A random question?
  4. Drafts a reply in authentic Australian tradie voice — casual, direct, one thing at a time, never templated
  5. Outputs the draft with a proposed pipeline stage transition
  6. Submits it to the 6-gate pipeline for compliance verification before anything is sent

Steve's knowledge base includes:

Anna — The Calendar Manager

Anna owns the calendar. She never talks to customers. Her only job is placing holds, confirming bookings, and releasing slots. When Steve detects booking-related language (a customer accepts a date, rejects a date, or Steve says "let me check"), he delegates to Anna via an API call.

Anna's rules:

The 6-Gate Compliance Pipeline

Every outbound SMS — whether it's a sales reply, a booking confirmation, or a follow-up — must pass through all six gates in sequence. If any gate fails, the message is blocked entirely. There is no bypass.

GateNameWhat It Checks
Gate 0 Bootstrap Verifies all 7 business files by MD5 fingerprint. Minimum 5,000 bytes required. Combined hash saved for token generation. If any file is missing, corrupt, or tampered with — hard fail.
Gate 1 Context Pulls contact record + last 5 conversations. Outbound guard: if the last message was from us, BLOCK. Deletes queue row, wipes drafts. This is the Double-Send Law — no reply without a fresh inbound.
Gate 2 Draft Scans for internal processing tags (INTENT:, PROPOSED_STAGE:, DRAFT_SMS:, etc.) leaked into the customer message. Any found = fail. Saves clean draft to runtime.
Gate 3 Compliance 8-point check: $ spacing, first name present, no banned phrases, max 1 question, ≤320 chars, landing page for bookings, within curfew (8am–8pm AEST), duplicate send guard (last message must be inbound). Issues clearance token (120s expiry).
Gate 4 Fingerprint Double-token handshake with PC-based GPG locker. Generates TOKEN_A (SHA-256 of fingerprints + phone + nonce), GPG-encrypts it. Generates TOKEN_B. Both tokens must validate before SMS fires. The passphrase never leaves the PC — it cannot be extracted from the VPS.
Gate 5 CRM + Anna Logs outbound to conversations table. Clears inbound flags. Updates contact record with proposed stage. Anna Bridge: detects booking language and delegates slot_confirm or slot_offer to Anna via API. Dedup guard prevents duplicate bookings for same date+time.
Gate 6 Clear Issues final clearance token. Wipes temp files. Job complete. All gates locked, ready for next job.

The Steve–Anna Handshake

When a customer accepts a date, here is exactly what happens:

1. Customer SMS: "Wednesday works perfectly, thanks!" 2. Steve reads bootstrap → drafts reply → Gate 5 detects "locked in" language 3. Gate 5 POSTs to Anna API (:3005/task) → action: slot_confirm 4. Anna reads her bootstrap → Gate 1 loads 14-day calendar 5. Anna Gate 3 checks: date valid? slot 10:30/1:30? no double-booking? routing valid? 6. Anna flips booking from hold → confirmed in CRM 7. Anna writes ANNA DECISION to Steve's job card → INSERTs steve_queue 8. Steve picks up confirmation job → drafts "Locked in for Wednesday 10:30am!" 9. Steve runs Gates 0–6 → SMS sent → customer confirmed

Total elapsed time: under 2 minutes. The customer never knows an AI was involved.

The Double-Send Law

This is the most important rule in the entire system. Steve never sends an outbound SMS without a fresh inbound message first. This is enforced at Gate 1 (outbound guard) and Gate 3 Check 8 (duplicate send guard). If the last message in the conversation was from us, the gate BLOCKS. No double-texting. No "just following up." No spam. This one rule is why customers trust the system — it feels human because it respects the rhythm of a real conversation.

3. The Unified CRM

At the centre of everything is a single SQLite database (crm.db) that every component reads from and writes to. There is no SaaS dependency. No monthly CRM subscription. No API rate limits. The database lives on the same VPS as the agents, the website, the dashboard, and the marketing engine.

Core tables:

Pipeline Stage Management

Every contact moves through a 12-stage pipeline. Stages 1–8 are the cold pipeline (forward only, no skipping). Stages 9–12 are the return pipeline (cycling for repeat customers). Every transition is audited. Every stage has defined triggers and next actions.

StageNameTrigger
1Cold LeadReceived blast or form submission, never replied
2Warm LeadReplied to SMS, asked about pricing or availability
3InterestedDate offered, customer is considering
4ConfirmedBooking placed (hold), awaiting address confirmation
5Address CollectedAddress confirmed, job details locked
6ScheduledJob is on the calendar, pre-job reminder queued
7CompletedJob done, awaiting payment/follow-up
8CustomerPayment received, in retention cycle

4. The Marketing Engine

Facebook Content System

The Facebook posting engine runs on a 3x/day cadence:

Content is drawn from a 77-asset media library organised by theme (mould_health, before_after, maintenance_tip, seasonal_prep, diy_check, local_service, energy_saving, social_proof, video_vlog, referral) plus 20+ AI-generated social cards from the Card Factory.

Captions are never repeated. A pool of 60+ captions across 10 themes ensures every post uses fresh language. The theme rotation ensures the hook angle changes every post — contrarian → stat shock → pain point → social proof → founder voice — so followers never see the same approach twice in a row.

The Caption Rule

Every caption sounds like Jason wrote it. Straight-talking Aussie tradie. Educational. Includes a CTA with the phone number. The system uses local AI (Ollama) to generate themed captions that are indistinguishable from ones Jason would write himself — and costs zero dollars per generation.

Card Factory — AI Social Media Graphics

An automated 6-step pipeline that generates professional social media cards without a designer:

  1. fal.ai background generation — 1480×1480 dark-themed backgrounds with green/blue accent lighting, generated from text prompts
  2. Animated HTML card — CSS gradient orbs, pulsing badges, geometric overlays, JetBrains Mono typography
  3. Puppeteer rendering — 1080×1080 JPG capture from the animated HTML
  4. Vision QC — AI vision model scores each card. Cards scoring below 8/10 are rejected and regenerated
  5. Publication — Cards that pass QC are copied to the public CDN and optionally posted to Facebook
  6. Dual format — V2 generates both 1:1 square for feed AND 9:16 for Reels simultaneously

SMS Blaster — Campaign Engine

For outbound campaigns, the system includes a full campaign wizard with:

Follow-Up System

Three tracks handle every stage of the customer lifecycle:

TrackWhoCadenceMax
Track A — ColdStage 1 non-responders+3d, +7d, +14d3 nudges then closed
Track B — WarmStage 2–3 quoted, not booked+2d, +5d, +10d3 nudges then back to cold
Track C — BookedStage 4–6 confirmed jobsDay before, +1d after, +60d3 nudges then retention

Every follow-up goes through all 6 gates. Every follow-up gives value first (a tip, an insight, something useful) then a soft ask. The banned phrases list is enforced. One question max. First name used. Openings varied. The system processes one follow-up per cycle — never batch, never spam.

5. Infrastructure & Security

How SMS Actually Sends

Outbound SMS is routed through a physical Android phone with an Optus SIM via the Join API. The message flows:

Steve drafts SMS → Gate 0–3 compliance → Gate 4 Token Locker → TOKEN_A (GPG encrypted) → TOKEN_B (GPG encrypted) → Both validated → Join API → Android phone → Optus network → Customer's phone

The PC Token Locker

This is the security backbone. A Python HTTP server runs on a separate physical PC at Jason's location — not on the VPS. The GPG encryption passphrase lives in a file on that PC and never crosses the SSH tunnel. The VPS can only send encrypted blobs and receive encrypted blobs.

What this means: Even if the VPS is completely compromised, the attacker cannot send SMS. They would need the GPG passphrase, which exists only on the physical PC in Kariong. The agent (Claude) never sees raw tokens. Only encrypted blobs pass through the tunnel.

Curfew Valve

A dedicated script controls when Steve is allowed to run. During business hours (8am–8:30pm AEST), the valve is CLOSED — meaning the circuit is complete and Steve processes jobs. Outside those hours, the valve OPENS — Steve is killed, jobs freeze in the queue, and no outbound SMS can be sent until morning.

This is not a soft preference. It is enforced at the process level. Steve's pull daemon checks the lock file before every job. If the lock exists (valve open, circuit broken), Steve stops.

Integrity Tracing

Every gate execution, every SMS send, every booking change is traced with a Magic Cue fingerprint — a timestamped hash chain logged to daily trace files. Traces older than 90 days auto-rotate. Every outbound SMS receives a unique integrity ID. This is not customer-visible. It is an internal compliance mechanism that makes every action auditable.

6. Complete System Architecture

┌─────────────────────────────────────────────────────────────┐ CUSTOMER TOUCHPOINTS SMS (Android/Optus) · Facebook Messenger · Website Facebook Ads · Google Search · Word of Mouth └──────────────────────────┬──────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────┐ CADDY REVERSE PROXY myairconcare.com · crm.myairconcare.com Automatic SSL (Let's Encrypt) └──────────────────────────┬──────────────────────────────────┘ ┌────────────────┼────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ LANDING CRM DASH ANNA API Port 3004 Port 3001 Port 3005 Express.js Flask Express.js └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ └────────────────┼────────────────┘ ┌─────────────────────────────────────────────────────────────┐ UNIFIED CRM (SQLite) contacts · conversations · bookings · steve_queue anna_queue · outbox · blast_recipients · followup_queue └──────────────────────────┬──────────────────────────────────┘ ┌────────────────┼────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ STEVE ANNA BLASTER steve-pull anna-pull blaster-eng Gate 0–6 Gate 0–6 7-filter claude-sms claude-anna Join API └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────┐ PC TOKEN LOCKER (Separate Machine) GPG Passphrase · Port 5558 · 127.0.0.1 only TOKEN_A/B encryption · Bootstrap hash verification └─────────────────────────────────────────────────────────────┘

7. What Changed: Before vs After

FunctionBefore (Jan 2026)After (May 2026)
Lead Response Jason replies when he can — sometimes hours later, sometimes next day Steve replies within 2 minutes, 24/7. Every lead gets a response. Every time.
Booking Management Calendar in Jason's head. Double-bookings happen. Dates offered that Jason can't do. Anna owns the calendar. 14-day view. Zone routing. No double-bookings. Self-correcting.
Follow-ups Jason texts people at 9pm after work. Inconsistent. Some leads forgotten. 3-track automated follow-up. Every lead gets 3 nudges. Value-first, never spam. 100% coverage.
Marketing Random Facebook posts when Jason remembers. No strategy. No tracking. 3x/day posts. 10-theme hook rotation. 77-asset library. AI caption generation. Card Factory graphics.
Website Basic page. No lead capture. No SEO. No tracking. Video-driven landing page. Lead form → CRM. 5 SEO blog posts. GA4 + Meta Pixel + CAPI. Sparkle mouse.
Compliance None. Messages sent without guardrails. 6-gate pipeline. Double-Send Law. Token locker. Curfew enforced. Full audit trail.
Scalability Business = Jason. If Jason stops, business stops. Business = System. Jason does the jobs. The system does everything else.
Cost $0 in software. But hours of admin every day. Missed jobs. Lost revenue. ~$200/month in infrastructure. Zero SaaS subscriptions. The admin done by AI costs less than a single missed job.

8. The Full Technology Stack

Node.js (Express) Python (Flask) Bash SQLite (WAL) Docker (Claude agents) PM2 (process mgmt) Caddy (reverse proxy) Let's Encrypt SSL Join API (SMS) Meta Graph API v19 Facebook CAPI GA4 Brevo SMTP GPG Encryption fal.ai (image gen) Puppeteer (rendering) FFmpeg (video) Ollama (local AI) HTML/CSS/Vanilla JS Canvas API Google Fonts

9. The Numbers

~3 min Avg SMS Response Time
100% Lead Response Rate
6 Compliance Gates
10 Fingerprints Verified/Job
7,950+ Facebook Audience
77 Media Assets
60+ Unique Captions
5 SEO Blog Posts
8 Compliance Checks/SMS
$0 SaaS Subscriptions
10 Content Themes
12 Pipeline Stages

10. What It Costs To Run — Once Built

This is the part that surprises most business owners. Once the system is built and deployed, the ongoing running costs are negligible compared to what it replaces.

ComponentMonthly CostWhat It Replaces
VPS Server (Hetzner/Hostinger) ~$10–20 Runs everything: website, CRM, agents, dashboard, APIs. One box, no SaaS sprawl.
Android Phone + SIM (Optus) ~$30 The physical SMS gateway. One Android with the Join app. Unlimited texts on most plans. Also serves as the token locker host.
Domain Names ~$2 myairconcare.com + any campaign domains. ~$15/year each.
Join App $0 One-time $5 purchase. Bridges the VPS to the Android SMS radio. No per-message fees. No Twilio markup.
Caddy + SSL $0 Automatic HTTPS for all domains. Let's Encrypt certificates. Zero config renewal.
Ollama (Local AI) $0 Runs on the VPS. Generates captions, analyses content. No API keys. No per-token billing. No rate limits.
Claude API (Anthropic) ~$20–50 Powers Steve and Anna. Approx 300–500 customer conversations/month. Each conversation costs fractions of a cent. The only variable cost in the stack.
Brevo SMTP $0 Free tier: 300 emails/day. Plenty for booking confirmations, lead alerts, and nurture sequences.
fal.ai (optional) ~$5 AI-generated social media backgrounds. ~$0.08 per generation. Only used when the Card Factory runs. Not required for core operations.
TOTAL MONTHLY ~$65–100 Replaces: receptionist ($3,000/mo), booking software ($50/mo), marketing assistant ($2,000/mo), follow-up person ($1,500/mo). Total replaced: ~$6,500/month.

The Return On Investment

The entire system costs less per month than a single missed job. A split system clean is $250. A ducted system is $500+. If the old way of doing things — answering calls when you can, following up when you remember — caused you to miss even one job per month, the system has already paid for itself 3–5 times over. And unlike a receptionist, Steve doesn't call in sick, doesn't forget to follow up, and works 24/7 for the same flat cost regardless of volume.

11. What This Means For Other Businesses

The My Air Con Care transformation is not a one-off. It is a repeatable pattern. Any service business — air conditioning, plumbing, electrical, landscaping, cleaning, pest control, building inspection — can be rebuilt the same way.

The pattern is:

  1. Unified CRM — every lead, conversation, booking, and follow-up in one database. No SaaS sprawl. No data silos.
  2. AI Sales Agent — responds to every lead instantly, in the owner's voice, following the business's rules. Never tired. Never forgets.
  3. AI Calendar Manager — owns the schedule. No double-bookings. Zone-optimised routing. Self-correcting.
  4. Compliance Pipeline — every outbound message verified through multiple gates. No spam. No mistakes. No legal risk.
  5. Marketing Engine — consistent posting, fresh captions, AI-generated graphics. Builds audience while the owner works.
  6. Professional Web Presence — fast, beautiful, converting. Video backgrounds. Lead capture. SEO content. Tracking.
  7. Physical Security Layer — GPG token locker on a separate machine. The VPS cannot send SMS without the physical key.

This is not a chatbot glued to a CRM. This is a complete business operating system where two AI agents work inside a compliance framework, reading the business's actual rules, making decisions autonomously, and handling every customer interaction from first enquiry to post-job follow-up — while the owner does the actual work.

The system was built in under 4 months. It costs approximately $200/month to run. It has processed hundreds of customer conversations, managed a full booking calendar, run multi-day SMS campaigns, and generated professional social media content — all without Jason touching a keyboard.

The Key Insight

Most "AI for business" products give you a chatbot that answers FAQs. This is different. This is an agentic system — the AI doesn't just answer questions, it operates the business. It reads the rulebook. It makes decisions. It manages the calendar. It sends follow-ups. It posts on social media. It enforces compliance. It does what a receptionist, a booking manager, a marketing assistant, and a follow-up person used to do — simultaneously, 24/7, for less than the cost of a single missed job.

Want This For Your Business?

If you run a service business and you're tired of missing leads, doing admin at midnight, and relying on your own memory to manage bookings — we can build this for you. Same stack. Same agents. Your business, your rules, your voice.

Get a Free Business Audit →

Or text Steve directly: 0432 055 804

My Air Con Care — 0432 055 804 — Central Coast NSW — ABN: 85 562 602 085
Powered by Autonomos AI — Agentic Business Management Systems