Playbook Hub

Enter PIN to continue

Playbook Hub

Every SOP, framework, and system in one place

24
Documents
4
Categories

Operational Playbooks

How you do things. Reusable SOPs for every major workflow.

6 docs

The Prescriptive Cycle

Consultation method (Suzie/HTNK)

playbooks/consultation-method.md

The Prescriptive Cycle (consultation method)

Mitchell's consultation framework for aesthetic clinics, learned directly from Suzie Hoitink (Clear Complexions founder, grew to 6 locations/70 staff, sold to Vita/Sonic/ASX). Mitchell spent $25k+ learning from Suzie and the American Med Spa Association, then applied it at Face Foundry (Manning WA) over 3.5 years. He delivers it to consulting clients under the names "The Prescriptive Cycle" and "The Foundry Consultation Method."

Source corpus: the full canonical synthesis, source transcripts, and training materials live in a private Google Drive folder ("Suzie Hoitink -- HTNK Advisory", folder ID 1l1lDQJXaLaKqwk3fxEDHCmrtfKNtlly5). This document is the standalone backup so the method survives regardless of where the Drive folder ends up.

Codified implementations:

iPad consultation app: clients/blank-kanvas-consult/ (Assessment > Concern/Pathway > Plan > Review flow)
Training kit: same repo, training/ folder (65-card flashcard distillation, facilitation kit, presenter deck)
On-site delivery transcripts: blank-kanvas-5jun/_ALL_TRANSCRIPTS.txt (72 clips from the June 5 Blank Kanvas delivery)
Performance tracker: clients/blank-kanvas-tracker/ (per-staff PDP workbooks with monthly KPI scorecard)

The core belief

"The consultation IS the treatment." The conversation changes the outcome more than the device. Suzie's illustrative example: same treatment, $350 vs $800 average appointment value, driven entirely by the consultation quality. (This is Suzie's teaching example, not Mitchell's data. Always credit to Suzie.)


The 6-part training spine

Mnemonic: "Our Aesthetic Patients Convert, Earning Respect" (O-A-P-C-E-R)

1. Our Way (vision + values)

The clinic's operating values. For Blank Kanvas, Mitchell adapted Patrick Lencioni's "The Ideal Team Player" into four values with observable Meets/Above behaviours:

Holistic Approach - treat the whole person, not just the presenting concern
Trust & Transparency - honest pricing, honest limitations, no pressure
Collaboration - team accountability, shared goals
Education - every interaction teaches the patient something

Core standard: every team member knows what "meets standard" and "above standard" looks like for each value, with specific observable behaviours (not abstract aspirations).

2. The Aesthetic Patient (motivational personas)

Two bases: Needs-based ("fix it") vs Wants-based ("get ahead"). Read the patient's motivation, not their age.

Controller (Needs-based, any age)

Driver: control over a skin condition (acne, rosacea, melasma)
Key line: "It's my job to get you back in control of your skin."
What they need: a plan with visible milestones, accountability check-ins

Preventer (Wants-based, ~25-40)

Driver: proactive, staying ahead of ageing
Key line: "Your skin is older than you are; my job is to narrow that gap."
What they need: education on what's happening beneath the surface, a maintenance rhythm

Preserver (Wants-based, ~40-55, often perimenopausal)

Driver: maintain what they have, outsource the problem
Key line: "Outsource your ageing to me. It's my problem now."
What they need: a trusted advisor who takes it off their plate, quarterly reviews

Reverser (Wants-based, 55+)

Driver: restore, often event-driven
Key line: "Let's have you at your freshest for the [event], on a plan that lasts beyond it."
What they need: a realistic timeline, honest about what's achievable, a plan that extends past the event

Enhancer (any age) - SKIP this persona. Least loyal, trend-driven, narrow focus ("just filler"), capital-intensive to serve. Not worth building around.

All four served personas share: premature ageing concern, want to continue with you, want a trusted advisor (not a technician).

3. The Prescriptive Cycle (the consult-treat-review loop)

Consultation > Treatment > Review > (repeat)

No patient should ever be outside this loop. Treatment plans are always 3-6 months. Skin changes; review every 3 months to adjust and stay accountable.

#### The 6-step consultation (45-60 min, 15+ min on skincare)

1.Discovery - "Can you tell me about your treatment, skincare and medical history?"
2.Concerns - Hand over the mirror: "Can you tell me what concerns you about your skin?"
3.Assessment - "Can I tell you what I see?" Assess ALL areas, every time. This seeds the need without diagnosing.
4.Plan - Must contain: primary + secondary concern, treatment plan, skincare plan, review date
5.Conversion & close - happens in the treatment room, NEVER at reception
6.Follow-up - booking + skincare confirmed before they leave the room

#### The 5-Minute Review (the single highest-impact tool)

Ring-fenced first 5 minutes of EVERY treatment, EVERY patient. Tools: handheld mirror + notepad.

Three questions:

1."What concerns you about your skin?" (mirror in their hand)
2."Can I tell you what I see?"
3."Step by step, what do you use on your skin morning and evening?"

Purpose: re-emphasises compliance, seeds the skincare conversation early (not as an upsell at the end), confirms intake accuracy, lifts average appointment value above treatment value.

Core mindset: "It's not selling, it's re-valuing." Re-valuing > restocking > better results > better care.

4. Conversion & close

Always use "I" (personal accountability): "I recommend...", "I want to..."
Stress accountability: "I'll check in at your next appointment"
Use risk reversal: "If you don't see improvement by [date], we adjust the plan"
Ask: "How do you feel about that?" then SILENCE (let them do the maths)
4 objection types and responses:
Time: "I totally understand... what can you do?" then silence
Money: "I totally understand... what can you do?" then silence
Confusion: re-explain the plan simply, check understanding
Skepticism: show proof (before/afters, reviews), offer a smaller commitment first
Never leave the room until booking AND skincare are confirmed
Walk the skincare to front desk yourself

5. Effective Prescription (WIIFM)

The shift: from problem-only prescription (industry default) to proactive-ageing prescription.

The pivot line: "Let me explain why that's happening..." (years of sun have aged your skin ahead of your age; the presenting concern is just the evidence).

WIIFM must answer three questions:

1.Why do I need it?
2.What will I notice?
3.What would happen if I didn't?

6. Responsibilities & KPIs

Target metrics:

Forward booking: >80%
Skincare attachment (1+ products): >60%
Consultation conversion rate: tracked per clinician
Average appointment value (AAV): target $400, dermal benchmark $475-500
Productivity per hour
Visit frequency
Plan compliance rate

The 3 Monday Changes

What the team starts doing immediately after training. The smallest possible shift that produces the biggest result:

1.The mirror in every treatment
2.The 3 five-minute-review questions
3."How do you feel about that?" then silence

Skincare protocol: Synergie 5+1

Every patient gets 5 core products (identical across all pathways) plus a concern-specific hero serum plus a PM moisturiser.

5 Core (Synergie's published system):

UltraCleanse (gel cleanser) - AM + PM
Vitamin B (Niacinamide 13%) - AM + PM
Effica C (Vitamin C) - AM
Ultimate A (Vitamin A/retinol) - PM
UberZinc (Zinc SPF 15, 2-in-1 SPF + moisturiser) - AM final step

+1 Hero by concern:

PathwayHero SerumTiming
Clear (acne/congestion)Blem-X (AHA/BHA)PM
Restored (ageing/firmness)SuperSerum+ (Peptides)PM
Bright (pigmentation/tone)EnLighten (Tranexamic acid)AM
Fresh (dullness/texture)ReVeal (AHA/BHA 13/2%)PM, alternate nights with retinol

PM Moisturiser by pathway:

Clear / Fresh: HydroGel (hydrating gel)
Restored: ReClaim (age-defying)
Bright: BrightEnlite (brightening milk)

Homecare is NEVER bundled into the pathway price; prescribed separately for every patient.


Pathway pricing (Blank Kanvas implementation)

All pathways are 12-week, 6-session concern-based programmes with a Week 12 review consultation.

PathwayConcernMemberNon-MemberCore Modalities
Clear KanvasAcne & Congestion$1,180$1,970Hydrodermabrasion, Advanced Peels, Dermapen, LED
Restored KanvasAgeing & Firmness$1,520$1,870Hydrodermabrasion, Dermapen, Dermapen Exosomes, WIN Elevate, LED + nurse consult
Bright KanvasPigmentation & Tone$870$1,670Advanced Brightening Peels, Hydrodermabrasion, Dermapen, LED
Fresh KanvasDullness & Texture$1,050$1,460Hydrodermabrasion, Dermapen, LED + nurse consult

Member pricing charges only for extra treatments (peels/LED come via membership). ~15% below booking separately. Non-member ~14.5% off full list.

Membership tiers:

TierMonthlyKey Inclusions
Tier 1$129Monthly custom peel ($149) + LED ($79) + $50 cumulative credit + 10% retail
Tier 2$149$165 monthly cumulative credit + 10% retail (~11% off all treatments)
Tier 3$299$345 monthly cumulative credit + 10% retail (~15% off all treatments)

Content honesty rules

The $350-to-$800 proof story (same treatment, different conversation) is Suzie's illustrative example, NOT Mitchell's data. Never present as his.
Credentials line: "$25k+ learning from Suzie Hoitink and the American Med Spa Association." Terri Ross removed.
Only Mitchell's own results/stories are his; Suzie's teaching examples stay credited to Suzie.
Suzie's name, method names, and specific frameworks are her IP. Mitchell delivers them under licence/relationship, not as his own invention.

Client Onboarding

New client to fully operational

playbooks/client-onboarding.md

Client onboarding playbook

The reusable process for taking a new client from "yes" to fully operational. Covers access setup, discovery, technical foundation, deliverables handoff, and ongoing operations. Synthesised from the Inglewood access playbook, SEO system runbook, client-launch skill, and every client engagement to date.


Phase 1: Access & accounts (Day 1-2)

Principle: minimise client effort. Aim for "1 link + 2 short asks" (~10 min of their time).

Meta (Facebook/Instagram/Ads/Pixel)

Send one branded Leadsie link. Client clicks, logs into Facebook, ticks assets.
Leadsie covers: Ad Account (manage), Facebook Page (manage), Instagram, Pixel/dataset (manage)
Leadsie can also cover Google (Ads, Analytics, Search Console, Tag Manager, Business Profile)
Critical pre-check (the "Eastbound Digital question"): ask "Do you log into Facebook Business yourself, or did your agency set it up?" If a prior agency holds the BM/Page/Pixel, get them to partner-share or transfer ownership first. Never build on assets a third party can revoke.
Fallback (free): manual Meta Partner share via agency Business Manager ID. If no ad account exists, create one inside their BM and share to yours (client owns, you operate).

Domain / DNS

Preferred: GoDaddy Delegate Access (no password sharing). Invites expire in 48-72h.
Fallback: send the exact DNS records to paste (TXT for Meta domain verification, CNAME for Vercel subdomain)
If DNS is on Cloudflare (Mitchell's own domain): use the API token to add records directly

Booking system (Timely, Square, etc.)

Client adds you as Administrator (free, unlimited admins)
You need: Services/Setup, Online booking, Reporting permissions
You do NOT need: Account area (holds billing)

Google Business Profile

Get access via Leadsie (or direct invitation from client's Google account)
Send a heads-up text first so the access email is not mistaken for spam
If this is a rebrand: rename and rebrand the existing GBP rather than creating a duplicate (preserves reviews, history, ranking). A name change can trigger short Google re-verification; time it with go-live.

Sequencing

All access requests go in one email, ordered easiest-first for momentum. One bundled follow-up question covers the prior-agency ownership situation.


Phase 2: Discovery & strategy (Week 1)

Market analysis

Run deep research on the client's market (competitors, positioning, demand)
Find the ownable category and honest positioning
Run the intelligence baseline (seo-system/intelligence.md): competitor landscape scan, competitor review pull, citation audit, voice-of-customer mining

Client classification

Local single-location, local multi-location, or national service (seo-system/method.md)
This determines the entire strategy emphasis

Naming (for new brands)

Grounded, plain, says-what-it-does, includes the category word for SEO
Reject try-hard, abstract, or foreign-flavoured names for non-elite markets
Check domain + social handle availability
Confirm name with client (it is personal to them)

Deliverables from discovery

clients/<slug>/00-MASTER.md (single source of truth for the engagement)
clients/<slug>/strategy.md (market analysis + strategy)
clients/<slug>/brand.md (voice doc)
Add the brand to skills/_shared/brand-directory.md
Route all copy through the copywriting skill for the client's voice

Phase 3: Technical foundation (Month 0-1)

Everything from seo-system/runbook.md Phase 0, plus the site build:

Site build (new brands)

Next.js 16 + Tailwind v4 + TypeScript (current standard stack)
Pages: home (founder story + offer + one clear CTA), pricing/estimator, service detail, story/about
SEO layer: location pages via generateStaticParams, how-to guides, JSON-LD structured data
Lead capture: form POSTs to /api/lead, emails via Resend
Typography: serif + sans pair via next/font/google (e.g. Fraunces + Inter)
Colours: defined as @theme tokens in globals.css, per-client palette
PIN gate on any unlisted/client page (noindex + random 4-digit PIN)
Deploy to Vercel: rm -rf .next && npx vercel deploy --prod --yes (dev-cache gotcha)
GitHub: gh repo create <slug> --private --source=. --push

SEO foundation

Render + technical check (server-rendered HTML, Core Web Vitals, sitemap, robots.txt)
Schema markup (LocalBusiness/Organization, Service, FAQPage, Review/AggregateRating, BreadcrumbList)
NAP lock (name/address/phone identical everywhere)
GBP build (full checklist in seo-system/off-site-engine.md section 1)
Review engine ON (seo-system/off-site-engine.md section 2)
robots.txt for AI retrieval bots (seo-system/geo-playbook.md template)

Attribution (BEFORE the baseline)

GA4 installed
Click event on every booking CTA
UTM/source params on cross-domain booking embeds
Tracked contact form with hidden source field on the highest-intent path

Baseline

Rankings: geo-grid for local, query rankings for national
AI-citation rate: prompt set across ChatGPT/Perplexity/Gemini/AIO/Claude/Copilot
Review count
Current enquiry volume + source

Phase 4: Deliverables handoff

Stand up the client-facing interfaces (clone from live reference kits, ~15 min each):

The five reusable interfaces

KitAudiencePurpose
Control panelInternal (Mitchell)Phase timeline, "autopilot vs needs-human" split, decisions log, headline metrics
Approval kitClientThe plan in plain English, approve/changes toggle per deliverable, "what I need from you" checklist, one-tap send
Launch kitClientLive asset link, ready post caption with copy button, cover images in 3 ratios, lead-tracker CSV, how-to
Results dashboardClient/internalMonthly KPI cards (attributed enquiries, AI-citation rate, reviews, GSC). Manually updated.
Near-term demand packClientReactivation messages, social before/after series, membership re-book hook, this-week checklist

Clone-and-deploy checklist

1.Copy reference HTML to client-kits/<client>/<kit>/index.html
2.Swap brand tokens in :root (colours, fonts)
3.Replace the DATA arrays (phases, deliverables, market data). Route copy through copywriting skill.
4.Set a fresh random 4-digit PIN (distinct from every other link)
5.Keep <meta name="robots" content="noindex, nofollow">. Never add to any sitemap.
6.Deploy under mitchellkwan.com/clients/<name>.html via rewrites, or use a subdomain via client-subdomain skill
7.Verify: clean URL returns 200, opens with ?k=PIN, blocks without it, zero em-dashes, noindex present
8.Hand Mitchell the link with PIN baked into the URL

Hard rules

Nothing goes live without client approval via the approval kit
Internal panels keep "autopilot" language; client kits strip all jargon
All copy matches the client's voice. No em-dashes.
Reviews/AggregateRating reflect the real Google number (synced monthly)

Phase 5: Ongoing operations

Monthly measurement (the four numbers)

1.Reviews: count + rating + velocity
2.Rankings: geo-grid (local) or query rankings (national)
3.AI-answer visibility: % of fixed prompt set that names the client, across six AI engines
4.Attributed enquiries/bookings (the one that matters)

What runs itself

Review requests, rank tracking, AI monitor, content drip, GBP post scheduling, GSC/GA4 dashboard, internal linking

What needs the client

Real before/after photos, review replies in their voice, approving pages, their own outreach/posting, GBP/account access

What needs Mitchell

Approval gates, sending PR pitches, monthly report send

System evolution

Append to seo-system/LESSONS.md every engagement
Update client's 00-MASTER.md with status changes
Move/add Trello cards as work completes
Note it in daily-hub if there's a follow-up

The three standing gates

Only three things require Mitchell's explicit approval:

1.Anything that spends money
2.Anything outward-facing (client comms, going live, publishing)
3.Anything structural (architecture decisions, new tools, process changes)

Everything else: just do it.

Shoot & Production

Filming, editing, delivery

playbooks/shoot-production.md

Shoot & content production SOP

Everything about filming, editing, and delivering video content. Covers gear, setup, filming process, editing pipeline, quality checks, and delivery. Synthesised from mitchellkwan-site production docs, client shoot plans, and the Listing Motion fulfilment pipeline.


Gear

Camera

Primary: Lumix S5IIX + Sigma 35mm f/1.2
Recording format: 6K open gate (full 3:2 sensor), not native 16:9. One take yields both a clean oversampled 9:16 vertical crop (for Reels) and a 16:9 version.
Settings: 25p, 1/50 shutter (Australia mains flicker avoidance). Focus locked on eyes.
Compose within the 9:16 frame guide (marker on).

Audio

Lav mic is mandatory for quiet/soft-spoken subjects. Fixes soft delivery better than a boom.
Boom as backup.
All mics mixed and transcribed with faster-whisper.

Teleprompter

Elgato Prompter XL (15.6" screen, USB-C, auto-mirrors)
Connected to PC, Mirror OFF in software (hardware flips it)
Scripts auto-load from content/scripts/youtube-script-*.md at build time
Speed range 0.25-12 (default 3)
Clicker or Stream Deck mapped to Spacebar for hands-free start/stop
Live at mitchellkwan.com/teleprompter (noindex)

B-cam (client shoots)

Tighter lens (50/85 equivalent or crop in), 30-45 degrees off A-cam
For hands/eyes/reaction moments and clean cuts

Lighting

Soft/warm, window-light feel (~5000K, made to read as natural light)
No hard studio look
For cleaning brand shoots: "warm and lived-in, not glossy"

Setup & framing

Talking heads (own content)

Locked off on tripod, lens at exact eye level
Mid-chest up, eyes on upper third, minimal headroom (captions need the lower third)
f/1.4 to f/2.0 for eye-sharpness safety with shallow background blur
Clean angle, plain white wall, motivated lighting
Tight framing so no gear visible
Look straight down the barrel, never up at it

Client interviews

A-cam: medium-close, head and shoulders to mid-chest
Eye-line just off lens (subject talks to Mitchell, not camera)
Eye-level or slightly below, never looking down on subject
Subject on a third, looking into open side of frame
Background: relevant clean space thrown soft with shallow DOF
B-cam: tighter, 30-45 degrees off A-cam

Wardrobe

Mitchell: plain well-fitted polo, no logos. Navy over black (reads warmer, more depth against light wall). Hair done. Short sleeves/tattoos fine.

Client subjects: plain, clean, well-fitting top in soft neutral. No logos, busy patterns, or bright colours. Hair tidy and back. Brand-specific wardrobe pieces (e.g. apron) in brand accent colour.

Job application videos: fitted solid mid-tone top. Navy, charcoal, olive, muted earth. Avoid pure white (blows out), pure black (flattens), stripes/checks (moire).


Filming process

Core capture workflow (locked, 4 steps)

1.Voice memo first. Talk it out unscripted to lock words and phrasing. In the car, walking, whenever the thought hits.
2.Light edit. Tighten opening, kill filler, keep the voice 100% intact. Never rewrite into "cleaner" language.
3.Film second. Riff on the same shape on camera. Not reading, not performing. Re-saying something he already believes.
4.Structure per piece: one sentence or key point as anchor, then riff. Avoid rigid hook-mistake-consequence-CTA framework.

Script production method (locked)

Interview-first. Mitchell talks first, Claude builds from that. Never Claude guessing and Mitchell reading cold.
Hybrid prompter document is the deliverable: key beats in order, exact phrases to hit, language doctrine words to land, full caption ready.
Four line types in scripts:
bold = load-bearing, say near-verbatim
normal = riff-able
>> = ad-lib/story prompts, not words to read
*[cues]* = production cues, hidden by default

Batch filming

3-5 videos per session, same setup/outfit for visual consistency
Film the ones that flow, skip forced ones
Open slots for stories that surface naturally during filming

Client interview technique

Do NOT start with the camera. Chat first, roll when subject is already mid-flow.
Tell them no wrong answers, you will edit, they can ramble and restart.
Ask them to fold the question into the answer so clips stand alone.
Let silences sit. Soft-spoken people fill pauses with the real, unguarded line.
"Tell me more about that" and stay quiet.
Pull for specific stories (one client, one home) over generalities.
For nervous first-timers: seat them (reduces self-consciousness, keeps mic consistent), let them breathe, 5-10 min breather before interview if they've been physically working.

Before/after technique (cleaning, aesthetics)

Lock the tripod, exact same framing/lighting/time of day for before and after
Shoot "before" stills yourself before subject arrives
Get tight detail shots (tap, glass, cooktop reflection) as scroll-stoppers
Premium version: show elevation and detail, not grimy-disaster-to-sparkle shock value

Editing pipeline

Short-form cuts (Reels/TikTok)

See reel-edit-sop.md for the full caption style and automated pipeline.

Client video cuts

Separate exports per placement (3:4, 9:16, 4:5)
Timestamps absolute from raw file start so editor can scrub directly
Wording verified verbatim against audio (faster-whisper small.en pass, then locked with large-v3)
Hard cuts throughout, fade only into end card
Subject centred, cut on motion, average cut ~3s
Captions burned in, verbatim, 3-4 words max, word-timed
Licensed track ducked under voice, flat into end card, ~-14 LUFS
End card: white line-art logo on brand background, soft CTA, NO offer/price/guarantee burned in (keeps cuts reusable)

Listing Motion stitch pipeline

stitch.mjs (Node/ffmpeg): folder of clips sorted alphabetically, crossfades (default 0.5s), background music (looped/trimmed/faded), optional talking-head intro, optional watermark
Output: 1920x1080, 30fps, H.264 MP4
Options: --transition, --no-xfade, --res, --fps

Cover/thumbnail design

Text-behind-the-head effect (4-layer build)
Type: Fraunces italic 400 (feature word) + Archivo Medium 500 lowercase (support line)
True Instagram 4:5, 2px grid gaps, sharp corners
BTS covers: image-led with soft bottom gradient scrim

Quality checks

Before filming

AHPRA/TGA video: verify exact rule wording against primary guidance
Campaign numbers: confirm figures are still current
Bio claims: verify against professional reference doc

During editing

Compliance lens on all client content: AHPRA s133 safe, no treatment-efficacy or results claims
No "scan/imaging/diagnostic" language
Clinician lines = approach/care/values (safe). Patient experience = atmosphere/no-pressure only.
Each subject must give written sign-off on their quoted lines and being featured

Before publishing

Check full-screen on a phone
Run the get-better loop after each batch: which hooks landed, which ad-lib prompts were used, voice/format learnings fed back into docs

Delivery

YouTube

Upload, set VIDEO_ID constant on the matching site page so video embeds. Video + article on same topic = double entity signal for AI citation.

Meta ads

Separate exports per placement (3:4, 9:16, 4:5). Offer/price lives in ad caption or landing page, never burned into the video.

Listing Motion

Clean delivered version (paid, no watermark) vs. watermarked sample (cold outreach). Deliver as MP4.

Video hosting

Bunny Stream library 655909. Note video ID for each upload.

Outreach prerequisite

6-9 posts on the grid before DMs begin (credibility threshold).

Collaborators

Summer North (summer@coldsocials.com) handles BTS footage.

Reel Editing SOP

Caption style + automated pipeline

playbooks/reel-edit-sop.md

Reel editing SOP

The production method for short-form vertical video (Reels/TikTok/Shorts). Covers the caption style, cut pipeline, b-roll integration, and delivery. The pipeline is automated end-to-end via Python + ffmpeg at reel-edit/.


The caption style ("Submagic profile")

This is Mitchell's signature look. Every reel uses this exact spec.

Fonts

Primary body: Poppins SemiBold (white, 90px at 1080x1920)
Emphasis words: EB Garamond Italic (white, 98px at 1080x1920)
Font files live in reel-edit/fonts/

Emphasis rule

A defined set of domain-specific words (e.g. "preventives", "preservers", "peri-menopausal", "consultation", "clinician", "marketer") switches from Poppins to EB Garamond Italic at the larger size. The emphasis set is defined per piece.

Colours

Body captions: white (#FFFFFF)
Gold accent: #C9A227 (lower-third bar, infographic highlights, callout underlines, corner-tag bullets)
Muted cream: #D8D2C8 / #EDE6DA / #F0ECE2 (subtitle lines, secondary text)
Dark overlay: #120F0D / #1A1512 (hook/outro card backgrounds)

Positioning

Canvas: 1080x1920 (9:16 vertical)
Body captions: bottom-center, MarginV=480 (lower third of screen), MarginL/R=110
Hook text: dead center of screen
Lower-third name block: anchored at y=1604, gold vertical bar (9px wide, 118px tall) at x=70

Animation: word-by-word reveal

Each word starts fully transparent and fades in over 90ms at its exact spoken timestamp. Words appear in 4-word chunks; each chunk starts the instant the first word of that chunk is spoken. This creates the "word-by-word pop" look.


The cut pipeline (end-to-end)

Inputs

Each piece is defined as a tuple: (id, source_clip, start_sec, end_sec, hook_text, emphasis_words, display_name)

Steps (all automated via cut_pieces.py)

1. Trim

ffmpeg extracts the segment from the source clip, re-encoded to h264/veryfast/crf18 + AAC.

2. Transcribe

faster-whisper (model "small", CPU, int8) with word-level timestamps and VAD filtering. Produces per-word start/end times relative to the trimmed clip.

3. Build ASS captions

The build_ass() function takes the word list, hook text, emphasis set, and duration:

Chunks words into groups of 4
Creates word-by-word animated caption lines
Adds a semi-transparent dark overlay card for the first ~2.3 seconds
Places the hook text (Poppins, 82px, white, centered) over that card
Writes the .ass file

4. Render

ffmpeg composites the trimmed video with the ASS subtitles:

Video filter chain: crop=1600:2844:280:120 (center-crop 4K source) > scale=1080:1920:flags=lanczos (to 9:16) > colour grading > subtitles (burn in captions with fonts)
Colour grading baked in: contrast 1.05, saturation 1.08, gamma 1.02, warm colour balance (red shadows +0.02, blue shadows -0.02)

5. Publish

Copies the rendered file to G:\My Drive\MK reels - phone review (Google Drive sync folder) with the display name, then sends Mitchell an SMS with a link. A .published marker prevents re-publishing on re-runs.


Output specs

SettingValue
Resolution1080x1920 (9:16 vertical)
CodecH.264 (libx264), preset medium, CRF 19
Pixel formatyuv420p
Framerate30 fps
AudioAAC 160 kbps
Container flags+faststart (progressive download)

B-roll integration

B-roll is generated via AI video (Google Veo 3.1 through Higgsfield, model veo-3-1-fast). All clips are 9:16, 6 seconds, text-to-video.

Compositing (from broll/fc.txt ffmpeg filtergraph):

Each b-roll clip: trimmed to 3 seconds, scaled to 1080x1920, 0.25s alpha fade in/out
Overlaid onto the main video at specific timestamps as 3-second full-screen cutaways
ASS subtitles burned in last (after b-roll overlays)

Quality check: eyeball each AI clip. If walls bend, furniture melts, mirrors wobble: regenerate once or swap the photo. Never keep a warped clip.


Infographic variants

build_ass.py produces three visual overlay variants on top of the word-by-word captions:

Variant A ("comparison"): full-screen dark card insert with labeled bands (e.g. "Your 3 Patient Types"), gold accent bar on the highlighted band
Variant B ("callouts"): pop-on stat callouts in upper-right corner at timed moments. Face stays visible.
Variant C ("corner tag"): persistent upper-left card with bullet points that accumulate over time. Face stays visible.

All three share the same hook card, lower-third name block, body captions, and outro CTA card.


File naming

Source clips: camera card names (C9596.MP4)
Cut pieces: {number}-{slug} (e.g. 1-not-a-clinician)
B-roll: descriptive names (clinic.mp4, reception.mp4, abstract.mp4)
Iteration renders: mk_reel_v{N}.mp4
Final: mk_reel_final.mp4
Drive upload display: {number} - {Human Title}.mp4

Standalone reel (for existing footage)

For a single reel not part of a batch cut:

1.Place source clip in reel-edit/
2.Run python transcribe.py to get word-level transcript
3.Run python build_ass.py to generate the 3 infographic variants
4.Preview each variant, pick the strongest
5.Render with ffmpeg using the chosen ASS file
6.Copy to Drive review folder, SMS Mitchell

Key files

FilePurpose
reel-edit/transcribe.pyStep 1: speech-to-text with word timestamps
reel-edit/build_ass.pyStep 2a: ASS subtitle builder (standalone reel, 3 variants)
reel-edit/cut_pieces.pyStep 2b: batch cut pipeline (trim + transcribe + caption + render + publish)
reel-edit/watch_cuts.ps1Monitor: polls for engine exit, reports state
reel-edit/fonts/Poppins SemiBold + EB Garamond Italic TTFs
reel-edit/ref/refreel.mp4Style reference reel

Site Build

Next.js stack, design system, deployment

playbooks/site-build.md

Web design & site build playbook

The standard stack, architecture patterns, design system, and deployment workflow for client websites. The client-launch skill automates most of this; this doc captures the methodology so it's readable by a human.


Tech stack (current standard)

Framework: Next.js 16 + React 19
Styling: Tailwind v4
Language: TypeScript
Runtime: Node 22.x
Email: Resend (transactional, lead notifications)
Database: @neondatabase/serverless (when needed)
Hosting: Vercel
DNS: Cloudflare (mitchellkwan.com) or client's registrar (GoDaddy, etc.)

No component library on the current stack. Older sites (ARA) used shadcn/Radix, but the new standard is custom components.

Client kits (approval kits, launch kits, dashboards) are pure static HTML, zero dependencies. Single index.html files with inline CSS and JS.


Site architecture

Standard page structure

app/
  page.tsx                    -- homepage
  areas/[slug]/page.tsx       -- suburb/location SEO pages (programmatic)
  guides/[slug]/page.tsx      -- how-to content guides
  admin/page.tsx              -- admin panel (if needed)
components/
  Nav.tsx                     -- shared navigation
  Footer.tsx                  -- shared footer
  Reveal.tsx                  -- scroll-reveal animation
  BookingForm.tsx             -- lead capture form
  QuoteEstimator.tsx          -- interactive pricing estimator (if applicable)

Layout pattern (app/layout.tsx)

Fonts loaded via next/font/google, exposed as CSS variables (--font-serif, --font-sans)
Both variables applied to <html> className
Shared <Nav /> and <Footer /> wrapping {children}
Full <Metadata> export with OG, Twitter card, metadataBase, canonical

Location/suburb pages

Programmatic via generateStaticParams() from a data file
Each suburb page gets: dynamic generateMetadata(), JSON-LD structured data (e.g. HouseCleaningService with areaServed), links to nearby suburbs
Must be genuinely unique per suburb (not near-duplicate). Ship in waves, not all at once.

Design system

Typography

Always a serif + sans pair via next/font/google:

BrandSerifSans
Honest Home CleaningFrauncesInter
mitchellkwan.comCormorant GaramondInter
ARACormorant GaramondInter
Extreme BeautyFrauncesInter

Tailwind v4 gotcha: a @theme token pointing at a runtime next/font variable gets silently dropped. Use an arbitrary utility (font-[family-name:var(--font-x)]) instead.

Colour system

Defined as @theme tokens in globals.css. Each client gets its own palette:

@theme {
  --color-background: #F7F4EF;   /* warm ivory */
  --color-accent: #2F5D50;       /* deep eucalyptus */
  --color-ink: #1C1B19;
  --color-stone: #6B655C;        /* muted body text */
  --color-border: #E3DCD1;
}

Client kits use a :root block with similar tokens (--ink, --bone, --paper, --clay/terra, --line, --serif, --sans).

Motion / animation

One easing curve everywhere: cubic-bezier(0.16, 1, 0.3, 1) ("ease-out-expo")
Three duration tokens: --duration-fast (150ms), --duration-base (400ms), --duration-slow (800ms)

Scroll reveal

A <Reveal> component using IntersectionObserver (threshold 0, rootMargin 0px 0px -60px 0px). Applies .reveal (opacity 0, translateY 20px) then .visible on intersect. Accepts a delay prop for staggering.

Link hover

Underline slide-in via ::after pseudo-element with scaleX(0) to scaleX(1).


PIN-gated pattern

Used for ALL client/unlisted/sensitive links. Two layers:

Client kits (static HTML): full-screen #gate overlay with numeric code input. JS checks ?k=PIN in URL or form input against hardcoded var KEY="XXXX". On match, hides #gate, shows #app, saves to localStorage.

Site-level: pages carry <meta name="robots" content="noindex, nofollow"> and are excluded from the sitemap.

Rule: always hand the link with ?k=PIN already in the URL. One-tap opening, no hunting for codes.


Lead capture

Standard pattern across all sites:

Form POSTs to /api/lead (Next.js API route)
Emails via Resend (RESEND_API_KEY, LEAD_TO, LEAD_FROM env vars)
LEAD_TO is comma-separated for multiple recipients
Sends from notifications@ara.mitchellkwan.com (the one verified Resend domain on the free plan) with the client's display name

Deployment workflow

1.Build locally: npx next build (verify before showing anything)
2.Critical: rm -rf .next before deploy (dev cache breaks the Vercel upload)
3.Deploy: cd site && rm -rf .next && npx vercel deploy --prod --yes
4.Set env vars on the Vercel project, redeploy, test /api/lead live
5.Domain setup:
mitchellkwan.com subdomains: Cloudflare DNS API token (automated via client-subdomain skill)
External registrars (GoDaddy): A record 76.76.21.21, add www as a domain on the Vercel project
6.Flip noindex off at go-live (if the page should be indexed)
7.GitHub backup: gh repo create <slug> --private --source=. --push
8.Secret-scan staged tree first (git grep --cached for key prefixes: re_, cfat_, etc.)

SEO integration

Every client site gets the SEO foundation from seo-system/runbook.md Phase 0:

Server-rendered HTML for content that matters
JSON-LD structured data (LocalBusiness/Organization, Service, FAQPage, Review/AggregateRating, BreadcrumbList)
robots.txt allowing AI retrieval bots (template in seo-system/geo-playbook.md)
Sitemap excluding gated/unlisted pages
NAP consistency with GBP and all directories

Reference builds

SiteStackReference for
Honest Home Cleaning (clients/meg-rockingham-cleaning/site/)Next.js 16 + Tailwind v4Current standard, colour system, location pages
mitchellkwan.com (mitchellkwan-site/)Next.js 16 + Tailwind v4Teleprompter, SEO cluster, content system
ARA (ara-site/)Next.js 14 + shadcn/RadixOlder stack, Resend lead capture
Client kits (client-kits/)Static HTMLPIN gate, kit pattern, brand token swap

Pricing & Proposals

Margin model, scorecard, guarantees

playbooks/pricing-proposal.md

Pricing & proposal framework

How Mitchell prices, proposes, qualifies, and guarantees across all his businesses. Synthesised from aesthetic-ops, opportunity engine, Jessie, Meg, and the product-on-a-page methodology. This is the reusable thinking, not a price list (prices change; the framework doesn't).


Pricing principles

1.80%+ gross margin on every engagement. This is a hard floor, not a target. Below 80%, the business doesn't survive solo. Owner's time is NOT COGS; it IS the margin.
2.Flat outcome pricing over hourly. The client pays for the result, not your hours. Hide the hourly anchor. (Meg: $230 for a clean house in ~3hrs = ~$77/hr effective, but the client never sees "per hour".)
3.Price is the growth lever at low volume. With a 5-10 client cap, you can't grow by adding clients. You grow by raising the price per client. Never discount to fill; raise to filter.
4.Never bundle ad spend into your fee. Client pays Meta/Google directly. Your fee is for the work, not the spend. Keeps incentives clean.
5.Month-to-month, no lock-in. The work should be good enough to retain without a contract. Month-to-month forces you to keep delivering.

The margin model

COGS calculation (aesthetic-ops reference)

Sprint/build COGS (~$1,270):

Editing, tracking setup, AI tooling, fuel, software
At $5,000 fee = ~74.6% GM (below the 80% floor, flagged as knife-edge)
At $8,000 fee = 84.1% GM (comfortable)

Ongoing COGS (~$480/month per client):

At $2,500/month = 80.8% GM (just above floor)
Below $2,500 breaks the 80% floor

Scaling rule: do NOT hire a videographer until sprint price is repositioned to $12,000-$15,000 minimum (adding a $1,500 shooter COGS at $8k = 65% GM, fails the floor).

Shadow rate

Use $100-$150/hr as a decision-making tool only (not a billing rate). If a task takes 10 hours and the client pays $800, the shadow rate says "this isn't worth it." Never expose this to clients.


Qualifying framework (the 6-pillar scorecard)

Binary scored (1 / 0.5 / 0) per pillar:

1.Revenue threshold - minimum $40k/month (below this, can't fund the engagement)
2.Booking infrastructure - can patients book + pay deposit without staff? 24/7 option?
3.Demand and attribution - do they know what drives their best months?
4.Trust assets - does online presence reflect clinical quality?
5.Compliance posture - TGA/AHPRA managed actively?
6.Owner mindset (internal only, never shown publicly) - ready to commit? Not still hoping current agency improves?

Scoring:

6/6 = ideal, move quickly
4-5/6 = good, standard process
3/6 = marginal, qualify further on call
Below 3 = not now; offer scorecard, follow up in 90 days

The public /scorecard tool covers pillars 1-5. Pillar 6 and the hard revenue filter are assessed on the call.


Proposal / funnel structure

The sequence (aesthetic-ops)

Each step is designed so no step asks for commitment before the previous step is complete:

1.Free clinic teardown - compliance-led AHPRA hook, then dollarised leak (what the current gaps are costing), then side-by-side (what good looks like). Costs ~60-90 min of Mitchell's time. A handful per month.
2.Soft 20-minute call - qualify on the scorecard. Not a close.
3.Productised install with flat-count guarantee and refundable deposit
4.Graduated ongoing fee - starts only after the booking target is hit

The scorecard is not a lead-gen form. The call is not a close. The sprint is not a lock-in.

Simpler structures (non-agency clients)

Jessie (family-rate): straightforward proposal page. Setup > monthly > content refresh billing.

Meg (cleaning): free 60-second video walkthrough (quoting mechanism + premium signal) > instant estimator (secondary self-qualify tool) > membership tier quote. No paid front door.


Guarantee structures

The conditional guarantee (aesthetic-ops)

"You put down a fully refundable build deposit. I build and launch the machine. If it has not produced confirmed, deposit-paid bookings [a real date and time, not leads, not enquiries] to the agreed threshold within 30 days of go-live, you get the full deposit back and either of us can walk, and no ongoing fee ever starts."

Conditions that void the guarantee:

Client must fund agreed minimum ad spend (to Meta, $3k/month minimum)
Client must use the booking/follow-up flow
Client must reply to enquiries inside agreed time
Client must run consults to the framework

What the refund covers: build deposit only, never ad spend. Filmed assets stay with Mitchell on a refunded miss.

Hard language rules:

Never say "no upfront fee" once a deposit is charged
Always "refundable build deposit"
The guarantee is risk-reversal, never the headline

The anti-guarantee (premium/selective variant)

"I only install where the audit shows the lift is there; if it isn't, I tell you not to buy."

Screens out low-effort buyers, reinforces key-person positioning. Used for $100k+/month clinics or interstate clients.

Service guarantees (non-agency)

Meg (cleaning): guaranteed re-clean on bond cleans (justifies premium price). No formal money-back beyond that.


Payment terms by engagement type

Agency (aesthetic-ops)

Sprint deposit: half on signing (locks area + books shoot), half at go-live. Fully refundable under the conditional guarantee.
Ongoing: monthly, month-to-month, starts only after booking target is hit
Ad spend: client funds separately, $3k/month minimum to Meta
Anti-whale rule: no single client >30-40% of revenue
Important: the deposit is a liability until the result lands, not day-one cash

Family-rate client (Jessie)

Setup one-off + monthly ongoing. Filming days billed separately. Reassess at 90 days.

Service business (Meg)

Per-visit flat rate by tier. Fortnightly or weekly cadence. Initial Reset surcharge at 1.5x.

Pricing by business type

Agency (aesthetic-ops, live pricing)

TierBuild DepositOngoing (monthly)Ad Spend (client's)Gate
Standard$5,000 (refundable)$2,500$3,000+ to MetaScorecard 4+/6
Premium/interstate$8,000$3,500$3,000+ to Meta$100k+/mo revenue, scorecard
SEO add-on--+$1,000--Existing retained client

Family-rate (Jessie)

ComponentPrice
Setup$3,500 + GST (normal $5-8k)
Monthly$1,500 + GST (normal $2,500-$3k)
Content/filming day~$1,000 billed separately

Cleaning (Meg, flat-rate by size)

Beds/BathsFortnightlyWeekly
2bd/1ba$150$130
3bd/2ba$230$195
4bd/2ba$290$250
5bd/3ba$360$310

Add-ons: oven $90, inside windows $80-150, fridge $40, carpet $40-70/room


The money model to $20k net/month

Two engines stacked:

Engine 1 (ongoing book): 8 retained clients x $2,500/month = $20k gross. Solo COGS low (~$2-3k/month). Net ~$15-16k/month.
Engine 2 (install cash): ~1 install/month at $5,000 deposit nets ~$4-4.5k after shoot + build.
Combined: ~$19,750-$20,250 net/month.

Flagged risks:

This is a knife-edge with no buffer for churn or a missed install month
Conservative assumptions: ~20-25% annual churn, ~25-35 focused hrs/week realistic capacity
Solo ceiling realistically 5-7 retained clients = ~$12-16k net without install cadence
Durable $20k path: raise ongoing fee into a smaller premium book (6-7 clients at $3-3.5k), or the year-2 IP layer (certification/licensing)

Year-2 ascension (gated, not live)

Certification: from $3,500 per clinic team
Method licence: from $1,500/month per operator + per-install royalty
Gates: requires Suzie's written permission, one clean owned consult-lift measurement, and ~10-15 documented installs

SEO Operating System

The complete SEO/AI-SEO system. Method, execution, and measurement.

9 docs

Method

4 pillars, local vs national fork

seo-system/method.md

The method

The shift this is built on

Buyers increasingly ask an AI ("best cosmetic tattoo in Perth", "who fixes botched brow tattoo near me", "best aesthetics recruiter in Australia") instead of scrolling Google. The AI builds an answer from sources it can read, trust, and cite, then names a few businesses. Classic SEO (rank on Google) and GEO (get cited/recommended by AI) share ~80% of the same foundations, so we do both at once.

Two hard truths to keep front of mind:

AI is far more selective than Google. It names roughly 1-7% of businesses (ChatGPT ~1.2%, Perplexity ~7.4%) vs ~36% in Google's local 3-pack. This is a "get into the small named set" game, not a "rank #4" game.
A business's own pages rarely earn the recommendation. Studies show brands' own "best of" pages get cited but recommend a competitor most of the time. What gets you *named* is third-party corroboration: reviews, independent "best of" listicles, Reddit, consistent directory presence. Your site makes you *understandable and trustworthy*; other people's signals make you *recommended*.

The 4 pillars

1.Technical foundation (machine-readable). Server-rendered/static HTML for the words that matter, fast Core Web Vitals, clean sitemap, robots that allow the AI retrieval bots (OAI-SearchBot, PerplexityBot, Claude-User, Google-Extended, Googlebot, Bingbot), dead links 301'd, and structured data (Organization/LocalBusiness, Service, FAQPage, Review/AggregateRating, BreadcrumbList, Article).
2.Entity & authority (a known, trusted thing). One crisp "who/what/who-for/where" statement, consistent everywhere. NAP identical across site, GBP, and every directory (this is the single cheapest high-leverage win). Third-party citations and reviews. Schema sameAs to socials/profiles.
3.Content (answer the exact questions buyers ask). Map the real buyer questions ("best X in [city]", "how to choose Y", "X vs Z", "is Y worth it", "can Z be fixed"). Answer each directly, answer-first, in plain language, with FAQ blocks. Pillar + supporting spokes for category authority. Genuinely useful and honest (thin/salesy gets demoted).
4.Measurement (prove it, and feed the case study). A fixed prompt set run monthly across the AI engines (mention/recommendation logged); GSC rankings + clicks; and the number that matters: enquiries attributed to search. See runbook.md for the attribution setup (set it up before the baseline).

The fork: local vs national (pick before you build)

The pillars are constant; the *emphasis* changes completely by client type.

Local, single-location (e.g. Extreme Beauty: one cosmetic-tattoo studio in Bedford).

The win is the local pack + "near me" + AI local answers, which are driven mostly by Google Business Profile (~32% of local-pack weight, primary category is the #1 factor), proximity, and reviews (volume + velocity + recency), NOT by how many pages you publish.
On-site plays: a tight set of genuine suburb/area pages (waved, never a doorway dump), a wedge the competition under-serves (for EB: "correction" / fixing botched work, high-intent, thin competition, price it openly), and a small answer-first comparison/guide set for AI.
Reviews are the engine. AI rarely names a local business under ~150 reviews; target a sustained >=4-6 new/month with service+suburb keywords in them.
Off-site > more pages: GBP build, review engine, local directories, and getting named in local "best of" listicles + Reddit.

National service / B2B (e.g. ARA recruitment; mitchellkwan.com).

The win is organic + AI citation on category questions. Lead with an uncontested white-space segment (ARA: brands/distributors commercial roles) and defend the contested base.
Anchor asset = a proprietary report / data guide (the moat) that earns links and citations, launched via the launch kit (LinkedIn post + covers + UTM), with a pillar/spoke content cluster beneath it.
Reviews matter less; digital PR, the report, and the named expert's LinkedIn matter more.

Current best practice / what's changed (keep this honest and current)

FAQ rich results are dead (Google deprecated them 7 May 2026). Keep FAQPage schema (still valid + AI-readable) but its job is AI-readability only, not a Google SERP feature. Don't budget for or "verify" FAQ rich results.
GBP Q&A API shut down (Nov 2025). Seed Q&A manually in the app. GBP Posts still exist but are an engagement/recency nicety, not a ranking lever; don't over-invest.
Scaled/thin location pages get deindexed. A single-location business publishing many near-identical suburb pages at once reads as a doorway dump. Make each genuinely unique, ship in waves, and skip any you can't make truly useful (let GBP carry "near me" there).
Attribution can't be retrofitted. Cross-domain booking iframes (Timely etc.) are invisible to GA4, and DM/IG funnels are invisible too. Instrument before the baseline (runbook.md).

The case-study engine (why free-for-case-study works)

Freeze the baseline -> run the system -> measure the lift -> publish with client sign-off. Each engagement produces proof for Mitchell's positioning and a more productised service. Run engagements ~9-12 months (long enough for rankings + AI citation + enquiry attribution to move).

Honest constraints (set these expectations every time)

AI visibility is not directly buyable; you influence inputs (readability, authority, reviews, mentions), not the output.
Results compound over months, not days. (So for an under-booked local client, pair the SEO engine with a near-term demand track: reactivation, social before/afters, a membership re-book hook.)
AI-answer measurement is sampled (prompt-and-log), not a precise dashboard. Report it as a trend.
Origin doc this supersedes/absorbs: ara-seo/ai-seo-playbook.md (the first version of the 4 pillars). Worked examples: clients/extreme-beauty-site/seo/ (local), ara-seo/ (national white-space), mitchellkwan-site/docs/09-organic-search-strategy.md (national GEO).

Rubric

Must-be-true / need-to-believe

seo-system/rubric.md

The rubric: must-be-true / need-to-believe

Every page (and every cluster) is planned against two questions before a word is written:

Must-be-true (the page's job in search): what has to be true of the page for it to rank, get cited by AI, and not get penalised. The engineering brief.
Need-to-believe (the reader's job): what a real buyer has to believe to take the next step. The copy brief.

A page ships only when it satisfies both. This is the spine of every content brief; reuse it per client.

Honesty rules (locked, every client)

No fabricated claims, no service the client doesn't offer, no invented local detail, no fake reviews/ratings.
Specifics over abstractions (real numbers, named examples, real prices). No "industry-leading / world-class / transformative."
No em-dashes anywhere (Mitchell's absolute rule, and most brands' voice doctrine bans them too).
Match the client's voice exactly. Route through the copywriting skill, which holds each brand's voice.
Every figure must be sourced (own/client data, a cited source, or the statutory/authoritative reference). Flag thin data; never invent to fill a gap.

Standard cluster types and their must-be-trues

Money / service pages: exact-match intent, deep and specific, schema (Service + Breadcrumb + Review), clear primary keyword (no two pages competing for the same one). Need-to-believe: "they do exactly this, they're experienced, the price/terms are clear, low friction to start."

Local / area pages (local clients): one suburb per page, suburb in URL/title/H1/areaServed schema, genuinely unique (distinct angle + a real local note + a suburb-specific FAQ), NOT a near-duplicate. Ship in waves, never all at once. Need-to-believe: "this is close and easy, they're proven, prices on the page, no pressure."

The wedge (the under-served, high-intent cluster): out-cover every competitor (they're usually thin), be honest about limits, and show the price the market hides. This is the differentiator; give it the most craft. Need-to-believe: "my specific problem can be solved, by someone honest enough to tell me if it can't, and I know what it costs."

Decision / comparison pages (AI-answer targets): answer-first (resolve it in the opening lines with a defensible recommendation), honest framing (capture intent for a thing the client doesn't do without claiming to do it), FAQPage + Article schema. Need-to-believe: "I understand which option suits me, and they clearly know this cold."

The moat pillar: the comprehensive, genuinely-useful reference others and AI cite; the internal-link hub (links down to every cluster page, each links back up). For national clients this is often a proprietary report. Need-to-believe: "this is the definitive, no-sell authority."

The thin-content line (the easiest way to get it wrong)

There's no magic word count, but the test is: does this page genuinely help a person beyond what an existing page already gives them? If you can't write something true and non-generic for it, don't build it. Identical review blocks, recycled intros, and swapped city names are the clearest doorway tells; strip them.

Reference implementation: extreme-beauty-site/seo/CONTENT-BUILD-RUBRIC.md (the EB-specific application, with the wave-publishing refinement).

Runbook

Phase-by-phase engagement execution

seo-system/runbook.md

The engagement runbook

How to spin up and run a client SEO/AI-SEO engagement, phase by phase. Classify the client first (local vs national, see method.md), because it sets the emphasis. Default engagement length ~9-12 months.

Phase 0: Foundation & instrumentation (Month 0-1)

Make the site measurable and machine-readable, lock the entity, switch on the engines that run themselves, and freeze the baseline.

Render + technical check. Server-rendered HTML for the words that matter, Core Web Vitals, clean sitemap, robots allows the AI retrieval bots, 301 any dead links.
Schema. Organization/LocalBusiness (most specific type), Service per offering, FAQPage, Review/AggregateRating (from a single source of truth so the count can't drift), BreadcrumbList, Article on guides/blog.
NAP lock. Name/address/phone identical on site, GBP, and every directory. Reconcile any conflicting listings first (cheapest high-leverage win). Run the citation audit (intelligence.md job 3) to find mismatches.
GBP build (local). Full checklist in off-site-engine.md section 1: primary + secondary categories, 100% of fields, services with prices, photos, seeded Q&A, posts, attributes.
Review engine ON (local). Full system in off-site-engine.md section 2: automated post-appointment ask, front-desk QR, response templates, velocity targets. Target sustained >=4-6 new/month.
Attribution (do this BEFORE the baseline; it can't be retrofitted). Install GA4. Add a click event on every booking CTA. Put UTM/source params on any cross-domain booking embed and reconcile with the booking tool's own report + a "how did you hear" field. Route at least one high-intent CTA (the DM/wedge path) through a contact form with a hidden source field.
Run the intelligence baseline (intelligence.md): competitor landscape scan (job 1), competitor review pull (job 2), citation audit (job 3), voice-of-customer mining (job 6). This feeds the wedge identification, content planning, and competitive positioning.
Freeze the baseline. Rankings via geo-grid (intelligence.md job 4) for local, AI-citation rate via the prompt set (geo-playbook.md), review count, and current enquiry volume + source.
Set up the robots.txt for AI retrieval bots (geo-playbook.md template): OAI-SearchBot, PerplexityBot, Claude-User, Google-Extended, Googlebot, Bingbot.
Stand up the two interfaces (see deliverables.md): the internal control panel and the client approval kit, both gated per rules.md.

Phase 1: The wedge + the land grab (Month 2-4)

Local: the genuine area pages (waved, not all at once) + the under-served wedge cluster (priced openly). Internal-link silo. Reviews ramp.
National: the white-space segment hub + role/decision spokes; instrument forms for source attribution.
Everything built as gated drafts (noindex, out of sitemap, unlinked) and routed through the client approval kit before publish.

Phase 2: Authority & AI citation (Month 5-7)

The off-site half, which actually drives AI recommendation. Start the slow-to-land parts (PR) early.

Digital PR / get-named-by-others. Full link building strategy in off-site-engine.md section 4. Pitch the local "best of" listicles, local partnerships, expert commentary. For national: launch the proprietary report via the launch kit (post + covers + UTM).
Decision/comparison pages (answer-first, AI-Overview targets). Format per geo-playbook.md content formatting checklist.
Directory + booking expansion, NAP-identical. Tier 2-3 directories per off-site-engine.md section 3. Bing Places for Copilot visibility.
The moat pillar (the cite-able authority asset + internal-link hub).
Reviews continue toward the ~150 threshold (local).

Phase 3: Dominate & compound (Month 8-12)

Cross the thresholds where AI names you by default, scale what's ranking, capture the "after" vs the baseline (the case study). Refresh winners, double down on the best-converting channel, add proof assets (before/afters, video, more case studies).

Measurement (the four numbers, monthly)

1.Reviews (local north-star input): count + rating + velocity. 2. Rankings: geo-grid via Apify rank tracker (intelligence.md job 4) for local, or query rankings (national). 3. AI-answer visibility: % of a fixed prompt set (geo-playbook.md prompt template) that names the client, across ChatGPT/Perplexity/Gemini/Google AIO/Claude/Copilot (prompt-and-log; reuse mitchellkwan-site/scripts/ai-brand-monitor.ts + the AIO actor from intelligence.md). 4. Attributed enquiries/bookings (the one that matters).

Pre-draft the monthly report; auto-fill the numbers; review-and-send. Cited sources from the AI monitor become the next PR outreach list.

UTM convention (so launches and channels are attributable)

Tag every shared link from a launch/campaign: ?utm_source=<channel>&utm_medium=<type>&utm_campaign=<asset> (e.g. utm_source=linkedin&utm_medium=social&utm_campaign=state-of-hiring-2026). The form/booking flow reads and stores the source. This is what lets you say "X enquiries came from the LinkedIn launch," not just "traffic went up."

The gates (who does what)

Runs itself: review requests, rank tracking, the AI monitor, the content drip, GBP post scheduling, GSC/GA4 -> dashboard, internal linking.
Needs the client: real before/after photos, replying to reviews in their voice, approving pages/articles, their own outreach/posting, the GBP/account access.
Needs Mitchell: the approval gates, sending the PR pitches, the monthly report send.

Realistic automation ceiling for a single-location business is ~60-70%. The irreducible ~30% (real photos, authentic replies, accurate medical-adjacent claims) is where the brand wins or loses, so keep it human on purpose.

Reference implementation: extreme-beauty-site/seo/SEO-PLAN-12-MONTH.md (the EB 12-month plan with the v1.1 red-team refinements).

Rules

Operating guardrails

seo-system/rules.md

Operating rules

Non-negotiables for every SEO/AI-SEO engagement. Most map to a memory in Mitchell's private repo; this is the working version.

1.Nothing goes live without client approval. Every client-facing page/article is built as a gated draft (noindex, out of sitemap, unlinked) and approved by the client via a private approval kit before publish. Hard rule.
2.Mitchell deploys / approves the publish. Don't push client content live unprompted. Build, verify locally, show the gated review link, then publish on his + the client's OK.
3.Gated PIN links. Every client-shareable / unlisted / sensitive link on Mitchell's domain or a subdomain = noindex + out of sitemap + a random 4-digit PIN gate, and you ALWAYS hand him the link with the PIN already in the URL. In-URL PIN = unlisting (obscurity, the HTML still loads); for genuinely sensitive data use a server-side gate (the mitchellkwan-site /wealth pattern). Distinct PIN per link; internal and client links never share one. (Memory: feedback_gated_client_links.)
4.Match the client's voice exactly. Route all copy through the copywriting skill, which holds each brand's voice. Grounded, not try-hard premium (his clients sense bullshit). No em-dashes, ever (his absolute rule).
5.Never fabricate. No invented services, prices, reviews, ratings, local detail, or stats. Every figure sourced. Flag thin data and go get it or route it; don't fill the gap with fiction. If the client might not offer something a page implies, flag it for them to confirm at approval.
6.Reviews and aggregateRating must reflect reality. Pull the count from one source of truth; sync to the live Google number monthly. A schema rating that doesn't match GBP is a policy risk and a trust problem.
7.Local area pages ship in waves, never as a dump. Each genuinely unique (distinct angle + real local note + suburb-specific FAQ); no identical review blocks or recycled intros. Skip any suburb you can't make truly useful; let GBP carry "near me" there.
8.FAQ schema is AI-readability only (Google killed FAQ rich results 7 May 2026). Keep the markup, drop any expectation of a SERP feature.
9.Attribution before baseline. Don't freeze a baseline you can't measure against. GA4 + CTA events + UTM + a tracked form on the highest-intent path go in first.
10.Allow the AI retrieval bots; training bots are a choice. Keep OAI-SearchBot, PerplexityBot, Claude-User, Google-Extended, Googlebot, Bingbot open (they power citations). GPTBot/CCBot (training) can be allowed or blocked per the client's feelings about their imagery.
11.Off-site over more pages (local). When in doubt, the next unit of effort goes to reviews, GBP, NAP, or a listicle pitch, not another page. The client's own pages rarely earn the AI recommendation; other people's signals do.
12.For an under-booked client, pair SEO with a near-term demand track. SEO compounds slowly. Past-client reactivation, social before/afters, and a membership re-book hook fill chairs now. (Reference: the EB "Fill Your Books" kit.)
13.Append to LESSONS.md every engagement. Search changes fast; the system is only robust if it stays current.

Deliverables

Kits: control panel, approval, launch, results

seo-system/deliverables.md

The deliverables (the kits) and how to clone them

The reusable interfaces that make an engagement feel premium and keep everyone oriented. They are self-contained, gated, static HTML, deployed under mitchellkwan.com/clients/. The live files are the source of truth (they stay the best version); clone them, don't maintain parallel copies.

The four (plus one) interfaces

InterfaceAudienceWhat it isLive reference
Control panel (timeline / autopilot)Internal (Mitchell)The whole engagement on one page: a phase strip + "you are here", a "what needs a human" vs "what runs on its own" split, a phase-by-phase timeline with status badges, the decisions log, and headline metrics. Data-driven from PHASES/NEEDS_YOU/RUNS arrays. Keeps him on track.client-kits/extreme-beauty/journey/index.html
Approval kitClientThe plan in plain English (no jargon) + each deliverable group with where-it-fits, a sample, and an Approve / I-have-changes toggle + notes, a "what I need from you" checklist, and a one-tap "send my answers" (mailto + copy). Persists to localStorage.client-kits/extreme-beauty/approval-kit/index.html
Launch kitClientFor a report/asset launch: the live asset link, the ready post caption (copy button), the cover images in 3 ratios (download), a paste-ready reply, a lead-tracker CSV, and a simple how-to.client-kits/ara/launch-kit/index.html
Results dashboardClient / internalMonthly KPI snapshot cards: attributed enquiries (north star), AI-citation rate, reviews, GSC. Not auto-live; updated monthly.client-kits/ara/results/index.html
Near-term demand packClientFor an under-booked client: reactivation messages, a social before/after series, a membership re-book hook, a this-week checklist, all with copy buttons.client-kits/extreme-beauty/fill-your-books/index.html

All share the same brand-token CSS shell, gate logic, and copy/clipboard helpers, so once you've seen one you can build any.

Clone-and-deploy checklist (any kit, ~15 min)

1.Copy the live reference file to client-kits/<client>/<kit>/index.html.
2.Swap the brand tokens in the :root block (the accent, dark/bg/card/text/muted/line colours) and the Google Fonts <link> (serif + sans). Match the client's brand. Grounded, not try-hard.
3.Replace the DATA near the bottom: the PHASES/DELIVS/NEEDS/MARKET/post-copy/captions arrays and any hero/section copy. Route the copy through the copywriting skill for the client's voice. No em-dashes.
4.Set a fresh random 4-digit PIN: change var KEY="...."; keep the numeric gate input. Distinct from every other link (rules.md #3).
5.Keep <meta name="robots" content="noindex, nofollow">. Never add the page to any sitemap.
6.Deploy under his domain: copy to mitchellkwan-site/public/clients/<name>.html, add a rewrites() entry in mitchellkwan-site/next.config.mjs for the clean URL, then from mitchellkwan-site: rm -rf .next && npx next build && rm -rf .next && npx vercel deploy --prod --yes.
7.Verify: clean URL returns 200, opens with ?k=PIN, blocks without it, em-dash count 0, noindex present, not in sitemap.
8.Hand Mitchell the link with the PIN baked in (...?k=PIN).
9.Back up: commit the source in the main repo and the deployed copy in mitchellkwan-site.

Notes

Internal vs client panels are different audiences. The control panel keeps the internal "autopilot / what runs itself" language; the client kits strip all jargon (schema -> "the code that helps Google and AI read you", GEO -> "recommended when people ask ChatGPT").
Approvals route to mitchell@mitchellkwan.com by default (mailto in the kit). Change per client if needed.
A subdomain variant (e.g. client.mitchellkwan.com) is also supported via the client-subdomain skill + Cloudflare DNS, for clients who should have their own URL. Same gate/PIN rules apply.
The whole client-kit system is the embodiment of the world-class-client-experience standard. Keep it premium; never ship a generic-looking kit.

Intelligence

Apify-powered competitive data layer

seo-system/intelligence.md

Competitive intelligence & automation

The data layer that powers every other part of the system. Without this, you're guessing about competitors, reviews, citations, and rankings. With it, you know exactly where you stand and where the gaps are.

This layer runs on Apify (cloud scraping platform, free tier = $5/mo). Most tasks cost cents. The intelligence feeds directly into the runbook phases and the monthly measurement.

The intelligence stack (7 jobs)

1. Competitor landscape mapping

What: Every business Google Maps shows for your target keywords, with their ratings, review counts, categories, hours, and contact info, in one spreadsheet.

Actor: compass/crawler-google-places ($1.50/1,000 places) or scraperlink/google-maps-scraper ($0.50/1,000, budget option)

When to run:

Phase 0 (baseline): full landscape scan for every target keyword
Monthly: check for new competitors appearing

How to use it:

Identify your top 5-10 real competitors (the ones appearing across multiple keywords)
Compare review counts, ratings, categories, profile completeness
Spot category gaps (nobody claiming "correction" or a specific niche)
Feed competitor URLs into the review scraper (job 2) and citation checker (job 3)

Checklist:

Run for each target keyword + location (e.g. "aesthetics clinic Manning WA", "house cleaning Rockingham")
Export to Google Sheets via Apify's Sheets integration
Identify the top 5-10 by review count + rating + keyword coverage
Note which GBP categories competitors use (primary + secondary)
Note which competitors have websites vs GBP-only
Flag any competitor with 150+ reviews (the AI citation threshold)

2. Review intelligence

What: Every review for your competitors, with sentiment analysis, topic tags, owner response patterns.

Actor: compass/google-maps-reviews-scraper ($0.05-$0.30/1,000 reviews)

When to run:

Phase 0 (baseline): pull all reviews for top 5-10 competitors
Weekly (ongoing): check for new reviews

How to use it:

Find complaint patterns (what they do badly = your opportunity)
Find praise patterns (what customers value = your messaging)
Extract the exact language buyers use (feeds ad copy and content via the copywriting skill)
Track review velocity (are competitors growing faster?)
Check owner response rates and quality

Checklist:

Pull all reviews for top 5-10 competitors
Classify by sentiment (positive/negative/neutral) and topic
Extract top 5 complaint themes and top 5 praise themes
Note the exact phrases customers use (voice-of-customer gold)
Calculate each competitor's review velocity (new reviews per month)
Check owner response rate (% of reviews with a reply) and speed
Feed complaint themes into your wedge identification (rubric.md)
Feed praise themes into your content and copy

For platform coverage beyond Google:

Yelp: web_wanderer/yelp-reviews-scraper ($0.30/1K)
Facebook: apify/facebook-reviews-scraper ($2.50/1K)
TripAdvisor: thewolves/tripadvisor-reviews-scraper ($0.50/1K)
All-in-one: conceivable_extension/multi-platform-review-scraper (~$2.10/1K, includes sentiment)

3. Citation / NAP audit

What: Check your business's Name, Address, Phone consistency across 36-60+ directories and get AI-generated fix recommendations.

Actor: alizarin_refrigerator-owner/citation-checker-ai (~$0.46 for 36 directories, uses your own Anthropic API key for AI analysis) or citation-god-mode ($0.10, 60+ directories, 4 engines)

When to run:

Phase 0 (baseline): full audit before NAP lock
Monthly: re-check after fixes
After any address/phone/name change

How to use it:

Get a health score (0-100) and see every directory where your listing is correct, incorrect, or missing
Get prioritised fix actions with estimated ranking impact
Fix the worst mismatches first (the cheapest high-leverage win per method.md)

Checklist:

Run citation audit for the client's business
Note every directory with incorrect or missing NAP
Prioritise fixes by the AI's impact estimate
Fix Google, Yelp, Facebook, Bing Places, Apple Maps first (highest-authority directories)
Use citation-builder ($0.25/submission) to auto-submit corrected NAP to remaining directories
For Australian clients: supplement with TrueLocal scraper (ecomscrape/truelocal-business-search-scraper) and Hotfrog scraper (compute-edge/hotfrog-scraper, $0.002/result) for AU-specific directories

Australian directories to check manually if scrapers miss them:

TrueLocal, Hotfrog, StartLocal, dLook, PureLocal, Local Business Guide, Yellow Pages Australia (yellowpages.com.au), White Pages Australia, AustralianPlanet


4. Rank tracking (local pack + organic + AI)

What: Where you rank in the Maps 3-pack, in organic results, and whether AI engines cite you.

Local pack (geo-grid):

Actor: vasram/google-maps-rank-tracker ($0.25-$1.80/scan, replaces LocalFalcon)
Returns: your rank at each grid point, Share of Local Voice, competitor leaderboard, zone analysis
Run: weekly

Organic SERP:

Actor: apify/google-search-scraper ($0.002/query)
Key: use the UULE parameter to simulate searches from a specific suburb (not just country-level)
Run: weekly for core keywords

AI citation tracking:

Actor: devilscrapes/ai-overview-citations (~$5.50/1K query-citation rows)
Returns: whether you're cited in Google AI Overviews, at which position, for which queries
Also: the existing ai-brand-monitor.ts script (see runbook.md) for ChatGPT/Perplexity/Gemini/Claude
Run: monthly

Checklist:

Define 15-20 core keywords per client (mix of service + location + intent)
Set up weekly geo-grid rank tracking (pick 5x5 or 7x7 grid centred on the business)
Set up weekly organic SERP tracking with UULE for the client's suburb
Set up monthly AI citation monitoring (the prompt set from runbook.md + the AIO actor)
Export all to Google Sheets on schedule
Track month-over-month trends; flag any drops > 3 positions

5. Content gap analysis

What: What competitors rank for that you don't, and what the top-ranking pages look like for your target keywords.

Actor: datapilot/ranked-keywords-scraper (keywords a domain ranks for) + apify/google-search-scraper (SERP analysis)

When to run:

Phase 1 (wedge build): identify competitor content you need to match or beat
Quarterly: refresh to catch new competitor content

Checklist:

Scrape the top 10 results for each target keyword
Note: word count, heading structure, topics covered, schema types used
Compare against your existing pages: what topics are missing?
Identify "answer-first" opportunities where top results bury the answer
Identify comparison/decision queries where no good answer exists
Feed gaps into the content brief process (rubric.md)

6. Voice-of-customer mining

What: What real people say when they're looking for your service. The exact language, questions, complaints, and desires.

Actors:

Reddit: parseforge/reddit-posts-scraper (pay-per-use, no rental fee)
Facebook groups: apify/facebook-posts-scraper ($2.00/1K posts)
Yelp listings: igview-owner/yelp-business-data-scraper

When to run:

Phase 0-1: initial research to inform wedge, content, and copy
Quarterly: refresh for new trends

Checklist:

Search Reddit for subreddits related to the client's service + location (r/perth, r/AustralianBeauty, r/CleaningTips, r/SkincareAddiction, etc.)
Pull posts mentioning the service category or common problems
Extract: the exact questions people ask, the words they use, the complaints, the praise, the decision criteria
Cross-reference with review intel (job 2) for validation
Feed into content topics (the "answer the exact questions buyers ask" pillar)
Feed into ad copy and messaging via the copywriting skill

Also valuable: the existing voice-of-customer recordings in learnings/voice-of-customer/ (Shally + Carryl calls). Apify adds the public-internet layer on top of your direct client conversations.


7. Automated monitoring pipeline

What: Schedule all of the above to run automatically and export to Google Sheets.

Apify scheduling: Built-in cron (free on all plans). Set it and forget it.

Recommended schedule:

JobFrequencyEst. monthly cost
Rank tracking (Maps geo-grid, 20 keywords)Weekly$4-$15
Organic SERP tracking (20 keywords)Weekly~$0.16
Competitor reviews (top 5)Weekly~$1.20
NAP consistency auditMonthly~$0.50
New competitors scanMonthly~$1.50
AI citation trackingMonthly~$2-$5
Content gap refreshQuarterly~$0.50
Voice-of-customer refreshQuarterly~$1-$3
Total per client~$10-$25/month

Setup checklist:

Create Apify account (free tier to start)
Set up each actor as a saved Task with pre-filled inputs
Create a Schedule for each task at the frequency above
Configure the Google Sheets export actor to run after each scraper completes (via webhook chaining)
Set up a master Google Sheet per client with tabs: Rankings, Reviews, Citations, Competitors, AI Citations
Name all datasets (unnamed datasets expire after 7 days on free, 31 days on paid)

Integration with the runbook phases

PhaseIntelligence jobs to run
Phase 0 (Foundation)Jobs 1-4 and 6: full competitor scan, review pull, citation audit, baseline ranks, VoC research
Phase 1 (Wedge + land grab)Job 5: content gap analysis to inform the build
Phase 2 (Authority + AI citation)Jobs 2, 3, 4: track review growth, citation fixes landing, rank movement
Phase 3 (Dominate + compound)All jobs on autopilot: the scheduled pipeline (job 7)

Cost summary

For a single local business, the entire intelligence stack runs on the free Apify tier ($5/month). An agency running this for 3-5 clients would hit the Starter plan ($29/month). The scheduled pipeline replaces tools that cost $200-500+/month (LocalFalcon, BrightLocal, Moz Local, SEMrush local) at a fraction of the price.

Gotchas

Two-layer billing: Apify charges platform compute + per-result actor fees. The per-result fees are usually the bigger number.
Credits don't roll over. Use them or lose them each month.
Community actors can break when target sites change their HTML. Stick to high-user-count actors (the ones listed above).
Google scraping is TOS-grey. Apify handles proxy rotation. Practical risk is getting blocked, not sued. Low volume = low risk.
Name your datasets. Unnamed ones expire (7 days free, 31 days paid).
Australian directory coverage: The citation audit tools skew US. Supplement with TrueLocal and Hotfrog scrapers for AU clients.

GEO Playbook

AI citation: per-engine notes, entity signals

seo-system/geo-playbook.md

GEO playbook: getting cited by AI engines

The method (method.md) establishes that SEO and GEO share ~80% of the same foundations. This file covers the ~20% that's GEO-specific: what makes AI engines cite you, how each engine differs, and the specific optimisations that increase your citation rate.

How AI engines decide who to name

AI engines (ChatGPT, Perplexity, Google AI Overviews/Gemini, Claude, Copilot) build answers from sources they can read, trust, and cite. They don't just rank pages; they synthesise an answer and name businesses inside it.

The decision has three layers:

1.Can the engine read you? (machine-readability: HTML, schema, clear structure, no JS-only content)
2.Can the engine trust you? (authority signals: reviews, citations, third-party mentions, consistent entity data)
3.Does the engine have reason to name you specifically? (topical relevance + differentiation: you answer the exact query better than alternatives)

Layer 1 is table stakes (covered in method.md "technical foundation"). Layer 2 is the off-site engine (off-site-engine.md). Layer 3 is the content and entity work below.

The entity signal (the single most important GEO factor)

AI engines need to understand your business as a known entity, not just a page. This means:

Entity definition checklist

One crisp sentence: who you are, what you do, who you serve, where you operate
This sentence appears (nearly verbatim) on: your homepage, your About page, your GBP description, every directory listing, your LinkedIn, your social bios
Schema.org Organization or LocalBusiness (most specific subtype) with name, description, address, telephone, url, sameAs (linking to all profiles/directories)
sameAs links to: GBP, LinkedIn, Instagram, Facebook, Yelp, industry directories, any profile where the entity appears
The entity name is consistent everywhere (no abbreviations in some places, full name in others)

Why this matters for AI

AI engines cross-reference entity data across sources. Consistent entity signals across your site, GBP, directories, and social profiles tell the engine "this is a real, verified entity." Inconsistency creates doubt. NAP consistency (method.md pillar 2) is the entity signal in action.


Per-engine optimisation notes

Google AI Overviews (AIO) and AI Mode

How it works: Google generates an AI summary at the top of search results, citing sources from its index.
What gets cited: Pages that Google already ranks well for the query. AIO overwhelmingly cites pages from the top 10 organic results. If you're not ranking organically, you won't get cited in AIO.
Key optimisations:
Answer-first content structure (resolve the query in the opening 2-3 sentences, then elaborate)
Clear, factual, structured content (headings, lists, tables work well)
FAQPage schema (AI-readable even though Google killed FAQ rich results)
Structured data (Service, LocalBusiness, Review/AggregateRating) gives Google entity context
Content that directly answers the query format ("best X in Y", "how to choose X", "X vs Y")
What to track: devilscrapes/ai-overview-citations actor (see intelligence.md job 4)
Local note: AIO for local queries often pulls from GBP data (ratings, hours, categories) rather than website content. GBP completeness matters.

ChatGPT (with browsing / SearchGPT)

How it works: Uses Bing's index + its own web browsing to find and cite sources.
What gets cited: Pages with strong authority signals (backlinks, domain authority), clear factual content, and third-party corroboration. ChatGPT is the most selective (~1.2% of businesses get named).
Key optimisations:
Allow the retrieval bot: OAI-SearchBot in robots.txt
Strong third-party signals: reviews, listicle mentions, Reddit threads, directory presence
Proprietary data or unique insights (the "moat pillar" from rubric.md)
Clear, authoritative tone (not salesy; genuinely helpful)
Wikipedia-style structure: factual, sourced, neutral-toned content performs best
GPTBot vs OAI-SearchBot: GPTBot is for training data; OAI-SearchBot is for live search citations. Allow OAI-SearchBot (citations). GPTBot is a client choice (training).

Perplexity

How it works: Real-time web search + synthesis. More generous with citations than ChatGPT (~7.4% of businesses).
What gets cited: Perplexity values recency, specificity, and direct answers. It crawls aggressively and cites multiple sources per answer.
Key optimisations:
Allow the retrieval bot: PerplexityBot in robots.txt
Recent, updated content (Perplexity favours freshness)
Specific, data-rich content (numbers, prices, comparisons)
Answer pages that directly address common queries in your niche
Directory presence (Perplexity often cites directory listings as corroboration)
Local note: Perplexity frequently cites Yelp, Google Maps, and local directories. NAP + review presence there directly feeds Perplexity citations.

Claude

How it works: Uses its own search (via Claude-User bot) to find and cite sources.
Key optimisations:
Allow the retrieval bot: Claude-User in robots.txt
Well-structured, honest, comprehensive content
Schema markup (Claude reads structured data for entity understanding)
Authoritative third-party mentions

Google Gemini

How it works: Uses Google's index. Similar to AIO but accessed via the Gemini interface/app.
Key optimisations: Same as AIO. If you rank in Google, Gemini can cite you.

Microsoft Copilot

How it works: Uses Bing's index.
Key optimisations:
Bing Webmaster Tools: submit sitemap, verify site
Bing Places for Business: the Bing equivalent of GBP (most businesses ignore this)
Allow Bingbot in robots.txt
Bing values backlinks and social signals more heavily than Google does

The robots.txt template (allow all retrieval bots)

User-agent: Googlebot
Allow: /

User-agent: Bingbot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Google-Extended
Allow: /

# Training bots (client choice: allow or disallow)
# User-agent: GPTBot
# Allow: /
# User-agent: CCBot
# Allow: /

Content formatting for AI citation

AI engines extract and synthesise. Make their job easy:

Structure checklist

Answer-first: the direct answer in the first 2-3 sentences, then elaboration
Clear heading hierarchy (H1 > H2 > H3, one H1 per page, headings match the queries you're targeting)
Short paragraphs (3-4 sentences max; AI extractors work better with discrete blocks)
Lists and tables for comparisons, features, pricing (AI engines extract these cleanly)
FAQ blocks with FAQPage schema (the questions match real search queries)
Specific, factual claims over vague assertions ("150+ 5-star reviews" not "highly rated")
Named entities: use the full business name, full location name, full service name (helps entity recognition)
Internal links with descriptive anchor text (helps AI understand page relationships)

What NOT to do

Don't hide content behind JavaScript-only rendering (AI crawlers get the raw HTML)
Don't use "click here" or "learn more" as anchor text (no entity signal)
Don't write salesy/superlative content ("best in the world", "industry-leading")
Don't stuff keywords unnaturally (AI engines detect and discount this)
Don't use em-dashes (Mitchell's absolute rule, plus they can cause encoding issues in some AI extractors)

The citation flywheel (how off-site feeds GEO)

This is the core insight: your own pages make you readable; other people's signals make you recommendable.

Reviews (Google, Yelp, Facebook)
  -> AI sees volume + sentiment + recency = trust signal
    -> AI names you when asked "best X in Y"

Directory listings (consistent NAP)
  -> AI cross-references entity data = verification
    -> AI treats you as a confirmed, real entity

Third-party mentions (listicles, Reddit, press)
  -> AI sees independent corroboration = authority
    -> AI cites you as a recommended option

Your content (answer-first, structured, honest)
  -> AI can extract and attribute = readability
    -> AI uses your content as a source

All four feed each other. The off-site engine (off-site-engine.md) is where you build layers 1-3. The content (rubric.md + runbook.md) is layer 4.


Measurement: the AI citation rate

The four numbers from runbook.md, with the GEO-specific detail:

1.AI-citation rate: % of a fixed prompt set (15-20 prompts per client) where the client is named/recommended, across ChatGPT, Perplexity, Gemini, Google AIO, Claude, Copilot. Run monthly. Log: which engine, which prompt, named or not, position if named, which source was cited.
2.AI Overview presence: tracked via devilscrapes/ai-overview-citations actor (intelligence.md job 4). For each target keyword: does an AIO appear? Is the client cited? At which position?
3.Citation sources: which third-party pages are being cited when AI recommends businesses in your category? These become your PR target list (get named on those pages).
4.Competitor AI visibility: run the same prompt set for competitors. Where are they being cited that you're not?

The prompt set template (adapt per client)

Local service business:

"best [service] in [suburb/city]"
"who does [service] near [suburb]"
"recommend a [service] in [city]"
"[service] [suburb] reviews"
"how to choose a [service] in [city]"
"[service A] vs [service B] [city]"
"is [service] worth it in [city]"
"affordable [service] [city]"
"experienced [service] [city]"
"[specific problem] [service] [city]" (the wedge query)

National service:

"best [service] in Australia"
"top [service] companies [industry]"
"[service] for [specific segment]"
"how to choose a [service]"
"[service A] vs [service B]"
"[industry] [service] trends [year]"

Future-proofing: what's coming and how to stay ready

The AI search landscape is moving fast. These are the principles that hold regardless of which engine or feature wins:

1.Machine-readability is permanent. Structured data, clean HTML, clear content hierarchy will always matter. Invest here.
2.Third-party corroboration is permanent. AI engines will always prefer businesses verified by multiple independent sources. Reviews, directory listings, and mentions don't go away.
3.Entity signals are permanent. The concept of "is this a real, known entity" only gets more important as AI gets better at entity resolution.
4.Content quality is permanent. Answer-first, honest, specific, genuinely helpful content will always outperform thin/salesy content.
5.New AI engines will appear. The robots.txt pattern (allow retrieval bots, choose on training bots) scales to any new engine.
6.AI citation is not directly buyable. You influence inputs (readability, authority, reviews, mentions), not the output. This is fundamentally different from paid ads and won't change.
7.Measurement must be sampled. AI answers are non-deterministic and personalised. Prompt-and-log is the best available method; report it as a trend, not a precise number.

Specific future-proofing actions

Monitor new AI retrieval bots (check robots.txt guides quarterly, add new bots)
Track Google AIO expansion (more query types getting AI answers = more citation opportunities)
Watch for structured data spec changes (schema.org updates, Google's structured data documentation)
Append to LESSONS.md when a GEO approach works or fails (the system evolves through use)

Off-Site Engine

GBP, reviews, directories, link building

seo-system/off-site-engine.md

The off-site engine: GBP, reviews, links, directories, PR

For local businesses, off-site beats more pages (method.md, LESSONS.md). This file is the operational checklist for every off-site signal that drives rankings and AI citations. It covers four systems: GBP mastery, the review engine, directory/citation management, and link building/digital PR.

1. GBP mastery (the #1 local ranking factor)

Google Business Profile accounts for ~32% of local pack weight (method.md). Primary category is the single most important field. This checklist covers every optimisation.

Profile completeness checklist

Identity:

Business name: exact legal/trading name, no keyword stuffing (Google penalises this)
Primary category: the most specific category that matches your core service (e.g. "Cosmetic Tattoo Studio" not "Beauty Salon")
Secondary categories: add every relevant one (up to 9 additional). More categories = more queries you show for
Business description: 750 chars, front-load the entity sentence (who/what/who-for/where), include core service keywords naturally
Opening date: set it (helps with "established" signals)

Contact & location:

Address: exact match to website and all directories (the NAP lock)
Phone: primary number, exact match everywhere
Website: your homepage URL
Appointment/booking link: direct to your booking system
Service area: set if you serve beyond your physical location (e.g. mobile cleaning)

Services & products:

Every service listed individually (not bundled), with a description and price/price range
Use the structured service editor, not just the description field
Products section: add if applicable (retail, packages, memberships)
Menu (for restaurants/cafes): add if applicable

Photos & media:

Logo: high-res, square crop
Cover photo: best representation of the business (the first thing people see)
Interior photos: 5-10 showing the real space
Exterior photos: 2-3 (helps people find you)
Team photos: 3-5 (builds trust)
Work/results photos: as many as relevant (before/afters for aesthetics, completed jobs for trades)
Video: at least one (walkthrough, intro, or testimonial)
Photo frequency: add 2-3 new photos per month (recency signal)
All photos geotagged to your business address (most phones do this automatically)

Q&A:

Seed 5-10 Q&A pairs yourself (ask from a personal account, answer from the business account)
Cover the most common questions: pricing, parking, booking process, what to expect, aftercare
Include keywords naturally in answers
Monitor for new questions weekly; answer within 24 hours
Note: GBP Q&A API shut down Nov 2025. All seeding is manual via the app.

Posts:

Post 1-2x per week (recency signal, engagement nicety)
Types: updates, offers, events, photos
Include a CTA (Book now, Learn more, Call)
GBP posts are NOT a ranking lever, but they show activity and can influence click-through
The GBP Poster actor (alizarin_refrigerator-owner/gbp-poster) may automate this; test it

Attributes:

Set every applicable attribute (accessibility, amenities, payment methods, service options)
These show in your listing and help match specific queries ("wheelchair accessible dentist near me")

GBP ongoing maintenance

TaskFrequency
Respond to all reviewsWithin 24-48 hours
Answer new Q&AWithin 24 hours
Add new photos2-3 per month
Post an update1-2 per week
Check for suggested editsWeekly (Google and users can suggest changes)
Update hours for holidaysBefore each holiday
Sync review count to schemaMonthly

2. The review engine

Reviews are a threshold, not a gradient. AI rarely names a local business under ~150 reviews. Sustained velocity (4-6+ new per month, recent, keyword-rich) beats a stale stockpile. (LESSONS.md)

Review acquisition system

Automated ask (the foundation):

Set up an automated post-appointment review request via the booking/POS system (Timely SMS+email, Square follow-up, or equivalent)
Timing: 1-2 hours after appointment (when the experience is fresh and the result is visible)
Message: short, personal, with a direct link to the Google review page (not the GBP homepage; the direct "leave a review" link)
Follow-up: one reminder 48 hours later if no review left (most systems support this)

In-person ask (the multiplier):

QR code at the front desk / on the receipt / on a card (links to the Google review page)
Verbal ask by the person delivering the service: "If you're happy with today, a Google review would really help us. I'll text you the link."
Train the team: the ask should be natural and non-pushy, tied to a good moment (client expressing satisfaction)

The review link:

Format: https://search.google.com/local/writereview?placeid=YOUR_PLACE_ID
Get your Place ID from the Google Maps scraper (intelligence.md job 1) or from Google's Place ID Finder
This link goes directly to the review form, skipping the listing page

Keyword-rich reviews (without being fake):

Don't ask for specific words (Google detects this and it's against their guidelines)
DO ask questions that prompt natural keyword use: "What treatment did you have today?" or "What brought you to us?" in the review request message
The treatment name and location naturally appear in responses

Review response templates

Respond to every review. Owner responses are visible to AI engines and potential customers.

For positive reviews:

Thank them by name
Reference the specific service/treatment they mentioned
Keep it warm but brief (2-3 sentences)
No: generic copy-paste responses, keyword stuffing, promotional language

For negative reviews:

Respond within 24 hours
Acknowledge their experience (don't argue or dismiss)
Take it offline: "I'd like to make this right. Please call/email me directly at [phone/email]"
Never reveal client details or medical information in a public response
After resolution: politely ask if they'd consider updating their review

For fake/spam reviews:

Flag via GBP's "Report review" tool
Respond professionally: "We don't have a record of your visit. Please contact us directly so we can look into this."
Document for potential Google review removal request

Review velocity targets

StageTargetTimeline
Starting (0-50 reviews)6-8 per monthMonths 1-8
Building (50-150 reviews)4-6 per monthMonths 8-24
Maintaining (150+)4+ per monthOngoing

The 150-review threshold is where AI citation probability jumps significantly. Below this, you're largely invisible to AI recommendation engines for local queries.

Review monitoring

Use the review scraper (intelligence.md job 2) to:

Track your own review velocity and rating trend
Monitor competitor review growth
Detect and respond to new reviews quickly
Identify review themes over time (are complaints trending in a specific area?)

3. Directory / citation management

NAP consistency is the cheapest high-leverage win (method.md). Every directory where your business appears with correct NAP reinforces the entity signal that AI engines need.

Priority directories (in order of authority)

Tier 1 (do these first; highest authority):

Google Business Profile
Yelp
Facebook Business Page
Bing Places for Business (most businesses ignore this; Copilot uses Bing's index)
Apple Maps (via Apple Business Connect)
LinkedIn Company Page

Tier 2 (high value, do within first month):

Yellow Pages (AU: yellowpages.com.au)
White Pages (AU: whitepages.com.au)
TrueLocal (AU-specific, important for Australian businesses)
Hotfrog (AU/NZ/international)
BBB / industry equivalent
Industry-specific directories (for aesthetics: RealSelf, Treatwell; for cleaning: Airtasker, hipages)

Tier 3 (build over time; incremental value):

StartLocal (AU)
dLook (AU)
PureLocal (AU)
Local Business Guide (AU)
AustralianPlanet
Foursquare
Yelp (ensure claimed and complete)
Superpages
CitySearch
Manta

For national/B2B clients (ARA, aesthetic-ops):

LinkedIn Company Page (critical for B2B)
Crunchbase (if applicable)
Industry association directories
SEEK / Indeed employer profiles (for recruitment)
Glassdoor (for recruitment)

The NAP lock protocol

1.Define the canonical NAP: the exact name, exact address (format, abbreviations, suite/unit), exact phone number
2.Document it in the client folder as the single source of truth
3.Audit all existing listings against it (intelligence.md job 3)
4.Fix mismatches starting with Tier 1 directories
5.Submit to missing directories using the canonical NAP
6.Re-audit monthly until clean; then quarterly

Citation building (Apify-assisted)

Use citation-builder ($0.25/free submission) to auto-submit corrected NAP to directories
For AU-specific directories: check manually or use TrueLocal/Hotfrog scrapers to verify
The citation-god-mode actor ($0.10) runs the audit + cross-validation in one pass
Track citation health score over time (target: 80+ out of 100)

4. Link building & digital PR

Links remain a top ranking factor for both Google organic and AI citation. For local businesses, local relevance matters more than domain authority.

Local link building (high value, moderate effort)

Local "best of" listicles: Identify every "best [service] in [city]" article that ranks. Pitch for inclusion (email the author/editor with your credentials, review count, unique angle). These are the pages AI engines cite most when recommending local businesses.
Local business associations: Join the local chamber of commerce, BNI group, or business network. Most have online member directories with a link.
Local sponsorships: Sponsor a local sports team, charity event, or community event. Usually comes with a website link.
Local partnerships: Cross-promote with complementary businesses (aesthetics + hairdresser, cleaning + real estate agent). Guest content or reciprocal links.
Local media / press: Pitch local news sites and blogs with a genuinely interesting story (a unique service, a community initiative, a data finding). Don't pitch "we exist."
Local events: Host or participate in events; get listed on event directories and local news sites.
Supplier/vendor directories: If you use specific products or equipment, get listed on the supplier's "find a provider" page.

Digital PR (for national / authority building)

The proprietary report: (method.md, for national clients) Create a data-rich report that earns links and citations. Launch via the launch kit (deliverables.md).
Expert commentary: Pitch yourself as a source for journalists covering your industry (HARO/Connectively, SourceBottle for AU/NZ, direct journalist outreach on X/LinkedIn).
Guest content: Write genuinely useful articles for industry publications or complementary blogs. Not for the link; for the authority signal and the relationship.
Podcast appearances: Be a guest on podcasts in your niche. Most show notes include a link.
Reddit/forum presence: Genuine participation in relevant subreddits and forums. Not promotional; actually helpful. Over time, you become a known entity in the community. AI engines cite Reddit threads.

The backlink building agent (Apify-powered)

daniil.poletaev/backlink-building-agent automates part of this:

Identifies backlink partner opportunities via SERP analysis
Filters for relevance
Extracts contact details
Generates personalised outreach messages

Use it to accelerate the listicle pitching and partnership outreach. The outreach itself is still human (Mitchell or the client sends).

Link building priorities by client type

Local single-location:

1."Best of" listicles (highest leverage for AI citation)
2.Local directories (Tier 1-3 above)
3.Local partnerships and sponsorships
4.Supplier directories

National service (ARA, aesthetic-ops):

1.Proprietary report (the moat)
2.Industry publication guest content
3.Expert commentary / journalist sourcing
4.Podcast appearances
5.LinkedIn content (not a "link" but a strong authority signal for AI)

Integration with the runbook phases

PhaseOff-site work
Phase 0 (Month 0-1)GBP 100% complete. NAP locked. Review engine ON. Tier 1 directories submitted. Citation audit run.
Phase 1 (Month 2-4)Tier 2 directories. Review velocity ramping. First listicle pitches sent. Local partnerships initiated.
Phase 2 (Month 5-7)Tier 3 directories. PR pitches / expert commentary. Reviews approaching 100+. Citation health 80+. For national: report launch via launch kit.
Phase 3 (Month 8-12)Reviews crossing 150 threshold. Listicle mentions landing. Citation audit clean. AI citation rate climbing. All on autopilot.

The honest ceiling

Realistic automation for the off-site engine:

Runs itself (60-70%): automated review requests, rank tracking, citation monitoring, GBP post scheduling, directory submission
Needs a human (30-40%): replying to reviews in the client's authentic voice, real photos, listicle/PR pitches (personal, not templated), Q&A monitoring, approving GBP changes

The irreducible human part is where the brand wins or loses. Don't try to automate review responses or PR outreach into generic templates; the authenticity IS the competitive advantage.

Lessons

Running log of what worked and failed

seo-system/LESSONS.md

Lessons log

The running record of what we've learned delivering SEO/AI-SEO. Append a dated line every engagement when something works, fails, or changes. This is how the system stays robust as search evolves. Newest at the top.

2026-06 (late)

The intelligence layer was the biggest gap. The system had strong strategy and rules but no operational data layer. Apify fills this at $5-25/month: competitor mapping, review scraping with sentiment, automated citation/NAP auditing, geo-grid rank tracking (replaces LocalFalcon), AI Overview citation tracking, and voice-of-customer mining from Reddit/socials. All scheduled and exported to Google Sheets.
GEO optimisation is ~20% distinct from SEO. The shared foundations (technical, entity, content, measurement) cover ~80%. The GEO-specific delta: entity signals (consistent identity across all surfaces), per-engine retrieval bot access (robots.txt), answer-first content formatting, and third-party corroboration (the citation flywheel). Your own pages make you readable; other people's signals make you recommendable.
150 reviews is the AI citation threshold. Below this, local businesses are largely invisible to AI recommendation. Velocity matters more than stockpile (4-6+/month, recent, keyword-rich). Built a full review engine system with acquisition, response templates, and velocity targets.
Bing Places is the Copilot gap most businesses miss. Copilot uses Bing's index. Most businesses never claim Bing Places for Business. Free and takes 10 minutes.
Australian directory coverage requires AU-specific scrapers. The Apify citation audit tools skew US. Supplement with TrueLocal and Hotfrog scrapers for AU/NZ clients.
The alizarin_refrigerator-owner developer on Apify built a complete local-SEO suite. Citation Checker AI, Citation God Mode, Citation Builder, Moz Listing Checker, GBP Auditor, GBP Poster, SERP Scraper. Use this developer's actors as the core toolkit.

2026-06

FAQ rich results are dead. Google deprecated them 7 May 2026. Keep FAQPage schema (still AI-readable) but it is no longer a Google SERP feature. Don't budget for or "verify" them. *(EB red-team caught this; the plan had been treating it as a feature.)*
For local single-location, off-site beats more pages. A business's own pages get cited but rarely earn the AI *recommendation* (own "best of" pages recommend a competitor most of the time). Reviews + GBP + independent listicles + Reddit are what name you. Sequence those early, not after the page build.
Suburb pages: wave-publish and make each genuinely unique. Shipping 8 near-identical pages for one location at once reads as a doorway dump. The identical review trio was the clearest thin-content tell; remove it. Skip suburbs you can't make truly useful and let GBP carry "near me."
Centralise the review count. Hardcoding the count across many pages guarantees drift, because the whole plan exists to grow it. One constant -> schema + prose; sync to live Google monthly.
Attribution can't be retrofitted. Cross-domain booking iframes (Timely) and DM/IG funnels are invisible to GA4. Instrument (GA4 + CTA events + UTM + a tracked form on the highest-intent path) BEFORE freezing the baseline, or the "did it work" question is unanswerable.
The under-served wedge is the strongest local play. For EB it was "correction / fix botched cosmetic tattoo": high intent, thin competitor coverage, a real service, priced openly when rivals hide it. Hunt for the equivalent wedge per client.
Reviews are a threshold, not a gradient. AI rarely names a local business under ~150 reviews; sustained velocity (>=4-6/mo, recent, keyword-rich) beats a stale stockpile.
Gated client links = random 4-digit PIN in the URL. One-tap share, public blocked. But it's unlisting (obscurity), not security; the HTML still loads. Server-side gate for genuinely sensitive data.
Pair SEO with a near-term demand track for under-booked clients. SEO compounds over months; reactivation + social before/afters + a membership re-book hook fill chairs now.
(ARA) Baseline forward when there's no clean "before." Rebuilt-then-baselined is fine; prove impact from the dated baseline. Perplexity already cited ARA at 28.6% at baseline, Claude at 0% (the climb to watch).
(ARA) Lead the uncontested white-space (brands/distributors commercial roles) and defend the contested clinical base; claim unique scope, never dominance (honest + defensible).

Agency Strategy

Aesthetic-ops positioning, competitive intel, and offer design.

6 docs

The Play (Final Strategy)

Positioning, dual story, pricing, 90-day plan

aesthetic-ops-leadgen/the-play-final-strategy.md

The Play. Final strategy

The complete recommendation, built from three competitor recon passes (50+ agencies AU/NZ/UK/US), your real numbers, the mitchellkwan voice doctrine, and a five-strategist judge-panel audit. This is the master. The competitor map, Offer 2.0, ad set and category plan in this hub are the detail.

The audit changed the spine. The earlier draft led with "compliant clinical marketing at both ends" and leaned toward creative. The panel was clear, and honest about an error: "creative is the uncontested white space" was an overread (the recon never actually saw competitors' creative), and your one validated winner was copy, not footage. So the spine is now the thing that is fully owned, uncopyable, and converts a sceptic fastest: your dual operator-and-burnt-client story, leading into the job a clinic owner actually hires for, filling the chair.

The one line

I built and ran my own skin clinic. I was also the owner an agency billed $10k a month to spend $8k for ten bookings, while my own ads ran at $52 to $60 a booking. So I build the machine that turns the enquiries you already pay for into deposit-paid patients who show up, compliant by default, and you do not pay the ongoing fee until it has.

The hero (lead with this, every time)

The dual story is the scepticism-killer, and no one in the 50-agency field can claim both halves. You have stood exactly where the buyer stands (a clinic owner burnt by an agency), and you also built and ran the clinic. That is biographical, fully owned, needs nobody's permission, and it lands before any proof or pitch. Lead with it on the page, in the ads, on the call. Everything else (ASX, compliance, the numbers, the creative) is page two.

What the recon proved

The category is one copy-pasted script: done-for-you acquisition + a guarantee + scarcity + anti-agency grievance. It is wallpaper, and the offer mechanics are commoditized. A direct AU competitor (SaltWave) has run your near-exact offer (20 booked appts or work-free, deposit on the phone) as one ad for ~20 months. So the offer alone cannot differentiate you.
The one verified unowned wedge is AHPRA/TGA compliance done as lived expertise, not a claim. Everyone says "we know AHPRA"; you ran a clinic through the 2025 changes, and the cosmetic-ad compliance problem (real $60k/$120k WA penalties, a hard deadline) is a high-recognition, high-urgency hook the field is not using well.
The free recorded teardown is genuinely unique. No competitor sends one before a call.
On creative we honestly do not have competitor data (the recon could not see their ads). So creative is a strong supporting deliverable, not the spine, and not a claim that "their creative is weak."
Perth is contested (Grow A Salon HQ, ClinicBoost sells in) but largely open on real ad presence. Move while it is.

1. Positioning

Own the job, in the buyer's words, not a category noun. The job a clinic owner hires for is "fill my chair with patients who show up and come back." Most of the field sells leads or promises; you sell the booked calendar, built by someone who has run the room.

The plain-language position: the clinic operator who fixes the part that actually fills the calendar, the gap between the enquiries you already pay for and the patient in the chair. Led by the dual story. Compliance is the front-door hook. The ASX record, the psychology, and your filmed creative are credibility behind it, not the headline.

The five must-be-true beliefs and the proof for each:

They must believeThe proofStatus
This person has actually stood where I standThe dual story: built and ran a skin clinic, and was the client an agency billed $10k/mo for 10 bookingsLive now
It will not risk my AHPRA registrationYou ran a clinic through the 2025 AHPRA changes; you know the cosmetic-ad rules and the penalties from the chairLive now
This is different from the agency that burnt meA free recorded teardown first, no call needed. Generosity a salesperson cannot fakeLive now
It actually fills the chair, not just leadsLocked results (below) and the deposit-direct booking flow that drops paid patients into the calendarLive now
He will not take my money if I am not readyYou say out loud when ads are not the problem yetLive now

What is deliberately NOT the spine: the offer mechanics (commoditized), "I run my own ads" (an insider point), and the consult-conversion-lift method (gated on Suzie's written permission and a close-rate you have measured zero times for a paying client; it stays credited implementation and a year-two ascension, never a front-of-house claim).

1b. The credentials, in order

Lead with the dual story. Then, only as backstops and only reframed as experience:

ASX regulated healthcare marketing (Integral Diagnostics, 8+ clinics, regulated advertising). Page-two credibility. Honesty: title was Marketing Specialist, you directed Meta there (hands-on ad-running is your own clinic and agency), and it is radiology, so it proves regulated-healthcare-marketing-at-scale, not cosmetic-ad expertise. Your cosmetic compliance proof is your own clinic.
Psychology (PG Dip): the lens on why patients book on trust. Quiet depth, "I studied psychology", never "I'm a psychologist".
Filmed creative: you shoot and edit commercial-grade trust assets. A real supporting deliverable, delegable (you direct, an editor cuts to house style), never the spine and never the per-client bottleneck.
Leave the marketing and IT degrees off clinic-facing work (it is one BCom double major; job-hunt-CV assets, not clinic-offer assets).

1c. The proof (locked set, use these consistently)

One set, stated exactly, all confirmed accurate.

Face Foundry (my own clinic): 82 bookings in 30 days, 96% showed up, $60.45 per booking via Meta.
PM Aesthetics (Perth client, naming with consent, owner interview Friday): 43 deposit-paid bookings in 42 days, $16,477 revenue from $2,309 spend, 7.1x, every patient showed up, plus a $199 Aerolase intro campaign.
Inglewood Skin Studio (nurse and dermal-therapist-led, $99 deposit offer): case study in progress, launching now.

Lead with PM Aesthetics once named (third-party beats self-reported), back it with Face Foundry. Never blend other figures into these.

2. The competitor reality

Final threat order, full detail in the competitor map.

1.ClinicBoost (Brisbane, sells into Perth, dollarised guarantee). Out-local, out-honest, out the dual story; do not fight on the guarantee.
2.Grow A Salon and Business Warriors (Perth HQ, run ads). The closest local ad competitor. Narrow and operator-led against their broad salon factory and hype.
3.SaltWave Digital (AU). Closest to your old offer (deposit-direct + booked-appts guarantee, proven ~20-month ad). Proof the mechanics work, and proof they will not separate you. Win on the dual story, the teardown, and AHPRA.
4.Sane Social Media (Canberra, APAN moat). Go around it: local, the dual story, the teardown.
5.OMD (the one confirmed heavy advertiser, aimed at UK). Study its hooks; Perth is open.
6.Aesthetix Digital (contests the operator angle). Beat on the dual story (built AND was-the-burnt-client, not just ex-therapist) and the teardown.
7.The Foundry (east-coast). Their ads is a $500/mo add-on on an EDM retainer; yours is the whole machine behind a guarantee.

Lower priority: VisiBelle, Azuri, Neho (no ads), the swipe-only US/UK field.

3. The offer

Front door: a free, no-call recorded teardown, opened on compliance. Order matters. (1) Open with a specific AHPRA compliance-risk finding in their current ads (named, with the real $60k/$120k penalty and the deadline). Fastest recognition and urgency for this buyer. (2) Then put a dollar figure on the enquiry-to-booking leak in their own numbers. (3) Then one side-by-side of their ad against a competitor's. Free, yours to keep, no call to get it. This one artifact is uncopyable on three axes (recorded, compliance-graded, results-framed) and it speaks the owner's language end to end.

Plus a cheap paid lead source into the same machine: a productized AHPRA cosmetic-ad compliance audit (a real, near-zero-cost, warm-orbit offer that the field is not running). It warms the exact ICP and routes into the engine.

The engine: the Deposit-Direct Machine, productized from client one. You build and film the trust assets (you direct, an editor cuts), run the ads, and install a deposit-gated booking step that feeds the clinic's existing calendar (be specific about the mechanism per booking system, do not promise "no new software" blanket; confirm on the qualify form they can take a deposit). Build it as SOPs plus a cloneable booking flow plus a tracker from the very first client, so an editor and an ad-ops contractor can deliver under your review. That is the leverage path, not a someday.

The terms, graduated so churn downgrades instead of zeroing. A refundable build deposit (~$5k) funds the film day and the build; only your ongoing fee is at risk, not the hard production cost. After the booked-appointment target is hit, a graduated ongoing fee: ~$2,500/mo managed, or a ~$1,500/mo lite tier. Month to month. The client funds ad spend separately (~$3,000/mo to Meta). State the real all-in number plainly (~$5,500/mo once running), and cap the ICP so it stays productizable.

The guarantee, at the back, pinned to a flat number you have hit. "A booking is a confirmed appointment, a date and a time, with a deposit paid. Not a lead. You do not pay my fee until I have booked [X] of those inside 30 days of go-live. Miss it and your build deposit comes back." Anchor X to your real rate (PM Aesthetics: 43 in 42 days, about 31 in 30; Face Foundry: 82 in 30), confirm it traces before it goes in writing. Clock starts at go-live. Holds while the client funds the agreed spend and keeps the flow live. On a refunded miss, the filmed assets stay with you. Guarantee is risk-reversal, never the headline.

Price-objection answer (for "agency X runs ads for $500"): that is management bolted onto a $2,000-plus retainer, no creative made, ad spend on top. You build the whole machine and put your fee behind booked appointments. Different product.

4. The funnel

Teardown (compliance-led, then the dollarised leak, then the side-by-side) or the paid AHPRA audit, to a soft 20-minute call, to the productized Deposit-Direct install with the flat-count guarantee, to the graduated ongoing fee after the target is hit. Honest scarcity (one clinic per defined area), no countdowns.

Measure before you scale. Hand-deliver 8 to 10 teardowns first and record cost per teardown lead, teardown-to-call, and call-to-close. That early read tells you whether the front door works, not your true CAC (early ad cost is learning-phase inflated). Get to ~20 to 25 teardowns before scaling spend. This is the one load-bearing assumption left, so test it before betting on it.

5. The economics (how $20k actually happens)

The graduated retainer plus productize-from-client-one plus the paid AHPRA audit front door is the answer to the knife-edge, pulled forward, not deferred to year two. A downgrading client beats a churned one. Productized SOPs let an editor and ad-ops contractor deliver under your review, so adding clients adds their hours, not your risk. Capacity is a scale-with-systems-and-team lever (your operating model), not a wall, the binding constraint right now is the funnel and the first named proof. The durable year-two layer (a cross-clinic AU conversion benchmark and a certify/license offer) is real but unbuilt; it depends on documented installs, one owned measured consult-lift, and Suzie's written permission. Treat it as the destination, not a present claim.

6. The ads

Every ad points at the free teardown. Your voice, no hype, booked appointments as the unit, AHPRA-clean.

Founder-authority videos led by the dual story (built and ran a clinic AND the burnt client), the deposit-direct "I remove the chase", and the give-first teardown.
A one-pain-per-ad image matrix: quiet weeks and no idea why; the $10k-for-10-bookings burnt-client story; you became the marketer; leads you have to chase are not bookings; the AHPRA fine and deadline; the teardown direct; "you have hit a plateau"; and "here are the actual clinic ads I made" (show real work as creative proof).
Back the dual-story video and the burnt-client image ad first. Commit, do not over-split at this volume.

7. The 90 days

Days 1-15: capture PM Aesthetics (Friday interview and film) and Inglewood (after launch) as named, filmed case studies, the priority; ship Offer 2.0 (teardown-first, compliance-led); build the install SOPs and tracker so delivery is productized from client one; set the watchlist.
Days 16-45: hand-deliver 8 to 10 teardowns and the paid AHPRA audit; record the funnel numbers; close 1 or 2 installs.
Days 46-90: deliver to result; convert to the graduated ongoing fee; make the first WA win the named lighthouse; make the first editor/ad-ops hire the moment delivery load justifies it.

8. The scoreboard

Cost per teardown lead. Teardown-to-call. Call-to-close. One named Perth lighthouse result, live. And the soft signal the position is landing: "the guy who actually ran a clinic, and got ripped off by an agency like I did" coming back in owners' own words.

9. The SEO and AI-SEO ascension tier (the sticky second channel)

This goes at the back, not the front door. Decided. The spear stays the spear: paid deposit-paid patients in the chair in 30 days, guaranteed. SEO does a different job on a different clock (3 to 6 months to compound), so it can't live inside the 30-day booked-appointments guarantee without breaking it. Don't bolt it onto the front offer. You sell it as a second channel once the chair is already full.

What it is and when it gets sold. This is an ascension only, sold to an existing paid-machine client after the machine has hit the booking target and the owner trusts the work. Not before. There is no standalone organic-only product and no second free audit at the top of funnel. The compliance teardown stays the only free front door, and the AI-search audit is not run as a standalone acquisition channel until the funnel is validated. If a prospect wants organic and not the machine, that is a cue to route them to the paid machine first or pass, not to start a second product line.

The frame to the owner is plain: right now you're renting all your demand from Meta. One algorithm change, one ad account flag, one rising cost-per-booking, and your calendar goes quiet through no fault of yours. Let's also make sure you own the search results and the AI answers, so no single platform can switch you off. That's the exact platform-risk this strategy already flags in the Open questions (the model leans entirely on Meta, plan a second channel before it bites). This is that channel. Sell it to the owner as their insurance.

Honest method, honest gap. The lead edge is GEO: be the clinic ChatGPT, Gemini, Perplexity and Google's AI answers recommend when a patient asks "best skin clinic near me" or "where do I get [treatment] in [suburb]." Same energy as the AHPRA hook: ahead of the curve, compliant, built by an operator. Tell the owner two things straight. AI names a far smaller set than Google does, roughly 1 to 7 percent of businesses (ChatGPT ~1.2%, Perplexity ~7.4%) versus about a third in Google's local pack (~36% in the 3-pack). So the job is getting into the short list AI names, not chasing rank four on Google. And a clinic's own pages rarely earn the recommendation. Your own pages mostly just make you legible to the AI. What actually gets you named is outside signals: reviews, independent listicles, clean directory listings.

My system already runs this end to end: the technical and machine-readable foundation, the entity and NAP lock, the answer-first decision pages built to the must-be-true and need-to-believe rubric, the third-party review and listicle engine, and a fixed prompt set run monthly across the AI engines to track whether the clinic gets mentioned and recommended. Production (the writing, the technical build, the citation outreach) is contracted out and runs through the client-seo skill and the gated client kits (control panel, approval kit, results dashboard). I stay on strategy and the GEO brief, which is where the margin comes from.

The honest gap: I have no clinic SEO result yet. So the first result has to be real before I sell off it. I get it from my own properties and a willing first clinic (PM Aesthetics or Inglewood organic, measured against a dated baseline). I don't cite ARA as proof here, it's a free, unproven B2B recruitment engagement in a different industry, so at most it's an internal note about where the method has been deployed, never client-facing evidence on a clinic sell. Until a real clinic result exists, this tier is sold on the method and the visibility outcomes, not on a number I haven't hit.

Price, as an add-on. A +$1,000/mo add-on to the existing graduated ongoing fee, never a new flagship and never priced at or above the paid machine. A lean GEO and AI-SEO visibility layer (roughly 4 to 5 decision-stage pages, entity and NAP cleanup, GBP and reviews schema, AI-citation tracking) sits on top of the managed or lite tier at about $1,000 a month, month to month. There is no standalone organic-only tier. Note the honesty: this $1,000 figure is a proposed add-on price with no real engagement behind it yet, separate from the validated paid-machine pricing ($2,500 managed / $1,500 lite). Same logic as the rest of the doc: my fee and the ad spend are separate line items, and the client funds any spend directly. No lock-in. They can drop to the lite layer instead of cancelling.

If the AI-search audit is mentioned at all pre-validation, keep it to a one-line cross-sell inside the existing compliance teardown for a clinic that's already a client, never its own free front door. Same restraint as the teardown: do the fixes yourself and never speak to me again, that's a fine outcome.

The honest caveats stay. SEO is a 3 to 6 month game. I can't guarantee rankings or AI citations the way I guarantee 30-day booked appointments, because I can only move the inputs, and the AI engines decide the output. AI visibility isn't directly buyable, and the AI-answer measurement is sampled, reported as a trend not a precise dashboard. So I sell this on authority and visibility outcomes, never on a booked-appointment guarantee. Validate the channel on the first real clinic before scaling it across clients. This is where you take a clinic once the chair is full. It is not how you fill it.

Open questions and the honest risks

Decided: agency over the job; national is the destination, Perth the beachhead (note: lenders weight PAYG salary over fresh self-employed income, so if the deeper goal is the property plan, the agency income will not help serviceability for a year or two).
The live constraint is the funnel and the first named proof, not positioning. Validate the teardown channel before spending.
Platform risk: the model leans entirely on Meta. Plan a second channel before it bites. That second channel is the SEO and AI-SEO ascension tier in section 9, sold to existing clients, not stood up as a new front door.
Honesty non-negotiables: never present Suzie's $73-to-$380 / 44%-to-88% lift as yours; keep the consult method as credited implementation until written permission; the deposit is a refundable liability, not day-one cash; lock the one proof set above.
The discipline that is itself a moat: against a field that over-claims, your restraint (one locked, never-rounded proof set, and saying when ads are not the answer) is the trust signal that converts the agency-burnt buyer.

Category Ownership Plan

5 differentiators, belief table, anti-positioning

aesthetic-ops-leadgen/category-ownership-plan.md

How I win here, and own my own category

The strategy, pulled from the full competitor recon (17 rival agencies + the AU/Perth ones I was missing) and the Inglewood market pull. Internal. This is the plan to stop competing in the aesthetic-marketing-agency category and define a new one I'm the only real fit for.

Spine updated after the judge-panel audit. See "The Play" (the canonical doc). Lead with the dual operator-and-burnt-client story and the booked-calendar job, in the buyer's words (dial back the "category of one" framing, it reads as marketer-coded to a tired clinic owner). AHPRA is the front-door hook; the offer is productized with a graduated retainer; creative is a supporting deliverable, not the spine.
Back-of-doc ascension only. See "The Play" section 9 (the SEO/AI-SEO tier). SEO/GEO is a +$1,000/mo add-on sold to existing paid-machine clients once the chair is full, never a front door or a standalone organic-only product. The free compliance teardown stays the single funnel entry; SEO does not feed acquisition pre-validation.

The opportunity, in one line

Every agency in this space now sells the identical thing the identical way, so the win isn't a better version of what they do. It's refusing to be in their category at all.

What the data actually shows

I pulled their live ads. The whole category has collapsed into one script:

One offer, everywhere. "3X / $20-50k / 30+ bookings or you don't pay." Anamedia, One Conversions, IGX, Aesthetic Acquisition, Grom, and most of the US field. The guarantee is no longer a differentiator. It's the cover charge.
One scarcity line. "We only take 2-4 clinics." Said so often it reads as a script, not a constraint.
One villain. "The other agencies lied to you." IGX, Aesthetic Acquisition, Patient Acquisition all open on the grievance. It's a cliche now.
Recycled creative. The recon kept finding the same note: one or two ads, reskinned, run until they die. Almost nobody is winning on the creative itself.
The "free" thing is always a call. Not one competitor gives you something useful before you talk to them.

When everyone says the same thing in the same words, the market stops hearing any of it. That sea of sameness is the opening.

There's one direct AU archetype scaling hard: Anamedia (~51 live ads), running exactly the guarantee-plus-scarcity-plus-founder-video play. The closest direct competitor is ClinicBoost (Brisbane, sells nationally, already has a Perth client, my exact lane, a sharper dollarised guarantee). The Perth-local pack is Grow A Salon (and its parent Business Warriors), Neho Media (no ads, confirmed), and Vstock (search-only). So Perth is contested on the ground, not empty, and the operator-credibility lane is no longer uncontested (Aesthetix runs the same ex-operator wedge). But none of the local pack has an operator founder. Grow A Salon does run ads (you've confirmed it), though its creative couldn't be pulled, and via tooling the only strong always-on own-Meta ads I could confirm anywhere belonged to OMD (aimed at the UK and east coast). That is the category's biggest tell: almost nobody is visibly winning on their own strong creative (cobbler with no shoes). Perth is open right now. That is the opening, and it is time-limited.

The category I'm going to own

Not "another aesthetic marketing agency." That category is full and it's a price fight.

The category: patient demand for skin clinics, built by the person who ran one.

The reframe that makes the rest of them irrelevant:

Your clinic marketing is being run by people who have never run a clinic. That's the actual problem. Not your ads, not your budget. The people holding the lever never carried the lease.

Once a clinic owner accepts that frame, every agency in their feed is disqualified by definition, because none of them ran a clinic. I'm the answer to a problem the category can't even claim.

The line: Patient demand for skin clinics. Built by someone who ran one, not an agency that learned the words.

Why I'm the only credible fit for it

Five things, and the data says no competitor has more than one or two. I have all five, and they compound.

1.The dual operator-and-burnt-client story (the uncopyable core). I built and ran my own skin clinic (franchise, lease, fit-out, the team, rebuilt it, held it through the 2025 AHPRA changes: 82 bookings in 30 days, 96% showed up at $60.45 a booking). AND I was the clinic owner an agency billed $10k a month to spend $8k for ten bookings, while my own ads ran at $52 to $60. No one in the field can claim both halves: stood where the buyer stands AND ran the room. It is biographical, fully owned, and kills a burnt owner's scepticism faster than anything else. (The ASX regulated-healthcare record is real credibility behind it, not the lead.)
2.I give first, for real. A recorded teardown of your actual ads before you ever talk to me. Nobody in the entire recon does this. It's the front door no one else has.
3.The creative visibly looks better. I film real trust assets on site with proper gear. The category runs recycled stock-grade ads. Put them side by side and the gap closes the sale.
4.Honesty that cost me something. I walked away from a franchise rather than run something I didn't believe in. That's heavier than a guarantee anyone can copy. No countdown, no "$87M managed," no villain monologue.
5.Perth-local and compliant by default. I'm here, on the ground. And I ran a clinic through the 2025 AHPRA changes, so compliance isn't a constraint I work around, I write to the rules from the chair, not a checklist. Two of the strongest AU competitors (Sane Social's APAN moat, The Aesthetic Collective) win partly on compliance, so this is a top-three buyer belief, not a footnote.
6.Creative the buyer can see before committing. The category's creative is weak (most rivals don't run strong ads of their own), so visibly better creative stands out. You prove it the way the ICP actually cares about: by showing the real aesthetic-clinic ads you have made (Face Foundry, PM Aesthetics), plus the teardown of their ads. ("I run my own ads" is an insider point, not a selling line to a clinic owner.)

What a clinic owner has to believe (and how I prove it)

They must believeHow I prove it, not claim it
The people running my marketing don't understand my clinicI tell my own clinic story, in numbers, in my own words. Lived, not learned.
This one is different from the agency that burnt meI give a useful teardown first, free, no call. Generosity a salesperson can't fake.
The creative will actually be goodI show real filmed work next to the recycled stuff the category runs.
It won't blow up my registrationI ran a clinic through the 2025 AHPRA changes, compliant. I can show the line.
He won't just take my money if I'm not readyI say out loud when ads aren't the problem yet. On record, in the FAQ.

How I win: the engine

1.Lead with the teardown, not the guarantee. The teardown is the category-defining front door, still unique across AU, UK, NZ and the US (nobody else sends a recorded teardown before a call). Ads point to it, not to a call. The guarantee moves to the back, and when it appears it gets ClinicBoost-grade concrete: a flat count of deposit-paid appointments anchored to a real rate, and a strict "a booking is a confirmed appointment with a date and time, not a lead". That one line kills the lead-gen objection.
2.Make compliance and visible creative quality the two new front-of-house proofs. Foreground AHPRA/TGA (framed to my record: I write to the rules from the chair, not a checklist, and I have done it at ASX scale), and show the actual clinic ads I have made so the buyer can see the quality before committing. The first matches the moated competitors; the second answers their real creative fear.
2.Measure the funnel I haven't measured. Cost per teardown, teardown-to-call, call-to-close. That's the demand-test gate (Gate 2) I keep flagging and haven't run. The launch ad set is how I finally get the numbers, before I scale spend.
3.Proof flywheel. Every clean client result becomes a specific, exact-number case study, which closes the next client. Every teardown, anonymised, becomes content that shows my eye to the market. The lead engine and the content engine are the same motion.
4.Creative moat, kept sharp. My ads stay visibly better than the category's. A weekly competitor watch (the Spyder list from the recon) means I see new angles before they're everywhere and stay one step ahead.
5.Distribution. The launch ad set (operator-story video + one-pain-per-ad matrix), the teardown as the lead magnet, the POV content ("your marketing is run by people who never ran a clinic"), and LinkedIn. One message, repeated everywhere.

Where I plant the flag first

Perth first, and fast. Perth is contested on the ground (Grow A Salon is HQ'd here, ClinicBoost sells in), so this is a race, not open ground. Land one clean, named WA lighthouse result and claim "the Perth skin-clinic specialist, one clinic per area" before their hype or interstate reach define it.
Founder-clinician clinics. Dermal therapist, beauty therapist, or cosmetic nurse founders doing $40k to $150k a month. More invested, better teams, they just need the tap turned on.
Lighthouse clients. Land two or three I can get a clean, exact result for, and make those the public proof the category-frame rests on.

The anti-positioning (what I refuse to do)

Every one of these is a competitor's actual move. Refusing them is the brand.

No countdown timers or fake scarcity.
No "$87M managed" or revenue flexing.
No "the other agencies lied to you" opener.
No guru name-drops, no "comment FUNNEL for the link" bait.
No guarantee I can't underwrite, and the guarantee never leads.
No stock-grade recycled creative.

90 days to plant the flag

Days 1-15. Ship Offer 2.0 (teardown-first). Launch the ad set. Lock one clean proof set with exact numbers. Add the AU/Perth competitors to the watch.
Days 16-45. Hand-deliver 8 to 10 teardowns. Record opt-in, teardown-to-call, call-to-close. Close one or two installs. Publish the first POV piece ("run by people who never ran a clinic").
Days 46-90. Deliver to result. Convert to ongoing fee. Turn the first win into the lighthouse case study. Keep the weekly competitor watch and the teardown-to-content loop running.

The honest caveats

I'm a supply-constrained solo operator. The teardown-first model has to filter for the committed few I can actually deliver for, which the refundable build deposit already does.
Anamedia is scaling the old category hard in AU, and ClinicBoost (Brisbane) already sells into Perth with a sharper guarantee. I don't beat either by outspending. I beat them by not being in their category, by being the Perth operator who actually ran a clinic, and by out-honesty and out-craft on the ground. Speed to a named WA result is the priority.
One known blind spot to close before launch: profile VisiBelle (visibelle.com.au), a sharper AU aesthetic-niche rival (one-clinic-per-region, TGA-led) surfaced late in the recon.
None of this is real until the funnel is measured. The plan lives or dies on the Gate 2 numbers.

Scoreboard (how I know it's working)

Cost per teardown lead, and the teardown-to-call rate (the numbers I don't have yet).
Call-to-close on the guarantee offer.
One lighthouse case study with exact numbers, live.
"Run by someone who ran a clinic" starting to come back to me in owners' own words. That's the category taking hold.

Competitor Map v2

70 agencies profiled, 13 ranked threats

aesthetic-ops-leadgen/competitor-map-v2.md

Competitor map (final), full field, threat ranking, what to do

The complete picture after three recon passes: the swipe-file deep-dive, the missed-AU/Perth + UK/NZ scan, and a final Google sweep (VisiBelle + Azuri profiled, fresh AU/NZ/UK search, 13 new agencies deep-profiled). This is the authoritative map. The round-1 report stays as first-pass detail.

The verdict: the plan holds, and got sharper

Three passes, ~70 agencies, and nothing displaces the strategy. It strengthened it:

Cobbler-with-no-shoes is still the pattern. Via tooling, only OMD had confirmed strong always-on Meta ads (and one other, The Creative Collective, runs blank-copy DCO brand ads). Grow A Salon also advertises (confirmed by Mitchell), but their creative could not be retrieved, so its quality is unknown. Everyone else acquires via SEO, a paid audit, or a "book a call" form, with own-ad activity unverified. The point holds internally: almost nobody is visibly winning on creative, so visibly better creative stands out. But the ICP-facing edge is showing the actual clinic ads Mitchell has made (and the teardown of their ads), not "I run my own ads", which is an insider point a clinic owner does not care about.
Teardown-first is still unique. Every credible rival gates discovery behind a paid tripwire (VisiBelle $880) or a "valued at $1,500" audit (Azuri, Business Warriors, Ranking AU) or a generic sales-call form. Not one gives a genuinely free recorded teardown. Protect it and lead with it.
Compliance is the most-copied trust pillar (8+ rivals) and yours to out-credential. Name a "TGA-safe creative" pillar, then beat all of them with the line none can claim: compliant demand built by someone who ran a clinic and knows AHPRA/TGA from the chair, not a textbook.
The real contest is LOCAL. The locals that actually run ads in your lane are Grow A Salon and Business Warriors, plus ClinicBoost selling in from Brisbane. Neho Media runs no ads of its own (confirmed by Mitchell) and Vstock is search-only, so neither is a head-to-head on paid social. The one funded national advertiser (OMD) is aiming its spend at the UK/east-coast, so Perth feeds are open right now. Move fast.

Final AU / Perth threat ranking

#AgencyThreatRuns own Meta ads?The wedge against them
1ClinicBoost (Brisbane, sells Perth)HighYes (dollarised guarantee)Out-local, out-honest the "#1" puffery, out-creative; match the dollarised guarantee.
2Neho Media (Perth)Low (was Med-High)No (confirmed by Mitchell)Perth, same niche, but runs no ads of its own. Confirms the category's creative is weak (an internal read, not a sales line). Not a head-to-head on paid social.
3Grow A Salon (Perth HQ, AU+NZ)Med-HighYes (confirmed by Mitchell; creative not retrievable)Narrow + operator vs their broad salon-factory + hype. 0 verified reviews → real named WA proof.
4Business Warriors (Perth, GAS parent)MedSells Meta; own ads unconfirmedReal cosmetic-clinic ROAS proof (SkinFit 22x, Oi 110+/mo) but generalist, aesthetic clients are interstate, no operator angle.
5Sane Social Media (Canberra, targets Perth)MedYes (for clients)Can't out-badge the APAN moat; go around it: Perth-local + premium creative + operator story. Swipe their spend→bookings→ROAS format.
6OMD (Sydney/Melb/GC + UK/US)MedYes (confirmed: 10+ live, 214d)The only funded confirmed advertiser, but multi-country generalist on a lead-chase-retainer model, fire aimed at UK. Study its hooks; Perth is open.
7Aesthetix Digital (Sydney)MedYesContests your ex-operator wedge. Beat on Perth-local + stronger free front end + visibly better creative (show the clinic ads you've made).
8The Foundry (AU, east-coast)MedOffers Meta ads mgmt (+$500/mo add-on); own ads unverifiedDFY for beauty/skin clinics. Ladder: Beauty Hub $99-$199/mo → Marketing Partner $2,000-$3,500/mo → Bespoke. Meta ads is a +$500/mo MANAGEMENT-ONLY add-on on the retainer (ad spend separate, no creative production specified, no guarantee), so all-in ~$2.5-4k/mo, NOT a cheap undercut. Beat them: ads + real creative production as your CORE (not a $500 bolt-on) + a guarantee + operator + Perth. No Perth; hype-y "25% in 100 days" claim.
9VisiBelle (Adelaide)Low-MedSells Meta; own ads unverified, SEO-ledSharp packaged offer (TM framework, $880 tripwire) but no Perth, non-operator founder, paid-only front end. Swipe source.
10Vstock Media (Perth)Low-MedNo (Google/SEO only)Perth injectable-clinic name but cedes the Meta-creative lane entirely. Aware-of, not a head-to-head.
11Pracxcel (VIC, Perth page)Low-MedSells Meta; leans programmatic-SEOGuarantee-led ("Results or you don't pay", free $3,000 audit, one-clinic-per-postcode) but broad-healthcare, generic Perth page, inconsistent claims.
12Reflex Marketing (Brisbane)Low-MedBrands as FB/IG; unverifiedSharp offer ("10 appointments month one or you don't pay", "first to understand TGA") but 3,600km away. Positioning benchmark.
13BizWisdom (Melbourne)Low-MedUnknownBest dated-ROAS proof to swipe. National pitch rival only.

Also medium, added on request: SaltWave Digital (AU), the closest competitor to your own offer (deposit-direct plus a 20-booked-appointments guarantee, proven by a ~20-month-old ad). Full profile below.

Lower tier (low threat, swipe value): The Aesthetic Collective, Azuri Group, Ranking Australia, The Creative Collective, VIS, Practice Boost, Aesthetics Consults, Medical Marketing Group/Co/Specialists, Quinn Marketing.

The ones you asked me to profile

VisiBelle (visibelle.com.au), real competitor, LOW-MED, best as a swipe source. Adelaide/SA (founder Lyndal Ashby, ~4-5 staff), same niche, sharp packaged offer: a trademarked "Booked Solid & Unshakeable Framework", TGA-forward trust angle, an $880 credit-back paid "roadmap" (anchored from $1,500, client keeps the doc), a soft first-90-day guarantee, and a strong SEO moat (claims 150+ businesses, 600+ pages). Not a Perth threat: no WA presence, the founder openly admits she has never run a clinic (your exact wedge), full-stack generalist, paid-audit front end vs your free teardown. The earlier "exclusivity + client portal" flags were NOT on the current site, so that was overstated. Own Meta-ad activity unverifiable (reads SEO/tripwire-led).

Azuri Group (azurigroup.com.au), confirmed a competitor, but LOW threat. Gold Coast QLD (MD Drew Hankin, ~5 staff), done-for-you medical marketing for surgeon-tier cosmetic/surgical clinics, premium authority positioning ("$2bn+ tracked", "100% AHPRA audit success", "only Google Partner specialist medical agency"), free $1,450 Growth Audit. Low threat: no Perth, aimed at big surgeon clinics not small independents, no verifiable own Meta ads (SEO/Google-led), and a credentials-and-big-numbers voice that's the opposite of yours. Swipe source on the authority end. Name-collision note: the Miami "AZURI Medical Aesthetics" clinic and the "Azuri" solar company are unrelated.

The Foundry (the-foundry.com.au), direct competitor, MEDIUM threat. AU done-for-you marketing agency for beauty and skin clinics. Three founders (Samuel Bird, who co-founded and exited UK Skin + Laser Clinics, so an ex-operator but UK not AU; plus a branding/CX and a salon-marketing co-founder), with real press and brand partners (Vida Glow, DMK, Synergie Skin, Timely).

The full pricing ladder (pulled from their membership pages, not just the homepage): Beauty Hub $99-$199/mo +GST (platform, community, AI tools, profit calculator, no ad management), Marketing Partner $2,000-$3,500/mo +GST (monthly strategy calls, 2 EDM campaigns, website management + SEO, a monthly campaign asset suite, client re-engagement), and a custom-priced Bespoke tier. Entry is a free 30-minute Growth Session. Month-to-month, no lock-in, no performance guarantee stated.

They DO offer paid ads, as a "+$500/mo Meta Ads management" add-on on top of the Marketing Partner retainer. Important nuance: it is management-only (ad spend is separate, no creative production specified, no guarantee), so a clinic running ads with them pays all-in roughly $2,500-$4,000/mo, similar to or above Mitchell's $2,500. It is NOT a cheap $500 standalone that undercuts him. Their paid ads is a low-priced bolt-on on an EDM/website/SEO retainer, which is the opposite of Mitchell's model where the ads and the filmed creative ARE the product, behind a guarantee.

Why only medium: no Perth/WA presence (Sydney launch, reads east-coast); the ads offering is a thin afterthought add-on, not a creative-led core; no guarantee; and the headline "25% revenue growth in 100 days" is the claim-first promise Mitchell out-honests. The wedge: ads + real on-site creative production as the CORE (not a $500 bolt-on) + a concrete guarantee + ex-operator + Perth-local. Counter-position / price-objection line: "their $500 ads is management bolted onto a $2,000 retainer, with no creative made and ad spend on top. I build and film the creative, put my fee behind booked appointments, and you don't pay for EDMs you didn't ask for." FB page facebook.com/beautyfoundry; own Meta-ad activity unverified (the Foreplay "The Foundry" page returned zero live ads; Ad Library unfetchable, so a manual check is the gap). Name-collisions to ignore: the Da Gama Pinto "The Foundry" private-equity firm, "The Beauty Foundry" spa, and Mitchell's own past Face Foundry are all unrelated.

SaltWave Digital (facebook.com/saltwavedigital, AU), direct competitor, MEDIUM, the closest to your own offer. An AU marketing agency for medspa, beauty and skin clinic owners. Thin or no website (both saltwavedigital.com and .com.au are dead); they run a Facebook/Messenger lead funnel off the page. Their "New Client MAX" offer is almost identical to your model: "20+ booked appointments every 30 days or we work for free", a deposit taken on the phone (your deposit-direct mechanic), the anti-agency line ("tired of agencies taking a fee without producing results"), and "only 4 new clients a month" scarcity. Per Mitchell's Meta Ad Library screenshot the same image ad has run since around Oct 2024, so this offer is proven in the AU market. (Foreplay holds only a partial snapshot of it: the ad.) Two takeaways: (1) validation, the deposit-direct plus booked-appointments-guarantee model demonstrably works here; (2) warning, the offer mechanics alone will not separate you, SaltWave already runs them and has for ~20 months. Beat them on what they lack: a real operator story, filmed founder creative, the free recorded teardown (they gate straight to a phone call), and the regulated-at-both-ends proof. Faceless, one static ad, thin presence, a cobbler with one shoe. Worth a Spyder watch and a sheet row.

New in the final sweep (worth adding to your sheet)

Neho Media (Perth), downgraded. Confirmed (by Mitchell) to run no ads of its own, so not a head-to-head on paid social. The revenue-stage funnel ($0-15k / 15-50k / 50k+) and $490 strategy session are still a useful funnel swipe. Non-operator founder.
Business Warriors (Perth), Grow A Salon's parent. Real cosmetic-clinic results, Meta Business Partner, free $1,500-plan front end. Generalist; aesthetic clients interstate.
OMD (onlinemarketingfordoctors.com), the only confirmed heavy Meta advertiser (page 193583167793622). Best hook swipe (see ad set). Watch second.
Vstock Media (Perth), Pracxcel (VIC, Perth page), Reflex (Brisbane), low-med, see ranking.
Low/swipe: Ranking Australia, The Creative Collective (9 live DCO ads), Medical Marketing Group/Co/Specialists, Quinn.

UK + NZ (swipe sources + entrants to watch)

Watch (AU-claiming): ClinicUp (US/UK/AU, runs Meta, 60-day work-free guarantee), LTF Digital (claims AU+NZ). Both broad-healthcare, not skin-specialist.
Validates your angle: Apex Aesthetics (UK) runs your exact solo-operator positioning. Your origin story is stronger.
NZ is open: the aesthetic niche there is won on Google/compliance; no operator-led skin-clinic Meta specialist exists. Partner with compliance authorities (MO by JC), don't fight them.
New patterns to adopt: compliance-as-the-hook; "booked appointments not leads" as the unit; name and productise the free diagnostic; anti-hype is a viable category (TooPixels).

Top swipe (model the structure, keep your voice)

OMD hook library (battle-tested on a confirmed 214-day advertiser): the anti-guarantee flip ("if an agency guarantees results, run"), the "you don't know your CPA, you're flying blind" analogy, AI-search-visibility urgency.
ClinicGrower "Secret Weapon" video (~297d, longest in the scan): See in Foreplay
VisiBelle risk-reversal line: "you keep the strategy doc even if you don't hire us."
Skinspire niche-proof line (write a stronger version): "we know the difference between a Botox lead and a Morpheus8 lead."
Avaris unit: "30 booked appointments in 90 days," booked not leads.
Named methods that read as established: VisiBelle's "Booked Solid & Unshakeable", OMD's "Patient Generation Blueprint", Pracxcel's "P.A.T.I.E.N.T. Roadmap" → name your own.

Dead ends / not competitors (don't chase)

AZURI Medical Aesthetics (Miami clinic) and Azuri Technologies (solar), name collisions with Azuri Group, not competitors.
Reflex Marketing LLC (US) / Reflex Marketing & Promotions (UK), name collisions, not the AU agency.
The Aesthetic Collective ≠ The Creative Collective, different entities, don't merge.
Data-gap, not dead-end: for most new AU names, "0 live ads" means the Ad Library was unfetchable / not in Foreplay, NOT that they run no ads. Only OMD and The Creative Collective have confirmed live ad data. Re-verify manually by page id.
Treat all rivals' self-reported case-study numbers as proof-FORMAT to mirror, never to cite or borrow.

Watchlist additions (manual Ad Library checks by page id)

OMD (193583167793622, confirmed) · The Creative Collective (20953928836, confirmed) · Grow A Salon (facebook.com/growasalon) · BizWisdom (facebook.com/BizWisdomAgency) · plus the prior round's US set (Traciety, Harvey Warrington, Patient Acquisition, Wellness Clinic Marketing, Servedia, Grow My Clinic, Pinpoint, Jump Forward). (Neho Media dropped: confirmed no ads.)

Offer Blueprint

Clinic Creative Teardown, 3 gates, full funnel

aesthetic-ops-leadgen/offer-blueprint.md

The Clinic Creative Teardown: build-ready blueprint

The recommended front-end offer for aesthetic-ops. Read the teardown + memo first for why this beats the bare call and the quiz.

The offer in one line

Send Mitchell your clinic's Instagram, your best recent ad, and your booking page. In 5 working days he sends back a 10-minute Loom and a one-page scorecard showing where your content and ads are losing bookings, and the three things to fix first. Free. No call required to receive it.


Read this before you build: three gates

The first draft of this blueprint had three flaws the red-team caught. They are fixed below, but they are also gates. Clear them in order.

Gate 1: aim it at creative, not performance. The teardown must diagnose their *creative* (reels, photography, ad-creative quality, hook strength, on-camera presence, brand consistency), because that is what your retainer sells and what your real moat is. Booking-flow is one small section, not the spine. If the teardown proves you are a funnel diagnostician, you have set up a bait-and-switch into a creative pitch, and you have pulled yourself back toward the performance-agency lane you left. Don't.

Gate 2: demand-test for 2 weeks before building anything. Run 5 to 8 teardowns by hand (a simple form, a Loom, your own network or a $20/day test ad). Measure two things: do clinic owners actually opt in to a stranger critiquing their marketing, and do those teardowns book calls. Only build the subdomain, the scorecard PDF, the automation and the launch ad once that signal is real. This is the same Phase-0 check the ARA red-team forced on you. "Nobody else does it" can mean white space or no demand; the test tells you which.

Gate 3: honest proof only. Drop ARA (off-category, no results). Do not blend your booking numbers. Lead with your one clean, cleared client result (PM Aesthetics), stated exactly, and confirm the precise figures yourself before they go on a public page. Any teardown you turn into content must be anonymised or composite (publicly critiquing a named clinic's ads is permission-risky and AHPRA-adjacent).


The funnel: ad to LP to teardown to call to retainer

Stage 1: Meta ad (cold). A short video in your proven house style (centred subject, high contrast, hard cuts, real soundbite, flat CTA card), using one of the ad angles below. The ad sells the free teardown, not the retainer. You shoot and edit it (it is literally your product, and each ad doubles as content); AI drafts the copy and hook variations and the budget note.

Stage 2: Landing page. One job: get their Instagram + best ad + booking link + a few numbers via a 4-minute intake form. No retainer mention, no nav. AI builds the page (same Next.js stack as your Inglewood and ARA sites, shipped to a subdomain like teardown.mitchellkwan.com via your subdomain skill) and wires the form to email + a tracking row with UTM attribution. You approve copy and go-live.

Stage 3: The teardown (the value-first deliverable). Within 5 working days they get the Loom + one-page scorecard. This is the whole differentiator: your creative eye on their clinic, no case-study wall needed. AI assembles the draft scorecard and Loom outline from the intake plus a pass over their live content; you record the roughly 10-minute Loom (the irreplaceable part); AI finalises the PDF and drafts the delivery email; you approve the send (your standing draft-then-confirm rule).

Stage 4: The conversion step (the proven close, kept intact). The Loom and scorecard both end with one soft offer: a 20-minute call to talk through having the three fixes done for them. Every competitor closes on a call; the teardown just makes the call warm because you have already shown your eye. Booked via Calendly. AI drafts a 2-touch follow-up for non-bookers (day 3, day 7), each referencing their own top scorecard fix.

Stage 5: The retainer (the actual business). On the call you close the ~$2,400/mo done-for-you creative + campaign retainer. The teardown's three fixes become the first month's roadmap, so onboarding starts with momentum. Target 7 to 10 clients.

The compounding loop: each teardown, anonymised or composite, is also a reel that shows your eye to the market. The lead engine and the content engine are the same motion. No course, no SaaS, no second product.


Landing page outline

Single page, one job. No nav, no escape routes, every button opens the intake form. Visual register: clinical, calm, premium-but-grounded (swipe OneConversions' serif-display-plus-clean-sans pairing; reject Hedonic-style revenue flexing). The page sells the teardown only. The retainer never appears here.

1.Hero. Eyebrow: "For Australian aesthetic clinic owners." Headline: "I'll tear down your clinic's content and ads for free, and show you where the bookings are leaking." Subhead: "Send me your Instagram, your best recent ad, and your booking page. In 5 working days you get a 10-minute video walking through it and a one-page scorecard with the three fixes that matter most. No call needed to get it." Single CTA: "Send me your clinic." Trust line: "Built campaigns for clinics across WA. AHPRA-aware. One clinic operator talking to another."
2.The recognition block. "You're probably getting enquiries. They're just not turning into booked, paid appointments." Three plain lines: the content looks like everyone else's; the ad gets clicks but cost per booking creeps up; people watch, then scroll. Close: "None of that shows up in a dashboard. You have to actually watch how your clinic comes across. That's what I do."
3.What you actually get. Heading: "What lands in your inbox in 5 working days." Three cards: a 10-minute Loom (you, screen-recording their content and ad, talking through what you'd change and why); a one-page scorecard (their content, ad creative and booking flow each scored, plus the three fixes ranked); the three-fix shortlist (not forty things, the three that move bookings, in order). Reassurance: "It's genuinely free and useful on its own. Do all three fixes yourself and never talk to me again, that's a fine outcome."
4.Why mine is different (anti-positioning). "Why this isn't the usual 'free audit.'" It's not a 15-minute call disguised as an audit (you get the actual teardown first, in writing and on video). It's about your clinic, not a generic checklist. No revenue screenshots, no "$87M", no countdown timer. Not an offshore team, one person who builds this work reviewing yours.
5.Proof (light, honest, exact). A short founder paragraph in your voice. Lead with your one cleared client result, stated exactly (confirm the figures first). One line: "I'd rather show you my eye on your clinic than make you read a wall of case studies." AHPRA trust cue with a plain link to the advertising hub.
6.How it works (3 steps). You send three things (4 minutes). I record the teardown (back within 5 working days). You decide what's next (do the fixes yourself, or book a 20-minute call). Most of the work is mine.
7.The intake form. Heading "Send me your clinic." Fields per the spec below. Submit: "Send me my teardown." Under it: "I'll only ever use this to record your teardown. I won't add you to a list or sell you anything you didn't ask for."
8.FAQ. Is it really free (yes, a small number a month). Why do you need my numbers (so the teardown is about your real results). What if I don't run ads yet (send your Instagram and booking page). Will you pitch me (one soft offer at the end of the Loom, the teardown stands on its own). How many do you do (a handful a month).
9.Final CTA (repeat, single). "Send me your Instagram, your ad, and your booking page. I'll show you where the bookings are leaking." Button: "Send me my teardown."

The lead mechanism (intake + scorecard + Loom)

This is an audit, not a quiz. Lead capture is a short intake form; the deliverable is a templated Loom + a one-page scorecard. The point of productising is that inputs are AI-assembled into a draft and you only add your eye on top.

A. The intake form (one screen)

Contact + clinic: your name; clinic name; suburb + state; best email; mobile (call only); booking page link; Instagram handle.

The creative inputs (what makes it real, not generic): link to your best recent ad or reel (with a "no ad yet, leave blank" escape); where most enquiries come from now (Meta / Google / Instagram organic / word of mouth / not sure); roughly how many enquiries a month (bands); roughly what share become paid bookings (bands); your hero offer right now (one line); the one thing you wish was working better (one line, this is gold for the Loom's opening hook); monthly ad spend if any (bands, a soft qualifier, never a hard gate).

Consent checkbox: "I'm happy for Mitchell to record a private teardown of my clinic's marketing and email it to me."

B. The one-page scorecard (and the rubric)

Three sections scored out of 10 against fixed criteria (judgement-based, not a fake algorithm), plus the three-fix shortlist. AI drafts the first pass; you correct. Note the weighting: two of the three sections are creative, matching what you sell.

Section 1: The content + brand (score /10). Reels hook in the first 1.5 seconds; consistent visual identity (not random); real human/practitioner on camera, not just b-roll; lighting and framing look clinical-premium, not phone-grade; captions/subtitles present; a clear point of view, not just treatment menus; before/afters handled AHPRA-safe; posting shows a person, not a logo; content has a reason to stop the scroll; the clinic looks like itself, not a template.

Section 2: The ad creative (score /10). Hook earns attention immediately; subject centred, high contrast; one clear offer stated plainly (not "book a consult"); hard cuts, no distracting transitions; a real soundbite, not only b-roll; local callout present; price or value made concrete; single obvious CTA; AHPRA-safe; creative looks like the clinic, not stock.

Section 3: The booking flow (score /10, the one performance section). Headline matches the ad's promise; offer and price visible without scrolling; one primary CTA; loads fast on mobile; proof present; booking is one step, not phone-tag; deposit/commitment step to cut no-shows; a reply path for DMs that doesn't go quiet; price shown before they commit; some follow-up for enquiries who don't book.

Footer, "Your three fixes, in order": Fix 1 (biggest leak) + why it's first; Fix 2; Fix 3. One closing line: "Want these done for you? Reply to this email or book a 20-minute call." That is the only retainer mention on the deliverable.

One guardrail: the scorecard should diagnose (what is leaking, and why it matters) more than prescribe (the exact how). If you give away the full fix for all three, free, to every lead, the call loses its reason to exist. Name the leak and its cost; save the "how" for the engagement.

C. The Loom (templated, about 10 minutes, fixed order)

1.(30s) "Hi [name], here's your teardown for [clinic]." Name the one thing they said they wished was working. Earns attention immediately.
2.(3 min) Screen-share their Instagram/reels. Praise what's good first, then the creative gaps.
3.(3 min) Screen-share their best ad. Walk the creative criteria out loud.
4.(2 min) The booking page + their numbers. Name the likely leak ("your enquiry-to-booking is in the 10-25% band, here's why").
5.(1.5 min) The three fixes, in order. End plainly: "Do these three and you'll see it. If you'd rather I did them for you, there's a link below for a 20-minute call. Either way, I hope this was useful." No hard close.

D. The solo + AI split (budget 60 to 90 minutes of your time per teardown)

AI assembles a draft scorecard from the intake + a pass over their live content and ad (criteria pre-filled with a first-draft score and notes). [ai]
AI drafts the Loom talking-points keyed to that clinic's specific gaps. [ai]
You record the Loom off the outline (your eye, your voice, irreplaceable). [human, about 15 min, plus retakes]
AI finalises the one-page scorecard PDF from your spoken corrections. [ai]
You approve and send the email with Loom + scorecard. [ai+confirm]

Realistic loaded time includes qualifying the lead, correcting AI's first-draft scorecard where it misreads their funnel, retakes, and reply scope-creep. Plan for 60 to 90 minutes, a handful a month, not a flood. If a bad week hits, the 5-day SLA is your buffer; protect it.


Starter ad angles

Each adapted from the strongest examples in the file, kept plain and un-flexy.

1.The leak, not the leads (swipe: Grom + Alaris). "You don't have a leads problem. You have a booking problem. Send me your Instagram and booking page and I'll show you where the paid appointments are leaking. Free."
2.Tell me what I'd do with your clinic (swipe: TwoSix, de-profaned). "Send me your content and your ad. In 5 days I'll send back a 10-minute video showing exactly what I'd change. No call needed."
3.The free teardown nobody else does (swipe: ClinicBoost's anti-agency block). "Every agency offers a free strategy call. I do something different: I record an actual teardown of your clinic's content and ads first, then you decide if we ever talk."
4.One clinic operator to another (swipe: TwoSix authority + Define's anti-guru tone). "I build clinic content and I've run the clinic side. Send me yours and I'll tear it down the way I'd want mine torn down. Free, and useful even if we never speak."
5.The 1.5-second test (swipe: Alaris speed angle, used honestly). "A new patient decides in about a second and a half whether your reel is worth watching. I'll watch your content as one of them and send you the 10-minute teardown."
6.AHPRA-safe and actually useful (swipe: OneConversions + Aesthetic Acquisition compliance-as-trust). "A free teardown of your clinic's content and ads from someone who keeps it inside AHPRA's rules. Three fixes, ranked. No fluff."
7.The three fixes, not forty (swipe: Define specificity). "I'm not going to send you a 40-point report you'll never read. I'll send you the three fixes that actually move bookings, in order, on one page."
8.The cost of the leak (swipe: Alaris cost-of-delay + Koru loss-math, kept plain). "If half your enquiries go quiet, that's bookings you already paid for, walking out. I'll show you exactly where, free, in a 10-minute teardown."

What to build, in order (only after Gate 2 passes)

1.The single landing page on teardown.mitchellkwan.com (same Next.js stack, shipped via your subdomain skill). One job, no nav, one repeated CTA.
2.The intake form wired to email + a tracking row (daily-hub or a simple CRM), with UTM attribution so you know which ad and angle produced the lead.
3.The scorecard template as a one-page PDF, built off the fixed rubric.
4.The Loom running-order script.
5.The AI draft step: a prompt that turns intake answers + their live content and ad into a first-draft scorecard and a Loom outline.
6.The 2-touch follow-up for non-bookers, each referencing their own top fix.
7.One launch ad in your house style.

What to deliberately not do (anti-hype guardrails)

No countdown timers or false scarcity (Hedonic's tell). No revenue screenshots or "$87M" flexing. No guarantee you can't underwrite solo. No fabricated trademarked mechanism. No rounded or blended numbers. No em-dashes. The whole credibility play is that the teardown is genuinely free and useful on its own; if an owner does the three fixes himself and never books, the page says that is fine. That honesty is the differentiator in a market full of thinly-veiled sales calls.

The economics

The teardown is free and costs you under about an hour and a half each. It points at one thing: the ~$2,400/mo done-for-you creative + campaign retainer. No course detour, no SaaS detour. Target 7 to 10 retainer clients. Each teardown (anonymised) doubles as content, so the lead engine and the content engine are one motion. That compounding is the quiet reason this beats a bare strategy call.

One conversion caveat to watch during the test: you have not yet measured teardown-to-call-to-close rates. If, say, 10 teardowns yield 1 call yields a fraction of a client, the unbilled hours per signed client are real. That is exactly what Gate 2 is for. Measure it before you scale.

Marketing Plan

6-stage customer value journey

aesthetic-ops-leadgen/marketing-plan.md

Aesthetic-ops marketing plan, by customer value journey

This is the marketing-thinking layer for aesthetic-ops, organised the way Mitchell thinks about it: Lead gen → Nurturing → Conversion → Fulfilment → Retention → Ascension (his "AIDA" / customer value journey).

It is a living doc. Insights get filed into the stage they belong to, stress-tested against the real business (solo, capacity-capped, AU aesthetic, guarantee-led), and only the version that survives the stress test goes in.

Source of truth note: the authoritative offer, pricing, and proof live in opportunity-engine/STRATEGY.md and the other docs in aesthetic-ops-leadgen/. When this file and those conflict, those win. (As of writing, the older offer-blueprint.md still shows a stale "$2,400/mo, 47 bookings, $52, 7.7x" set. The live, locked numbers are below. That file should be reconciled.)

Locked numbers used here (verified in opportunity-engine/STRATEGY.md, Jun 2026):

Offer: $5,000 refundable build deposit + $2,500/mo ongoing, results-gated. Premium / interstate: $8,000 + $3,500/mo.
Guarantee: 3X the fee in deposit-paid, confirmed bookings (date and time, not leads); void if the clinic doesn't do its part (min ad spend, uses his booking + follow-up flow); bounded make-good (the open-ended "keep working forever" version was removed 2026-06-19).
Proof, set 1 (Perth metro laser clinic): 43 deposit-paid bookings in 42 days, $16,477 from $2,309 spend, 7.1x, 100% show, first-transaction band $180 to $320.
Proof, set 2 (his own clinic, Face Foundry): 82 bookings in 30 days, $60.45 each, 96% show on a $50 deposit.
The contradictory "51 clients / $41.60 / 7.7x" set is purged everywhere. Do not use it.
Capacity: 7 to 10 retainer clients max. Gate 2 (teardown → call → signed install) is still UNMEASURED.

The one-line takeaway

With a hard 7 to 10 client cap, price is the only real growth lever, not volume, not a referral channel, not more free work. So the highest-leverage moves are: (1) measure Gate 2, then (2) raise price into a smaller premium book and quote off the clinic's size on the call.

The single most important don't: do not let "kill the high-drag activity" logic shrink the free teardown. It doubles as the content/authority engine, so a teardown that closes nothing still pays for itself. That second payoff is exactly what the tour-date analogy can't see.

Video 3 (the content engine) reinforces the same boundary: more content is a trust and relevance engine for the ~8 right owners, never a growth engine, so it feeds Nurturing, not the top line. The highest-leverage content move is to repurpose each teardown you already record into ~5 derivative pieces at zero new shoot time, not to shoot more.

Top 3 moves right now

1.Run Gate 2 before anything scales. Hand-deliver 8 to 10 warm teardowns (PM Aesthetics relationships, past contacts, LinkedIn) and record opt-in rate, teardown-to-call, and call-to-signed-install. Every other decision (lead channel mix, whether to lean on referrers, whether to raise price) hangs on this one unmeasured number. Publish each teardown anonymised so the hours also buy content, regardless of close.
2.Treat price as the primary growth lever; make the 20-min call a price-discovery instrument. Cap the book at 6 to 7 (not 10), target $3,000 to $3,500/mo ongoing, and on every call get the clinic's monthly revenue + first-treatment value BEFORE quoting. Make the premium tier ($8k + $3,500/mo) the default for $100k+/mo clinics. Build a one-line ROI anchor into the script he says before any number. Pre-commit the no-discount rule in writing now.
3.Manufacture the two ascension assets inside delivery, starting now. Baseline a paying client's consult-to-treatment conversion BEFORE installing the framework, so he captures one clean owned before/after lift (he has zero of these). Accumulate anonymised teardowns toward a real AU benchmark. Open the written-permission conversation with Suzie in parallel. None of this is new scope, it's just instrumenting work he's already doing.

The journey, stage by stage

1. Lead gen

Front-end stays the free teardown, run warm-first. It is his highest return-on-hours lead motion because the trust is pre-built AND every teardown still yields anonymised content. His own Days 16-45 plan already routes the first 8 to 10 teardowns to the warm pipeline. Keep it there.

Video 1 (centre-of-influence / "chunk up to the referrer") applies as an insight, not as machinery. Hormozi's point ("your clients aren't the customer, the referrers are") is real, but his system (farming/hunting cadence, events, cost-to-activate math) is built for a firehose of 147 clients. Mitchell needs ~8 ever. So:

Borrow the insight (court 2 to 3 non-competing referrers), discard the machine. The right effort is ~3 relationships and a few intro coffees a quarter, not a channel-development program.
Reverse-engineer PM Aesthetics. His one cleared client came through a relationship. Write down exactly how, and whether a repeatable referrer sits behind it. This is Hormozi's "make on purpose what happened on accident," and it's free.
AU referrer tiers, start at Tier 1. Tier 1 = aesthetic business consultants / educators who coach strategy or training but do NOT do done-for-you creative + ad ops (training academies; possibly a formalised tie with the Suzie/HTNK world he already delivers). They have his exact shaped hole. Tier 2 = device / injectable distributor reps (AbbVie/Allergan, Galderma, Merz) who see every new clinic but sell product, not marketing. Tier 3 = practice-management software reps (Pabau, Cliniko, Timely). (These channels are web-verified to exist and to touch many clinics.)
Pay referrers in disclosed value, not cash kickbacks: a free teardown they can hand their clients, co-branded content, a reciprocal referral. Cash quietly contradicts the anti-hype trust moat that is his actual differentiator, and sidesteps any AHPRA patient-inducement reading. (Legal nuance: a B2B intro fee for introducing a clinic owner is likely outside AHPRA's patient-referral ban and only triggers ordinary disclosure duties, but that's a read to confirm with his adviser, not settled. The safe default, value not cash, avoids the question entirely.)

The teardown is also the content engine (see Nurturing). Keep it AHPRA-compliant as content: never publicly critique a named clinic's ads; anonymise or composite; use only his own locked numbers as proof; zero patient testimonials.

The content engine (Video 3): your teardown is already the "one hero asset." Hormozi's move for a content-constrained business is one hero lead magnet that every piece of content "chunks into," so you never build a new magnet per post. You already have it: the free teardown + scorecard. Every repurposed piece should cover ONE leak and end by chunking in ("that's 1 of the things a teardown checks, send me your clinic"). Ship the scoring rubric itself as OPEN authority content (a reusable infographic or carousel), NOT a gated PDF or tripwire. A gated downloadable would signal the funnel-bro energy your anti-hype wedge avoids and collide with the self-serve scorecard you already have. (This is where Video 3's "free download does the converting" move does NOT transfer.)

Trim the platforms to where AU clinic owners actually are. Video 3's "21x across 7 platforms" is a consumer play. Five of those seven (TikTok, YouTube Shorts, X, broad Facebook, consumer Instagram) are wasted on you. You need ~8 right-fit owners, not mass reach. Primary channel: LinkedIn (B2B authority, rewards exact numbers + operator credibility, AHPRA-safe). Secondary: Instagram as a peer, owner/practitioner Facebook groups, email to your warm list. Master LinkedIn first for 3 to 6 months before adding any new content type (podcast, long-form, live). Cross-posting the same short elsewhere is cheap and fine; mastering a new channel is what you defer.

Gate content volume on Gate 2, not courage. Do not crank output into an unproven funnel. More reach is not the bottleneck; targeting and conversion are. If Gate 2 reads healthy, scale repurposing of the same capped teardowns; if weak, the fix is targeting + call script + price, not more reels.

2. Nurturing

The published teardown reel IS the nurture layer. The same anonymised teardown that generates a lead warms the wider market over months. Lead engine and nurture engine are one motion. This is the only place Hormozi's "free content for the masses funds growth" transfers as real impact-at-scale: the scalable free asset is the content byproduct of each teardown, not teardown volume.

Measure it on the right metric. Judge the nurture/content tier on Gate 2 inputs (opt-in, teardown-to-call) AND on authority lift over months (AI-citation / key-person recognition moving off a 0% baseline). Do not kill it because individual teardowns don't immediately close. Its second job is authority compounding, which a referrer lunch or a cold call never delivers.

Keep it recognition-first and anti-hype. His ICP is agency-burnt. The content's job is to name their exact frustration and quantify their leak in their own numbers before proposing anything. No countdown timers, no revenue flexing. The honesty is the differentiator.

Wire a fixed repurposing pipeline to every teardown (zero new shoot time). This is the concrete "21x" mechanic Video 3 names. From the one anonymised teardown Loom you already record: (1) cut 2 to 3 micro-reels around the single sharpest 20-second moment ("here's the booking leak I see in 9 of 10 clinics"); (2) transcribe the Loom (faster-whisper, already in your reel-edit pipeline) into 1 LinkedIn post + 1 Instagram carousel + 1 warm-list email; (3) turn the scorecard rubric into 1 reusable infographic. Same eye, same hour, multiplied. AI does the transcribe/draft/cut pass; you only approve and record your eye.

Split content into two streams; only batch the founder one. Stream A = founder/authority content (talking-head reels, the LinkedIn/Meta scripts, evergreen pillars: the conversion-leak wedge, the $10k-agency story, your own locked clinic numbers, anonymised teardown lessons). Fully batchable. Stream B = client-shoot footage (the "shot not stock" cinematic work filmed inside real clinics). That is fulfilment, scheduled around each clinic, and it cannot be batched on your cadence, but it throws off anonymised B-roll and result-stories that feed Stream A.

Compliance is a feature, and it caps content to a trust engine, not a growth engine. Keep every repurposed piece AHPRA-safe and recognition-first: no patient testimonials, no restricted before/afters, never critique a named clinic anywhere in the funnel, proof stays your own locked numbers. Note: the lead magnet is B2B (aimed at owners), so it sits mostly outside AHPRA's patient-advertising scope. The binding limit is content substance (what you can show), not the CTA, so CTA freely to /scorecard.

Confidence flag: repurposing is pure upside on OUTPUT (near-zero marginal time), so do it. But the MAGNITUDE of the content/authority payoff stays low-confidence (0% baseline, unproven). Justify the engine on cheap efficiency, not on banked revenue, until authority visibly moves off 0% over months.

3. Conversion

This is where most of Video 2's pricing lesson lands.

Make price-per-client the primary growth lever, not client count. Capacity-capped at 7 to 10, he cannot grow on volume, so once the book is full every extra dollar must come from price. His own money model proves it: 8 retained x $2,500/mo is a knife-edge with no churn buffer; the stated fix is to raise the fee into a smaller premium book. Cap the book at 6 to 7, target $3,000 to $3,500/mo. This is Hormozi's "raise price, stay capped," correctly shaped for a solo.

Turn the 20-min call into a price-discovery instrument, not a fixed-price recital. Before quoting, get the clinic's monthly revenue and first-treatment value, then anchor the fee to a fraction of recovered revenue ("priced off what a saved patient is worth, not off my hours"). For a $100k+/mo clinic, the premium tier should be the default. Let the big clinics pull his price up. The call is already his close, which is exactly Hormozi's "sell on the phone, not self-checkout."

Sequence the raise to proof, not to courage. With n=1 cleared client he can't command the top of the range on proof alone, so holding near current pricing while proof is thin is rational, but as a deliberate proof-buying trade (the $250-credited paid teardown, the refundable deposit), not a guilt discount. Write the step-ladder now: each new documented cleared client = a planned price step on the NEXT prospect, so the raise is automatic, not a guilt-gated decision in the moment.

Pre-empt the pricing-guilt under-quote. His fair/generous instinct will bias him to under-quote exactly when a value anchor is in front of him. Force a one-line ROI anchor into the script he must say before any number ("one saved patient pays for the month; the deposit is refundable if I miss"). The guilt fix is the free teardown serving the can't-afford tier, NOT cheaper service.

Pre-commit the no-discount rule now, before a copycat appears. Add one line to the offer doctrine: "If a cheaper agency shows up in my ICP, I do not lower the fee and I do not strip the offer. I deepen the guarantee and the proof." This is the preventive version of Hormozi's $50M panic-discount mistake, installed before panic is possible. Treat the current number as a FLOOR to test upward from, never a number to negotiate down from.

Split competitors and respond differently:

vs ClinicBoost / $99-static shops (lower-production statics, ~$1,497 to $1,997/mo): hold premium, let them have the low-production lane. Hormozi's "let them eat the unprofitable model" applies here.
vs OneConversions (a viable SOLO AU founder-led mirror of his exact model, same 3X guarantee): do NOT dismiss as a self-defeating copycat. Out-differentiate with the real named numbers, the operator-who-actually-ran-a-clinic wedge, and shot-not-stock filmed assets. The blanket "ignore the copycat" is wrong for OneConversions specifically.

4. Fulfilment

The guarantee IS the customer-focus moat in contractual form. Protect it, don't inflate it. His downside is his TIME, not cash (client funds the Meta spend, deposit is refundable). A cheaper copycat can't match "you don't pay my fee until I've produced confirmed deposit-paid bookings" without taking the same time-risk, and lower-production shops can't carry it because worse creative produces worse results. His shot-not-stock craft is WHY the guarantee is safe.

Do NOT raise the guarantee multiple to look bolder. Keep 3X and over-deliver. A higher threshold doesn't increase buyer risk (refundable) but it does raise the bar he must clear and his own time-risk. Pricing power comes from the fee and selectivity, not a scarier promise.

Productise delivery to break the hours. Turn each install into transferable SOPs + a booking-flow clone + a templated tracker so per-install time drops (the 80hr-to-35hr curve). This is return-on-hours applied to the delivery leg: make the highest-return format (the retainer) cheaper to deliver.

Protect the install from being mistaken for the business. Frame the $5k install as one-off acquisition cash that funds and proves the move, never the room he lives in. Measure success by retainer conversion + retention, not install volume. One more retained client is higher return-on-hours than one more install.

5. Retention

Deepen PM Aesthetics and any referrer as the explicit moat task. This connects Video 1 to Video 2. With only one clean proof client, that relationship is load-bearing in a way it never was for Hormozi: if it churns or its numbers slip, the front-end proof story takes a real hit. Defend by depth, not price. Treat the shot-not-stock footage as a switching cost: a copycat can poach a testimonial but can't re-shoot his actual clinic relationships. (The "they poached my evangelists" risk in Video 2 is real; the defense is relationship depth.)

The month-to-month, no-lock-in fee is itself a retention design. It forces him to keep earning it. The fee buys NEW work each month (fresh creative + the machine continuing to produce), not "access," which is what makes it actually retain. The conversion dashboard (enquiry → contacted → booked → showed → converted → rebooked) lets the owner see the machine working, which is retention proof in their own numbers.

Watch the referrer-stickiness inversion. Hormozi says chunk up because the referring layer is sticky and end-clients churn. For Mitchell the opposite risk exists: a consultant who refers him can decide to "handle your marketing too" and become a competitor, or resent that he out-delivers them. The referrer is not reliably stickier than a happy direct client, so don't over-invest in referrers at the expense of direct-client depth.

Anti-whale rule as retention hygiene: no single client above 30 to 40% of revenue. With a 6 to 8 client book and realistic churn, concentration is existential, not a rounding error.

6. Ascension

Build the higher-return format above the retainer: the Year-2 certification / license / benchmark IP layer ("The Booked Standard"). Certification from $3,500/clinic team + method license from $1,500/mo + per-install royalty. This is the only thing that grows net past his 25 to 35 hrs/week ceiling (build-once, collect-indefinitely). It is exactly Hormozi's "return on capital, spin the wheel faster," correctly placed as a year-2 destination, not a launch.

Start manufacturing its two missing assets now, inside delivery. It is gated on: (a) Suzie's written permission to commercialise the named consult method; (b) one clean OWNED before/after consult-conversion lift on a paying client (he has done this zero times; PM Aesthetics proves acquisition, not his consult lift); (c) ~10 to 15 documented installs for a real AU benchmark. Begin producing his own measured lift and the body of public proof now. Don't launch the product now.

Never present borrowed numbers as his. Suzie's illustrative figures are hers and must never be sold as his. The laser clinic's $180 to $320 is first-transaction value, not lifetime, so don't publish an LTV floor until a defensible AU figure is measured from real client data. The whole ascension rests on the proof-discipline moat; one fabricated benchmark collapses it.

The membership / Clinic Owners' Room is a destination, not a near-term move. Validate by pre-selling ~10 founding seats before building anything.

Candidate (gated, from Video 3): productise the AHPRA-safe content + diagnostic method for clients. The same compliant-content + converting-diagnostic playbook you run for yourself is sellable to your clinic clients, who face the identical AHPRA constraint on their own patient marketing. It fits the Booked Standard IP layer. But it is gated behind the same discipline (Suzie's permission where the consult method is involved, your own measured proof, ~10 to 15 documented installs) AND behind your own content engine visibly moving authority off 0%. Selling a content method you have not yet proven on yourself would be selling ahead of your proof. Log it; do not pursue yet.


Production system (the weekly cadence)

From Video 3's "batch by mode" lever, sized to a solo ADHD operator at ~25 to 35 focused hrs/week. Stop making-and-posting end-to-end (the most inefficient way to produce anything); chunk by mode.

Plan (Mon AM, half-day): mine that week's teardowns + 1 to 2 trending B2B formats into 8 to 12 one-line hook scripts. Each teardown is both a planning input and a content asset, so planning is nearly free.
Film (one 2 to 3 hr block, e.g. Wed): shoot 6 to 10 talking-head founder reels back to back, one setup, one outfit. The only founder shoot time in the week.
Edit: run raw clips through your local pipeline at reel-edit/ (yt-dlp + faster-whisper + ffmpeg/ASS captions in your Submagic style). Review, do not edit from scratch.
Repurpose (AI-assisted): per teardown, auto-generate the micro-cuts + LinkedIn post + Instagram carousel + warm-list email + rubric infographic. Approve only.
Publish on a drip: release ~1 piece per business day, so output looks daily while production is one morning and one afternoon a week.

Rule baked in: this is a lean engine to feed Nurturing, not a mandate to chase awareness. Client shoots stay on each clinic's calendar (fulfilment). One batch a week beats a heroic 21-platform blast, and the freed energy goes into the 8 to 10 hand-delivered warm teardowns that actually measure Gate 2.


Stress test: where Hormozi does NOT transfer

The honest output of the stress test. These are places a Hormozi lesson is wrong or differently-shaped for a solo sub-$300k AU op, because his examples are $1M to $100M+ businesses.

1.COI machinery is over-engineering. His farming/hunting cadence, events, and cost-to-activate math are built for a firehose (147 clients, wants volume). Mitchell needs ~8 ever. Borrow the insight (court 2 to 3 referrers), discard the machine.
2."Kill the high-drag activity" breaks on the teardown. The tour-date analogy assumes the dragging activity doubles as nothing. Mitchell's teardown doubles as his content AND authority engine. Applied literally, the lesson would amputate his lead and authority engine together.
3."Let the cheap copycat eat the unprofitable low end" is wrong for OneConversions. That holds against ClinicBoost / static shops, but OneConversions is a viable solo mirror of his exact model, not an unprofitable copycat that eats itself. He must actually out-differentiate it.
4."Price drops change churn zero" assumes a buyer who's stopped feeling the money. A WA clinic owner choosing between ~$2,500/mo and $1,497/mo still feels ~$900/mo. The correct reason not to discount is "it signals you're the same commodity as the static shops," not "the buyer won't notice."
5."Raise until willingness-to-pay stops" is a high-volume discovery method he can't run. It needs hundreds of calls to find the ceiling. He has a handful a month and Gate 2 unrun. Anchor price on ROI math and clinic size, not iterative market testing.
6."Focus on the customer and you'll never go out of business" is survivorship-flavoured at his stage. Hormozi could absorb a $6M mistake and still exist. With one clean proof client, concentration risk makes "focus on the customer" existential, which raises the moat stakes rather than lowering them.
7."Serve the poor for free" does not license more free diagnostic labour. His free teardown costs 60 to 90 min of irreplaceable founder time each; it's capacity-bleeding, not infinitely scalable like a YouTube video. The only thing that scales for free is the content byproduct, not teardown volume.
8.Referrer stickiness partly inverts. A referring consultant can become a competitor or resent being out-delivered. The referrer is not reliably stickier than a happy direct client.
9.The guarantee inverts "raise until WTP stops." A higher refundable deposit doesn't increase buyer risk, so it won't reduce conversion, but it does raise his own delivery threshold and time-risk. The binding constraint is his delivery risk and selectivity, not buyer WTP.
10.(Video 3) "Name the enemy = irrelevance, just make more content" is the wrong enemy. The mushroom store is high-volume consumer e-commerce where reach IS the lever. He is capacity-capped and needs ~8 right-fit owners. His enemy is low trust with those 8 plus an unmeasured Gate 2, not obscurity. Mass reach is wasted impressions against a list he could almost name by hand.
11.(Video 3) The "21x across 7 platforms" math is a consumer play. Delete the ~5 consumer platforms his buyers aren't on and 21x collapses to maybe 3 to 4x of useful reach. Adopt the repurposing mechanic, reject the cross-platform-maximisation goal.
12.(Video 3) The free gated downloadable / tripwire does not transfer. His own swipe-teardown doctrine rejects info-product machinery, and a gated PDF would clash with the anti-hype wedge and collide with the self-serve scorecard. Keep the "one hero asset, endless hooks" structure, but the hero asset is the existing teardown, shipped as open content, never a gated ladder.
13.(Video 3) The "legally-gray CTA workaround" does not transfer, because his platform risk is near zero. The mushroom store fears flags and avoids CTAs. His constraint is AHPRA, which limits content substance (no testimonials, restricted before/afters), not CTAs. He can CTA freely to /scorecard. The compliance edge is his wedge, not a handicap.

Tensions resolved

Teardown-as-drag vs teardown-as-content (the headline contradiction). Verdict: do NOT kill or shrink it. SPLIT its two jobs. Job 1 (lead conversion) is measured by Gate 2. Job 2 (content/authority) means every teardown is published regardless of whether it closes, charging its hours partly to marketing. A teardown that closes nothing can still pay for itself as content. The tour-date analogy fails because tour dates doubled as nothing.
Drag doesn't exist yet at his volume. Hormozi cut 140 dates because the drag was real at scale. Mitchell runs a handful a month by design. The trigger condition for the "kill" lesson isn't met. Keep the teardown; revisit only if volume genuinely creates drag.
What to do if Gate 2 comes back weak. The correct response is NOT "kill," it's the pricing lesson his own STRATEGY.md already encodes: "if close is weak, raise price and shrink the book, never add clients." Acting on the unmeasured fear before the data exists would itself be the $50M panic move.
Pricing guilt vs raise-the-price. Resolved via Hormozi's own free-tier reframe: the free teardown already fully serves the owner who can't afford him, so he owes nobody a discount on the paid offer. Keep this as a backstage permission slip for his own head only; never let "serve-the-able-at-the-real-price" segmenting language leak into client copy.
(Video 3) Cross-platform volume vs master one channel. Separate cross-posting from channel-mastery. Cross-posting the same finished short to a couple of extra surfaces is cheap and automatable, fine to do passively. What he defers is investing to master a new content type or channel (podcast, long-form, live). Lay the LinkedIn brick first, cross-post for free, add the next format only once the first is on autopilot.
(Video 3) Volume vs targeted relevance. Volume is not the bottleneck; targeting (the ~8 right owners) + conversion (Gate 2) are. Adopt the repurposing engine for OUTPUT efficiency only, aimed at the narrow B2B pond (LinkedIn, Instagram-as-peer, owner Facebook groups, email), never sprayed at consumer platforms for raw views.
(Video 3) "Make more content to scale" vs "price is the only growth lever." No conflict once content is filed as a trust and relevance engine, not a growth engine. More content thickens Nurturing and warms the ~8 owners; growth still comes only from price into a smaller premium book.

Sources

Video 1: "$625K/Year Working 90 Minutes a Week, How to Scale to $3M" (MoreMozi / Alex Hormozi). https://www.youtube.com/watch?v=xaRTwfdKero
Video 2: "He's Copying the Business Model That Makes No Money" (MoreMozi / Alex Hormozi). https://www.youtube.com/watch?v=pHBSA4udH8Q
Video 3: "How to Scale a Business in a Legally Gray Industry" (MoreMozi / Alex Hormozi). https://www.youtube.com/watch?v=rklE0lzFOt4

Method note: all three transcripts were pulled in full and analysed; independent adversarial agents stress-tested the insights against the real business (reading his own repo files, with AU-market facts web-verified where load-bearing), then synthesis passes resolved the contradictions and filed each surviving insight into the journey stage above. Videos 1 and 2 ran as one pass (five agents); Video 3 as a second pass (three agents + an integration step) that mainly upgraded the Lead gen and Nurturing buckets.

Foreplay Intel SOP

Ad intelligence workflow + MCP recipes

aesthetic-ops-leadgen/foreplay-market-intel-sop.md

Foreplay market-intelligence SOP (for teardowns + prospecting)

How to add a real, evidence-backed "what's working in your market + the 3 gaps you can own" layer to any clinic teardown, and to find/qualify prospects. This is the Foreplay wiring for the teardown blueprint. Worked example: clients/inglewood-skin-studio/market-intelligence-2026-06.md.

Two ways to run it:

Now, via the Foreplay MCP connection (authenticated under mitchell@mitchellkwan.com). No setup. This is the default, every recipe below is proven working as of 2026-06-21.
Later, headless/scheduled, via the CLI ad-intel/pull.mjs. Needs FOREPLAY_API_KEY in ad-intel/.env (get it from the Foreplay dashboard → API; a one-time Mitchell step). Only needed for cron/automation, the MCP does everything interactively.

Credit budget: 10,000/month, 1 credit per ad/brand returned (resets ~21st). A full teardown pull ≈ 30-80 credits. Effectively unlimited at this scale. get_user_usage is free, check it before a big batch.


The core workflow: brand-first, not keyword-first

The single most important rule. Broad keyword Discovery (e.g. "botox", "skin clinic") is polluted with global DTC/dropshipping ads (US skincare funnels, hair "botox", etc.), near-useless for local clinic intel. Always resolve the specific competitor brand, then pull *their* ads.

1.Resolve competitors → brand IDs.
By website (most reliable): get_brands_by_domain with e.g. australianskinclinics.com.au.
By name: search_discovery_brands with the clinic name.
Keep the id (Foreplay brand id) and ad_library_id (the Meta page id).
2.Pull their winning ads: get_ads_by_brand_ids with live=true, order=longest_running, limit=8-15. Long-running live ads = proven winners (a brand doesn't keep paying to run a loser).
Empty result? Re-call with collect=true (best-effort live fetch from Meta, ~30s), only as a fallback, not by default.
3.Read the creative: for ads with blank copy (DCO, see gotchas), open the foreplay_url to see the actual creative. For video/image ads the description/headline carry the real copy.
4.Extract the pattern: offer type, hook, format (DCO / UGC / founder video), CTA, how long each has run. Longest runners first.
5.Write the two outputs: (a) the "what's working in your market" pattern summary, (b) the 3 gaps the clinic can own, mapped to AHPRA-clean, defensible angles.

Prospecting use (Lane A2)

Same tools, different goal: a clinic that is actively running ads has budget + intent = a warm teardown target. Resolve a list of local clinics by domain/name, check who has live ads via get_ads_by_brand_ids, and shortlist the active spenders into opportunity-engine/OPPORTUNITIES.md. Skip the ones running nothing (no budget signal).

Tracking use (Spyder, the weekly engine)

Add the resolved competitors to the Spyder watchlist (the watchlist starts empty). Then get_spyder_brands (flat 1 credit) + get_spyder_brand_ads surfaces new launches/pauses weekly, the recurring competitive brief, and the basis for the "Winning Ads Weekly Brief" productized offer (Lane C3).


Gotchas found in live testing (2026-06-21)

Keyword Discovery = global DTC noise. Use brand-first (above). Reserve search_discovery_ads keyword search for *creative/format inspiration* across the world, not local competitive intel.
order=longest_running returned 0 on search_discovery_ads (with a query) but works fine on get_ads_by_brand_ids. If a sort combo comes back empty, fall back to order=newest and sort by running_duration.days client-side.
DCO ads have blank description/headline. The static field is empty because the creative is assembled dynamically, open the foreplay_url to see it. Chains lean heavily on DCO.
get_brands_analytics was erroring (406 with brand id, 500 with page id) on 2026-06-21. Don't depend on it; use ad count + running-duration as the creative-velocity/scale proxy instead. Re-test later.
Cache can be partial (e.g. SILK returned only 2 live ads). Use collect=true to refresh, and note in the deliverable that the set is a snapshot.

Hard guardrails (every client-facing output)

Estimates, labelled. Foreplay does not expose true spend. Never state a competitor's spend as fact; say "running ~N days live" / "≥N live ads" as the proxy, labelled as an estimate.
AHPRA-clean. Model competitor *structure* (hook, format, offer shape), never copy banned results/efficacy claims into our clients' ads. Keep all client copy to the rules in inglewood-launch/meta-ad-copy.md.
Anonymise for public content. Private prospect/client delivery can name competitors (standard competitive analysis). Any teardown turned into a public reel/post must be anonymised or composite (naming a clinic publicly is permission-risky / AHPRA-adjacent, teardown Gate 3).
Don't fabricate to fill gaps. If the data is thin (partial cache, no local independents resolved), say so. Thin-but-honest beats impressive-but-made-up.

Proven MCP recipe (copy/paste intent)

get_user_usage                                  # free, check credits
get_brands_by_domain  "<competitor>.com.au"     # → brand id + page id
get_ads_by_brand_ids  [id]  live=true  order=longest_running  limit=12
   fields: brand_name, headline, description, cta_type, display_format,
           running_duration, started_running, link_url, foreplay_url
# repeat per competitor; longest live runners = the winners to model

CLI automation (optional, needs the key)

ad-intel/pull.mjs already has discover and competitor (by domain) commands. To make it the headless engine, once the key is seeded: add a brand "<name>" command (resolve via search → pull ads), make the longest-running sort client-side (per the gotcha), and have it write the swipe markdown straight into the client folder. Until then, the MCP recipe above is the source of truth and needs no key.

Knowledge & Learnings

Real data, competitor analysis, and voice-of-customer research.

3 docs

PM Aesthetics Ad Analysis

DCO campaign: 1 validated winner, 6 patterns

learnings/paid-ads/pm-aesthetics/ANALYSIS.md

PM Aesthetics paid-ads learnings (derived analysis)

This is interpretation, derived from the raw exports in raw-exports/ (analysed 2026-06-21).
The raw CSVs are the source of truth and are never edited. If this analysis and the raw data
ever disagree, the raw data wins.

The two campaigns

Campaign 1 — $99 intro (VISIA scan + Diamond Polar RF skin tightening + LED + plan; Manning WA; reporting from 2026-03-26). ~48 deposits, blended CPP ~$52. Dynamic creative.
Campaign 2 — $199 Aerolase (VISIA + Aerolase Neo Elite laser + LED + plan; 90 min; reporting from 2026-05-29). ~19 deposits, CPP $47-113. Dynamic creative.
Optimisation event = the deposit Purchase. "Bookings"/"Purchases" in the data = deposits paid, not completed/happy clients.

The one genuinely validated winner

Campaign 1's "best-kept secret" PRIMARY TEXT (*"South Perth's best-kept skincare secret... the Golden Window for school-run mums / work-from-home women... $99 Skin Diagnostic & Treatment ($250 value)"*): ~$34.81 cost per deposit across 37 deposits, winning on both volume AND efficiency against real competing delivery. This is the only HIGH-confidence result in the dataset.

Repeatable patterns (appeared across BOTH campaigns)

1."Best-kept secret" + hyperlocal + insider framing won the primary text in both campaigns. Single most repeatable winner.
2.Assess-first / "find out what your skin actually needs" / "no one has actually looked at it properly." Cheap in C1, central to C2's winning text.
3.Lifestyle / daytime-convenience ("School Hours / Golden Window") beat price-led headlines.
4.Concrete specifics beat generic discount: C2 description *"1 of only 4 WA clinics. $50 deposit. 90 minutes."* beat *"Save $151 - Limited time only."*
5.No-pressure / no-upsell / understand-before-you-spend reassurance ran through the winners.
6.Lead with value/experience, not the dollar figure. The most price-first, feature-bare variants were the worst performers / suppressed.

Important caveats (do not over-trust)

Meta dynamic creative does NOT split-test fairly. It concentrates delivery on the combo it predicts will win, so winners get most/all impressions AND deposits while rivals get starved to ~0. In Campaign 2, every "winner" shows 19/19 deposits and every rival shows literal 0, meaning the rivals were never given a fair test, not that they "lost." Treat C2 results and any single-variant winner as DIRECTIONAL, not proven.
Tiny samples / no significance. Counts of 2, 3, 5, 14, 16, 18 deposits are inside the noise. 16 vs 15 is not a real difference. CPP swung $34-$151 on single-digit conversions.
The two campaigns are not comparable (different price, hero treatment, duration, season). The $99 campaign is the right analogue for a $99 offer, not the $199.
This is deposit/CPP data, almost no click data. There is NO per-asset CTR in either campaign. The only CTR figure anywhere is one aggregate range for Campaign 2 (link CTR ~2.8-3.5%, CPM ~$38). So no specific headline/text/description can be called a click-through winner from this data. If CTR is the KPI, pull the per-ad link-CTR / outbound-CTR / cost-per-link-click columns from Ads Manager.
How to actually learn next time: if you want a fair test, split the angles you care about into SEPARATE ad sets (or a holdout) so each gets forced, comparable delivery, rather than letting dynamic creative starve the rivals.

Verbatim winning copy (for the swipe file)

C1 winning primary text ($34.81 CPP, the validated winner):

South Perth's best-kept skincare secret... Most people are stuck in the office at 11 am. But if you are a school-run mum or work from home, you have the "Golden Window." ... you get access to this $99 Skin Diagnostic & Treatment Session ($250 value) - giving you an instant glow while showing you exactly what your skin actually needs before you spend money in the wrong place. [value stack] Ready to reset? Click 'Get Offer' now to claim.

C1 top headlines: "The School Hours Skin Session" / "The School Hours Special" (most volume) · "Before You Book Another Treatment, Find Out What Your Skin Actually Needs" (cheap, ~$47.50 blended).

C2 winning headline: "Clearer Skin After One Session" (won all delivery + all 19 deposits, but see caveats; also a results claim).

C2 winning text: "Perth's best-kept laser secret... The problem isn't your skin. It's that no one has actually looked at it properly." + value stack + "1 of only 4 clinics in WA with this laser."

C2 winning description: "1 of only 4 WA clinics. $50 deposit. 90 minutes."

How this was applied to Inglewood

The transferable, AHPRA-clean angles (best-kept secret, assess-first, daytime convenience, concrete specifics, no-upsell) were adapted to Inglewood's $99 Skin Reset in ../../../inglewood-launch/meta-ad-copy.md. Critically, PM's results-claim winners ("Clearer Skin After One Session", "Visible Results") and its device language (VISIA scan, RF, Aerolase laser, "1 of 4 WA clinics") were excluded, because Inglewood has no scanner and no laser (it's a Circadia facial + LED + clinician visual assessment) and is AHPRA-bound (no efficacy/results claims). See that file's "Do NOT use" section.

Agency Competitor Intel

22 agencies, 9-section strategic analysis

learnings/competitor-intel/aesthetic-demand-agencies/ANALYSIS.md

Competitive Intelligence: Aesthetic-Clinic "Patient Demand" Agencies

*Built from a Foreplay sweep of 22 agency profiles. Honesty caveat up front: Foreplay returned data:null for the actual ad creative on every single one of these. We have zero verbatim ad copy. Everything here is from landing pages, agency sites, handles, and run-duration. Where a profile was pure inference (Instagram-only funnel, no page), I say so. Treat all "hook examples" as landing-page headlines, not confirmed ad hooks.*


1. Executive summary: the 5 things that matter most

1.Your two best angles are already commoditized in this space. "You don't have a lead problem, you have a no-show problem" (deposit-direct) and "an operator who actually gets clinics" are not unique. Slight Edge Sales sells "appointments WITH deposits," Patient Engine and Aesthetic Acquisition sell "pre-paid patients," Nurture Growth sells "clients who pay before arrival." Multiple agencies lead with "WITHOUT calling leads." This doesn't kill your positioning, but it means the deposit/no-chasing message alone won't separate you. What separates you is harder to copy (section 8).
2.The dominant structure is an apply-to-qualify gate that doubles as the offer. At least 10 of the 22 run a multi-step application form that asks monthly-revenue bracket, ad budget, and intent before any call. Servedia even requires a $2k/month ad-budget commitment up front. This is the single most replicable, highest-leverage thing you can steal, and it directly fixes your tyre-kicker problem as a solo operator.
3."X patients in Y days, or you don't pay" is the category-standard guarantee. Go Proactive ("50 in 60 or you don't pay"), Slight Edge ("30 appointments in 30 days or you don't pay"), Traciety, Servedia, Nurture Growth all run pay-on-results. A few (Aesthetic Acquisition, Glow Sweden) deliberately avoid a hard guarantee and substitute proof and scarcity instead. You need a clear stance here, because silence reads as weaker than the field.
4.Territory exclusivity ("check if your area is available") is everywhere and it's a perfect fit for you. Scale77, Pinpoint Scaling, Clinic Marketing Company, Purplefire, and Glow (max 30 clinics / about 2 per city) all use one-client-per-area scarcity. You have a genuine 7-10 client cap, so for you this scarcity is real, not manufactured. This is the rare tactic where you can out-honest the field.
5.The geo data is US-heavy and thin on Australia. Of 22, only Alex Dickson is confirmed Australian (.com.au, +61), and his landing page is actually about renovation businesses, not aesthetics. One is Swedish (Glow). The rest are US/North America, multi-geo, or unknown. Foreplay's discovery index has no country filter and skews US, so this sweep does NOT tell you who is actually advertising to AU clinic owners. That answer needs a Meta Ad Library AU/UK/NZ sweep, which is the clear next step.

2. The landscape: tier the players

Tier 1: Durable / proven (ads running long enough to be near-certain winners). Run-length is the cheapest winner-signal we have, since we couldn't pull the creative.

Rebecca Patterson (Clinic Marketing Success) at 304 days. Longest-running. Facebook-link funnel, founder-branded, offer not retrievable. The single one most worth pulling up directly in Foreplay's UI.
Tappt Agency at 260 days. Instagram funnel, nothing else retrievable. Durability is the only hard signal; positioning and offer are unknown.
Avir Digital at 121 days. Instagram funnel, generic name, nothing retrievable. Past the roughly-120-day "this is a control" threshold, but offer unknown.
Mr Med Spa at 40 days. Instagram funnel, personality/mascot brand inferred from the name only, nothing retrievable.

Tier 2: Serious and fully readable (real landing pages, clear offer + guarantee). These are the ones to actually study for copy.

Go Proactive Marketing (US/CA, stated on page): "50 in 60" named-number offer, "we don't send leads, we send cash-paying patients," 1,000+ practices, pay-on-results.
Servedia (European/Swiss-run, selling into US): "affluent patients on demand," money-back guarantee, $2k/mo ad-budget gate, apply funnel.
Slight Edge Sales (US, inferred from LLC): "30 booked appointments with deposits in 30 days or you don't pay," pain-led quiz funnel. The most directly relevant to your model.
Aesthetic Acquisition Co (US, stated on page): "15-40 pre-paid patients, $20k-$50k in 90 days," 98% success-rate proof, soft-guarantee trick.
Traciety (US/CA, stated in copy): "20-40 new high-value appointments in 30 days," results-or-we-won't-work-with-you.
Patient Profit / Pinpoint Scaling (US, inferred): "5-15 financially qualified patients/week without calling leads," $60k+ in 90 days as a claimed average, free market-research report.
Patient Engine (US, inferred): "20-40 pre-paid clients, 85%+ show rate," anti-agency reframe.
Derma Booked (US, inferred): "15-20 high-ticket packages without calling leads," explicit exclusion list.
Glow Marketing (Sweden, confirmed): "growth without discounting," max 30 clinics, heavy SEK case-study proof instead of a guarantee.
Nurture Growth & Consulting (UK, confirmed): "30+ prepaid clients in 90 days," "Clinic Concierge System," guaranteed-ROI-or-free.
Clinic Marketing Company (UK, confirmed): "15-20 patients/mo, £20k in 90 days," "Clinic Concierge System," one-clinic-per-area. (Shares the exact "Clinic Concierge System" name with Nurture Growth, so this is a shared UK swipe template, not original to either.)
Social Adjustment Marketing (US?, region-agnostic page): "predictable patient growth," pay-per-SHOW, niched to body contouring/skin tightening. Note: the offer/guarantee here is from the lander, not the ad.
Scale77 (geo unknown): "30-50 bookings/mo," territory-availability CTA. Only the hero and CTA rendered; testimonials/contact/guarantee did not load, so treat the rest as unconfirmed.
Purplefire (multi-geo US/CA/AU/UK): "we fill your calendar, start to finish," pay-on-results, one-client-per-area exclusivity. Med-spa funnel page itself didn't render; offer/guarantee are from the main site.

Tier 3: Confirmed Australian, but off-niche.

Alex Dickson (AU: .com.au, +61 0483 940 257, Wollongong/Gold Coast/Brisbane/Sydney/Shell Cove NSW): "I'll bet my life this works or you pay $0" guarantee with a negative qualifier. But his landing page targets renovation/trades, not aesthetics. Either multi-niche or a reused template. Study the guarantee structure, not the niche fit.

Tier 4: Inferred-only / not readable (handle or run-length only, no page or copy).

premium_medspa_bookings (US?, from spelling only): handle-as-promise, Instagram post, 21 days. Offer inferred, not confirmed.
Generate Med Spa (geo unknown): Instagram funnel, 18 days, nothing retrievable.
Beauty Grow (geo unknown): client-side-rendered SPA, invisible to fetch, 3 days. (Operational note, not a tactic: their empty HTML shell hides them from scrapers but also weakens SEO/share previews.)

3. Positioning patterns: the messages EVERYONE runs

Blunt version: most of what feels like "your" angle is table stakes here. (Reminder: these are landing-page messages, since no ad copy was retrievable.)

"You don't have a lead problem." The whole category has pivoted off the word "leads." Go Proactive: "we don't send leads, we send cash-paying patients." Patient Engine's page trashes "cheap agencies, calling leads, learning paid ads." This reframe is everywhere. It's a good reframe. It is not a differentiator anymore.
The deposit / no-show fix. "Appointments WITH deposits" (Slight Edge), "pre-paid patients" (Aesthetic Acquisition, Patient Engine), "pay before arrival" (Nurture Growth), "85%+ show rate" (Patient Engine). This is your headline angle and it is shared by at least five agencies. It validates the model, but it doesn't make you stand out on the scroll.
"WITHOUT calling leads / no chasing." Derma Booked, Pinpoint Scaling, Clinic Marketing Company, and Nurture Growth all sell the removal of the owner's most-hated chore. Your "no lead-chasing" line lives here, in a crowd.
The operator / anti-agency reframe. Nurture Growth: "we're your clinic's private growth team, not a marketing agency." Patient Engine and Go Proactive both attack the agencies clinic owners are sick of. "Built by an operator who gets it" is a version of this same move. Many are doing the reframe; what they CAN'T fake is your actual operator history (section 8).
Pay-on-performance. So common it reads as expected, not generous (section 4).

What this means: deposit + operator + no-chasing + pay-on-performance is the baseline of the category, not your edge. You should still say all of it, because absence reads as a gap. But your wedge has to come from the things in section 8 that these agencies structurally cannot claim.


4. Offer & guarantee taxonomy

The "X patients/appointments in Y days" promise (the category format):

AgencyThe numberWindow
Go Proactive50 cash-paying patientsevery 60 days
Slight Edge30 booked appointments with deposits30 days
Traciety20-40 high-value appointments30 days
Aesthetic Acquisition15-40 pre-paid patients ($20k-$50k)monthly / 90 days
Scale7730-50 bookingsper month
Social Adjustment15-50 patientsper month
Derma Booked15-20 high-ticket packagesper month
Patient Engine20-40 pre-paid clientsmonthly
Pinpoint Scaling5-15 financially-qualified patients ($60k+)weekly / 90 days
Nurture Growth30+ prepaid clients90 days
Clinic Marketing Company15-20 patients (£20k+)monthly / 90 days

The smarter ones anchor to money, not patient count (Aesthetic Acquisition's "$20k-$50k in 90 days," Pinpoint's "$60k+ in 90 days" framed as an average, Clinic Marketing Co's "£20k in 90 days"), because revenue is the metric the owner actually cares about.

Guarantee patterns:

Hard pay-on-results ("or you don't pay"): Go Proactive, Slight Edge, Traciety, Servedia (money-back), Nurture Growth (continue free until satisfied), Purplefire ("if we don't deliver results, you don't pay"). This is the category default.
Pay-per-SHOW (one notch stronger than pay-per-lead): Social Adjustment Marketing, "you only pay when a patient actually shows up." Sharper risk reversal because it's tied to a real body in the chair. (From the lander.)
Soft / dangled guarantee (no committed terms): Aesthetic Acquisition's "IF we guaranteed you 15-40 prepaid clients, what would you invest?" extracts willingness-to-pay inside the application instead of promising a refund. Clever, slightly manipulative, probably not your voice.
Proof + scarcity INSTEAD of a guarantee: Glow Sweden substitutes its claimed "1,150,000 kr / 168 new patients for Sara" case number plus "max 30 clinics, 2 per city" for any written guarantee. De-risk via evidence and exclusivity, not a refund.
Conviction guarantee + negative qualifier: Alex Dickson, "I'll bet my life this works or you pay $0" AND "if I don't believe we can help, I'll never onboard you." The negative qualifier flips a guarantee from desperate to selective. This is the most useful guarantee idea in the whole set for someone with a hard client cap.
None stated (in retrieved content): Derma Booked, Patient Engine, Pinpoint Scaling, Scale77, Clinic Marketing Company. Several strong players run no visible guarantee and lean on specificity and scarcity instead, which is permission for you to do the same if a hard guarantee scares you on margin.

Lead-magnet / funnel-entry patterns:

Free "market research report" / "area availability report" as a soft second CTA: Pinpoint Scaling, Clinic Marketing Company. Captures owners not ready to apply.
Free strategy/audit call priced as a $1,500 value: Alex Dickson anchors the giveaway.
Quiz / pain-segmentation: Slight Edge asks "biggest frustration?" (no-shows / price-shoppers / revenue stuck / don't know what's working) to self-segment before the call.

5. Creative & funnel patterns

On creative: we genuinely don't know. Every ad object returned null. The only creative signal is format-by-funnel-destination: the Instagram-funnel agencies (Mr Med Spa, Tappt, Avir, premium_medspa_bookings, Generate Med Spa) are almost certainly running short hook videos or single-image direct-response posts, but that's a platform inference, not observed. The landing-page agencies are clearly running ads that point to long-form pages.

On funnels, which we CAN see, three structures dominate:

1.Apply-to-qualify multi-step form (the most common, at least 10 of 22). Asks monthly-revenue bracket, ad budget, treatments, tenure, intent ("actively looking vs just browsing"), THEN contact details. Examples: Social Adjustment, Aesthetic Acquisition, Servedia, Derma Booked, Traciety, Pinpoint Scaling, Patient Engine, Clinic Marketing Company, Nurture Growth, Alex Dickson (plus Scale77's availability-gated version). The form IS the qualifier. Servedia's requires a $2k/mo budget commitment before any call.
2.Pain-led quiz (conversational, segments the prospect): Slight Edge, Q1 own a clinic, Q2 agency history (currently/past/never), Q3 biggest frustration. Softer feel, same qualifying job.
3.Direct call/demo booking: Go Proactive ("Book Your Demo," map out a game plan whether or not you enrol), Glow Sweden (free no-cost meeting, 3-step). Lower friction, but lets unqualified people onto your calendar, which is bad for a solo operator.

Funnel scarcity framing: the strongest swap is reframing the form CTA from "apply / book a call" to "check if your area is still available" (Scale77, Pinpoint, Clinic Marketing Company). Same form, but it manufactures loss-aversion at the click.

No VSLs (video sales letters) were confirmed in the set. The pattern, where we could read it, is short text-led pages plus a gated form, not long video.


6. Geo footprint: what was actually found

US / North America dominant. The bulk are US or US-targeted: Go Proactive and Traciety reference "US and Canada" in copy, Aesthetic Acquisition says "across the US," Slight Edge has a US "LLC." Several others are US-inferred from "medspa" spelling and form style but with NO hard currency/phone/city evidence (Social Adjustment, Patient Engine, Pinpoint, Derma Booked). Read those as "probably US, unconfirmed."
Europe: Servedia is European/Swiss-run (Swiss apostrophe number format $20'000) selling into the US. Purplefire is explicitly multi-geo (US/CA/AU/UK, names Sydney/Toronto/London).
Sweden: Glow Marketing (.se, SEK, Stockholm, also Norway/Denmark per search results) is a genuinely non-US, non-English-market find with a strong "growth without discounting" angle.
UK: Clinic Marketing Company (£20,000+, British English) and Nurture Growth ("clients across the UK") are confirmed UK, and they share the "Clinic Concierge System" template.
Australia: Only Alex Dickson is confirmed AU (.com.au, +61 0483 940 257, Wollongong/Gold Coast/Brisbane/Sydney/Shell Cove NSW), and his page is renovation/trades, not aesthetics.

The honest limitation: Foreplay's discovery index has no country filter and is US-heavy, so this sweep cannot answer "who is actually advertising to Australian clinic owners." The two longest-running, almost-certainly-profitable ads (Rebecca Patterson 304 days, Tappt 260 days) have unknown geo. The precise next step is a Meta Ad Library country sweep filtered to Australia, UK, and NZ for terms like "aesthetic clinic," "cosmetic clinic," "patients," "bookings." That, not Foreplay, tells you your real local competitive set.


7. Most compelling / steal-worthy (honest-claims safe for you)

Only tactics you can run truthfully, given you no longer treat patients and must stay AHPRA/TGA-clean:

1.The apply-to-qualify gate (highest priority). A short multi-step form that asks monthly-revenue bracket, current ad spend, and "are you actively looking or just researching" BEFORE anyone reaches you. For a solo operator with ADHD this is the biggest single win in the report: it kills tyre-kickers before they cost you a call. Borrow Servedia's budget-surfacing and Slight Edge's frustration-segmentation question.
2.Territory exclusivity as a real claim. "I only take a small number of clinics, and one per area." You have a genuine 7-10 client cap, so unlike everyone else manufacturing this, yours is true. Reframe your form CTA to "check if your area is still open." This is the one scarcity play where you can out-honest the field.
3.The negative qualifier (Alex Dickson). "If I don't think I can get you a clear result, I'll tell you and I won't take you on." It makes selectivity the message instead of desperation, and it's completely honest for you because you genuinely can't take everyone. Pairs naturally with the cap.
4.Anchor to revenue, not patient count, but only with numbers you can defend. "$X in 90 days" lands harder than "X patients." Do NOT borrow anyone's specific figures. Use your own real client results once you have them, or don't put a number on it yet. Fabricating a "$60k in 90 days" you can't back is exactly the honesty risk you avoid.
5.Proof-plus-scarcity instead of a hard guarantee (Glow Sweden's model) if a money-back guarantee scares your margin. One specific, real case number plus a real capacity cap. Honest, and it suits a solo operator who can't absorb refund risk across many clients.
6.The free "area / market snapshot" as a soft second CTA for owners not ready to apply. Only do this if you'll actually produce something real (a quick honest read of their local market), not a fake report.
7.Run-length as your free winners-filter. When you scan competitors in Foreplay, sort by days live and study the long-runners first (Rebecca Patterson 304, Tappt 260, Avir 121). Ads under roughly 30 days are noise. Pull Rebecca Patterson's ad up in Foreplay's UI directly, since the API wouldn't return it.

Skip these (not your voice / not honest for you): the "IF we guaranteed you X, what would you invest?" willingness-to-pay trick (manipulative), "I'll bet my life" hyperbole (reads as a salesy tell), and any borrowed revenue figure.


8. Where you're genuinely differentiated vs same-as-everyone

Be honest with yourself: these are NOT your moat (others in this set use them too):

"Operator who gets clinics." Nurture Growth, Patient Engine, and Go Proactive all run an operator/anti-agency reframe.
"Deposit / no-show fix." Shared by at least five agencies.
"No lead-chasing / without calling leads." Shared by four or more.
"Done-for-you" and "pay-on-performance." Category baseline.

What actually still separates you (hard for them to copy):

1.A real clinic you built and ran, in the past. These are marketers, and none of the readable profiles claims to have operated a clinic. They SAY "we get clinics"; you can say "I built one, ran it, and lived the no-show and AHPRA-compliance pain myself." That's a credential, not a claim. Keep it strictly past tense ("I built and ran a clinic"), never "I own a clinic."
2.The wind-down story and your values. You're not a hungry agency chasing a hundred logos. You cap at 7-10 clinics on purpose. That genuine scarcity makes the territory-exclusivity and negative-qualifier moves TRUE for you when they're theatre for everyone else.
3.AHPRA/TGA-compliant by default. Not one of these 22 profiles mentions ad-compliance, which fits because they're US/UK/Sweden/multi-geo and don't face AHPRA. For an Australian clinic owner who can be fined for non-compliant aesthetic advertising, "your ads stay legal by default" is a real, local, unowned wedge. On this evidence it's arguably your single strongest differentiator and nobody in this set is touching it.
4."Remove moving parts, not add them" / "sometimes don't run ads yet." The whole field promises to ADD a machine (more ads, more funnels, more CRM). Your willingness to say "you might not need ads yet, let's fix what's leaking first" is the opposite posture and reads as honest, not hungry. No one else here can say it without undercutting their own offer.

How to sharpen it: Lead the local AU ad with the two things that are simultaneously TRUE and UNOWNED in this set: (a) AHPRA-compliant-by-default, and (b) a real clinic operator who caps clients and will tell you if you don't need ads yet. Let deposit/no-chasing be the supporting proof of the model, not the headline, because as a headline it's a me-too. Your headline job is to say the thing the other 22 structurally cannot.


9. Recommendations (realistic for a solo ADHD operator)

Do now (low effort, high leverage):

1.Add an apply-to-qualify gate to your clinic-offer funnel. Revenue bracket + current ad spend + "actively looking vs researching" + one "biggest frustration" multiple-choice. This protects your calendar from tyre-kickers, which matters most for you specifically. One afternoon of work, biggest ROI in this report.
2.Reframe your form CTA to territory-availability ("see if your area is still open") and make the one-per-area cap explicit. It's true for you, so use it.
3.Rewrite your headline to lead with AHPRA-compliant-by-default + real-operator-who-caps-clients, and demote deposit/no-chasing to supporting proof. Honest-claims rule: past tense on the clinic, no borrowed numbers.
4.Decide your guarantee stance in one sentence. Given your margins as a solo operator, I'd lean toward the Glow Sweden model (one real case number plus your real client cap) over a money-back guarantee you'd have to honour across multiple clients. Don't stay silent, since silence reads weak.

Track these specific agencies in Foreplay Spyder (the readable, relevant, or durable ones, not the dead Instagram inference-only ones):

Rebecca Patterson / Clinic Marketing Success (304 days, longest-running, pull the ad up manually in the UI)
Tappt Agency (260 days)
Go Proactive Marketing (sharpest readable positioning, "50 in 60")
Slight Edge Sales (closest to your deposit model)
Servedia (the budget-gate apply funnel)
Nurture Growth + Clinic Marketing Company (the shared UK "Clinic Concierge System" template, worth watching as a pair)
Glow Marketing Sweden (proof-plus-scarcity-instead-of-guarantee, growth-without-discounting)
Alex Dickson (the only confirmed AU advertiser, even if off-niche, for the negative-qualifier guarantee)

The one bigger task (worth it): run a Meta Ad Library sweep filtered to Australia, UK, and NZ for "aesthetic clinic," "cosmetic clinic," "patient bookings," "clinic patients." Foreplay's US-skewed, no-country-filter index genuinely can't tell you who your real local competitors are. This is the gap in everything above. If you want, I can scope that as a separate run; it's a different tool path, not something this dataset can answer.

What I'd NOT do: don't try to match the field on volume promises with numbers you can't back, don't add a VSL or a heavy multi-step quiz beyond the simple gate, and don't build a fake "market research report." Lean systems only, real claims only.


*Honesty footer: no ad creative was retrievable for any of the 22 (Foreplay returned null on every ad object), so this is a landing-page-and-handle analysis, not a creative teardown. Several profiles are landing-page-only or inference-only, and I've flagged those inline. Run-durations come from the raw sweep. Geo for the two longest-runners (Rebecca Patterson, Tappt) is unknown. The Australian competitive picture is genuinely under-covered here and needs the Meta Ad Library AU sweep before you'd call it complete.*

Voice of Customer

2 discovery calls distilled: ICP, value-equation

learnings/voice-of-customer/ANALYSIS.md

Voice of customer: what these two discovery calls actually say

Distilled from two sources, grounded strictly in them (nothing added that they do not say):

Shally, Inglewood Skin Studio (client). 2026-05-11. raw
Carryl Wiggers, Skin ResQ (prospect/peer, 17-year boutique Perth clinic). 2026-05-25. raw

Recurring pains (in their words)

Consistency. Shally's number-one magic-wand wish: "busy and slow weeks, up and down." Wants consistent booked weeks instead of the swings.
"Russian roulette" with agencies. Owners hate the dependency, the not-knowing if it works, and "having to teach the agency all about treatments, your style of business and your brand."
Wearing too many hats, wanting someone to take real accountability for the marketing so they can stop carrying it.
Word-of-mouth reliance and invisibility. Both built on referral. Shally: "make people aware they're there," "let people know they're here." Carryl grew on reputation and referral over 17 years and only ever tried an agency once (2009).
Social content is a mental load that drops off. Carryl wants 3 months of content planned ahead so she can switch off ("be on a cruise ship and not worry"), and it collapses when she is away or sick. She echoes another owner who spends weekends "in the shower trying to think of social media posts."
Owners are not on-camera people. Shally: they are not "pick up the camera and start talking" types, but "if someone said say this, do this, they'll do it."

Two distinct ICP segments (do not pitch the same offer to both)

Volume / utilisation clinics (the main offer). Shally wants to go from ~50% to ~85% utilisation, clear 55k breakeven, get more people through the door. The practitioner buying into Carryl's clinic started at average appointment value ~$180, rebooking ~53%, 1 to 2 new clients a month, and Mitchell got her 42 new patients with booking deposits in 42 days. This segment wants the deposit-direct demand machine.
Boutique, low-volume, high-ticket (different wants). Carryl runs luxury, "not bums on beds," low client numbers but high spend per client. Her marketing want is small ("a few extra clients"). Her real wants are 90 days of social content planned ahead, the right licensed therapist, and accurate weekly numbers. Pitching the volume machine here would miss; the wedge is content systemisation, hiring, and reporting.

Shally's value-equation, captured live (a real "for $10k, must be true")

A near-complete Hormozi value-equation in a prospect's own words, useful as an offer template:

Dream outcome: 50% to 85% booked, minimum 55k breakeven, no wasted money.
Likelihood: someone works it until 85% booked (up to 12 months), 7-day 1:1 access, zero other people to deal with, first month of ad spend free or first 10 bookings free.
Time delay: deposit-paid bookings within one month.
Effort and sacrifice: zero script memorising (teleprompter), zero learning to film (someone comes in and does it), zero time thinking about socials, a single point of contact.
Terms she responded to: no upfront payment, a payment plan of $275/week over 32 weeks. Useful as a real price anchor.

Named alternatives and competitors (internal only)

Laura Hagan, "Prosper and Profit" (laurajohagan.com/elite/). The ~$9k, 6-month-plus coaching program Shally did. What she disliked: the person she dealt with got swapped partway through (they hired an employee), and her staff expected Laura to come in and fix everything while Shally was left not knowing what to tell them.
WhereU. Rejected because it would send filming modules and make the client shoot and send video for feedback. "Too much effort." This is the gap Mitchell's done-for-you, someone-comes-and-films model fills.
Rebecca Miller (NSW). Carryl's business coach. Pillars include self-mastery and reading your numbers, choosy on who she takes on, a heavy Fresha/Forest advocate, and reportedly building a Forest reporting automation.
Defiant Digital. The ~$10k/mo "best agency in Australia" that gave Mitchell terrible results. He lawyered out of a 12-month agreement and his own campaigns beat theirs. INTERNAL. Public copy says "an agency", never the name.
Carryl's early vendors (2009): a web-design company plus one other, both of which did not work, which is why she swore off agencies.

What this validates for the strategy

The spear holds. Across his clients (Inglewood, Manning, Melbourne) the want is identical: "come in, film everything, do the branding and video, run the ads and launch, then I don't think about it, and deposit-paid bookings come in instead of leads to chase." That is the deposit-direct done-for-you machine, validated by demand.
The creative-delivery model is right. Owners are not on-camera people and want to be told exactly what to say. Teleprompter plus someone who prompts plus someone who films is precisely the directed-shoot model, which is also why the filming and editing can be delegated.
Ops-first honesty is a real differentiator. Both rate coaching and ops above agencies. Carryl: "the best thing that's ever worked for me is coaching," and the owners who know what they are doing focus on margins, revenue per hour, utilisation, retail add-ons, and a streamlined consult, "a profitable foundation before even thinking about marketing." This is direct support for the "sometimes ads are not the answer yet" position and the credited consult-conversion method.
Hold the two segments apart in targeting and offer. Volume utilisation clinics get the machine; boutique high-ticket owners get content systemisation, hiring help, and numbers reporting.

Honest-claims source material (for the dual story)

Suzie Hoitink (HTNK) fixed Mitchell's whole operations, the consultation framework, team culture, performance management, and the treatments deck across his 3 years as clinic principal. In his words she "rebuilt the whole business from the ground up, which is what we thought we were getting" from the franchise "and got none of."
Defiant Digital is the named $10k/mo agency behind the burnt-client half of the dual story. Internal only.
Franchise context: the franchisee class action collapsed (others pulled out after the business partner called them toxic and withheld stock); their lawyer subsequently drove changes to the franchise code of conduct. Frame the exit as a values decision in any public use, never "fraud" or "broken", per the honest-claims rules.

One number to keep separate

The "42 new patients in 42 days" for the practitioner buying into Carryl's clinic is a discovery-call mention and is NOT part of the locked proof set. Do not blend it with PM Aesthetics (43 in 42 days, $16,477 from $2,309, 7.1x) or Face Foundry (82 in 30 days, $60.45, 96% showed). Client-facing claims use the locked set only.