Enter PIN to continue
Every SOP, framework, and system in one place
How you do things. Reusable SOPs for every major workflow.
6 docsConsultation method (Suzie/HTNK)
playbooks/consultation-method.md
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:
clients/blank-kanvas-consult/ (Assessment > Concern/Pathway > Plan > Review flow)training/ folder (65-card flashcard distillation, facilitation kit, presenter deck)blank-kanvas-5jun/_ALL_TRANSCRIPTS.txt (72 clips from the June 5 Blank Kanvas delivery)clients/blank-kanvas-tracker/ (per-staff PDP workbooks with monthly KPI scorecard)"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.)
Mnemonic: "Our Aesthetic Patients Convert, Earning Respect" (O-A-P-C-E-R)
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:
Core standard: every team member knows what "meets standard" and "above standard" looks like for each value, with specific observable behaviours (not abstract aspirations).
Two bases: Needs-based ("fix it") vs Wants-based ("get ahead"). Read the patient's motivation, not their age.
Controller (Needs-based, any age)
Preventer (Wants-based, ~25-40)
Preserver (Wants-based, ~40-55, often perimenopausal)
Reverser (Wants-based, 55+)
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).
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)
#### 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:
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.
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:
Target metrics:
What the team starts doing immediately after training. The smallest possible shift that produces the biggest result:
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):
+1 Hero by concern:
| Pathway | Hero Serum | Timing |
|---|---|---|
| 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:
Homecare is NEVER bundled into the pathway price; prescribed separately for every patient.
All pathways are 12-week, 6-session concern-based programmes with a Week 12 review consultation.
| Pathway | Concern | Member | Non-Member | Core Modalities |
|---|---|---|---|---|
| Clear Kanvas | Acne & Congestion | $1,180 | $1,970 | Hydrodermabrasion, Advanced Peels, Dermapen, LED |
| Restored Kanvas | Ageing & Firmness | $1,520 | $1,870 | Hydrodermabrasion, Dermapen, Dermapen Exosomes, WIN Elevate, LED + nurse consult |
| Bright Kanvas | Pigmentation & Tone | $870 | $1,670 | Advanced Brightening Peels, Hydrodermabrasion, Dermapen, LED |
| Fresh Kanvas | Dullness & Texture | $1,050 | $1,460 | Hydrodermabrasion, 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:
| Tier | Monthly | Key Inclusions |
|---|---|---|
| Tier 1 | $129 | Monthly 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) |
New client to fully operational
playbooks/client-onboarding.md
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.
Principle: minimise client effort. Aim for "1 link + 2 short asks" (~10 min of their time).
All access requests go in one email, ordered easiest-first for momentum. One bundled follow-up question covers the prior-agency ownership situation.
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)skills/_shared/brand-directory.mdcopywriting skill for the client's voiceEverything from seo-system/runbook.md Phase 0, plus the site build:
generateStaticParams, how-to guides, JSON-LD structured data/api/lead, emails via Resendnext/font/google (e.g. Fraunces + Inter)@theme tokens in globals.css, per-client paletterm -rf .next && npx vercel deploy --prod --yes (dev-cache gotcha)gh repo create <slug> --private --source=. --pushStand up the client-facing interfaces (clone from live reference kits, ~15 min each):
| Kit | Audience | Purpose |
|---|---|---|
| Control panel | Internal (Mitchell) | Phase timeline, "autopilot vs needs-human" split, decisions log, headline metrics |
| Approval kit | Client | The plan in plain English, approve/changes toggle per deliverable, "what I need from you" checklist, one-tap send |
| Launch kit | Client | Live asset link, ready post caption with copy button, cover images in 3 ratios, lead-tracker CSV, how-to |
| Results dashboard | Client/internal | Monthly KPI cards (attributed enquiries, AI-citation rate, reviews, GSC). Manually updated. |
| Near-term demand pack | Client | Reactivation messages, social before/after series, membership re-book hook, this-week checklist |
client-kits/<client>/<kit>/index.html:root (colours, fonts)copywriting skill.<meta name="robots" content="noindex, nofollow">. Never add to any sitemap.mitchellkwan.com/clients/<name>.html via rewrites, or use a subdomain via client-subdomain skill?k=PIN, blocks without it, zero em-dashes, noindex presentReview requests, rank tracking, AI monitor, content drip, GBP post scheduling, GSC/GA4 dashboard, internal linking
Real before/after photos, review replies in their voice, approving pages, their own outreach/posting, GBP/account access
Approval gates, sending PR pitches, monthly report send
seo-system/LESSONS.md every engagement00-MASTER.md with status changesOnly three things require Mitchell's explicit approval:
Everything else: just do it.
Filming, editing, delivery
playbooks/shoot-production.md
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.
content/scripts/youtube-script-*.md at build timeMitchell: 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).
>> = ad-lib/story prompts, not words to read*[cues]* = production cues, hidden by defaultSee reel-edit-sop.md for the full caption style and automated 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--transition, --no-xfade, --res, --fpsUpload, set VIDEO_ID constant on the matching site page so video embeds. Video + article on same topic = double entity signal for AI citation.
Separate exports per placement (3:4, 9:16, 4:5). Offer/price lives in ad caption or landing page, never burned into the video.
Clean delivered version (paid, no watermark) vs. watermarked sample (cold outreach). Deliver as MP4.
Bunny Stream library 655909. Note video ID for each upload.
6-9 posts on the grid before DMs begin (credibility threshold).
Summer North (summer@coldsocials.com) handles BTS footage.
Caption style + automated pipeline
playbooks/reel-edit-sop.md
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/.
This is Mitchell's signature look. Every reel uses this exact spec.
reel-edit/fonts/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.
#FFFFFF)#C9A227 (lower-third bar, infographic highlights, callout underlines, corner-tag bullets)#D8D2C8 / #EDE6DA / #F0ECE2 (subtitle lines, secondary text)#120F0D / #1A1512 (hook/outro card backgrounds)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.
Each piece is defined as a tuple: (id, source_clip, start_sec, end_sec, hook_text, emphasis_words, display_name)
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:
.ass file4. Render
ffmpeg composites the trimmed video with the ASS subtitles:
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)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.
| Setting | Value |
|---|---|
| Resolution | 1080x1920 (9:16 vertical) |
| Codec | H.264 (libx264), preset medium, CRF 19 |
| Pixel format | yuv420p |
| Framerate | 30 fps |
| Audio | AAC 160 kbps |
| Container flags | +faststart (progressive download) |
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):
Quality check: eyeball each AI clip. If walls bend, furniture melts, mirrors wobble: regenerate once or swap the photo. Never keep a warped clip.
build_ass.py produces three visual overlay variants on top of the word-by-word captions:
All three share the same hook card, lower-third name block, body captions, and outro CTA card.
C9596.MP4){number}-{slug} (e.g. 1-not-a-clinician)clinic.mp4, reception.mp4, abstract.mp4)mk_reel_v{N}.mp4mk_reel_final.mp4{number} - {Human Title}.mp4For a single reel not part of a batch cut:
reel-edit/python transcribe.py to get word-level transcriptpython build_ass.py to generate the 3 infographic variants| File | Purpose |
|---|---|
reel-edit/transcribe.py | Step 1: speech-to-text with word timestamps |
reel-edit/build_ass.py | Step 2a: ASS subtitle builder (standalone reel, 3 variants) |
reel-edit/cut_pieces.py | Step 2b: batch cut pipeline (trim + transcribe + caption + render + publish) |
reel-edit/watch_cuts.ps1 | Monitor: polls for engine exit, reports state |
reel-edit/fonts/ | Poppins SemiBold + EB Garamond Italic TTFs |
reel-edit/ref/refreel.mp4 | Style reference reel |
Next.js stack, design system, deployment
playbooks/site-build.md
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.
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.
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)
app/layout.tsx)next/font/google, exposed as CSS variables (--font-serif, --font-sans)<html> className<Nav /> and <Footer /> wrapping {children}<Metadata> export with OG, Twitter card, metadataBase, canonicalgenerateStaticParams() from a data filegenerateMetadata(), JSON-LD structured data (e.g. HouseCleaningService with areaServed), links to nearby suburbsAlways a serif + sans pair via next/font/google:
| Brand | Serif | Sans |
|---|---|---|
| Honest Home Cleaning | Fraunces | Inter |
| mitchellkwan.com | Cormorant Garamond | Inter |
| ARA | Cormorant Garamond | Inter |
| Extreme Beauty | Fraunces | Inter |
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.
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).
cubic-bezier(0.16, 1, 0.3, 1) ("ease-out-expo")--duration-fast (150ms), --duration-base (400ms), --duration-slow (800ms)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.
Underline slide-in via ::after pseudo-element with scaleX(0) to scaleX(1).
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.
Standard pattern across all sites:
/api/lead (Next.js API route)RESEND_API_KEY, LEAD_TO, LEAD_FROM env vars)LEAD_TO is comma-separated for multiple recipientsnotifications@ara.mitchellkwan.com (the one verified Resend domain on the free plan) with the client's display namenpx next build (verify before showing anything)rm -rf .next before deploy (dev cache breaks the Vercel upload)cd site && rm -rf .next && npx vercel deploy --prod --yes/api/lead liveclient-subdomain skill)76.76.21.21, add www as a domain on the Vercel projectnoindex off at go-live (if the page should be indexed)gh repo create <slug> --private --source=. --pushgit grep --cached for key prefixes: re_, cfat_, etc.)Every client site gets the SEO foundation from seo-system/runbook.md Phase 0:
| Site | Stack | Reference for |
|---|---|---|
Honest Home Cleaning (clients/meg-rockingham-cleaning/site/) | Next.js 16 + Tailwind v4 | Current standard, colour system, location pages |
mitchellkwan.com (mitchellkwan-site/) | Next.js 16 + Tailwind v4 | Teleprompter, SEO cluster, content system |
ARA (ara-site/) | Next.js 14 + shadcn/Radix | Older stack, Resend lead capture |
Client kits (client-kits/) | Static HTML | PIN gate, kit pattern, brand token swap |
Margin model, scorecard, guarantees
playbooks/pricing-proposal.md
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).
Sprint/build COGS (~$1,270):
Ongoing COGS (~$480/month per client):
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).
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.
Binary scored (1 / 0.5 / 0) per pillar:
Scoring:
The public /scorecard tool covers pillars 1-5. Pillar 6 and the hard revenue filter are assessed on the call.
Each step is designed so no step asks for commitment before the previous step is complete:
The scorecard is not a lead-gen form. The call is not a close. The sprint is not a lock-in.
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.
"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:
What the refund covers: build deposit only, never ad spend. Filmed assets stay with Mitchell on a refunded miss.
Hard language rules:
"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.
Meg (cleaning): guaranteed re-clean on bond cleans (justifies premium price). No formal money-back beyond that.
| Tier | Build Deposit | Ongoing (monthly) | Ad Spend (client's) | Gate |
|---|---|---|---|---|
| Standard | $5,000 (refundable) | $2,500 | $3,000+ to Meta | Scorecard 4+/6 |
| Premium/interstate | $8,000 | $3,500 | $3,000+ to Meta | $100k+/mo revenue, scorecard |
| SEO add-on | -- | +$1,000 | -- | Existing retained client |
| Component | Price |
|---|---|
| Setup | $3,500 + GST (normal $5-8k) |
| Monthly | $1,500 + GST (normal $2,500-$3k) |
| Content/filming day | ~$1,000 billed separately |
| Beds/Baths | Fortnightly | Weekly |
|---|---|---|
| 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
Two engines stacked:
Flagged risks:
The complete SEO/AI-SEO system. Method, execution, and measurement.
9 docs4 pillars, local vs national fork
seo-system/method.md
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:
sameAs to socials/profiles.The pillars are constant; the *emphasis* changes completely by client type.
Local, single-location (e.g. Extreme Beauty: one cosmetic-tattoo studio in Bedford).
National service / B2B (e.g. ARA recruitment; mitchellkwan.com).
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).
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).
Must-be-true / need-to-believe
seo-system/rubric.md
Every page (and every cluster) is planned against two questions before a word is written:
A page ships only when it satisfies both. This is the spine of every content brief; reuse it per client.
copywriting skill, which holds each brand's voice.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."
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).Phase-by-phase engagement execution
seo-system/runbook.md
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.
Make the site measurable and machine-readable, lock the entity, switch on the engines that run themselves, and freeze the baseline.
The off-site half, which actually drives AI recommendation. Start the slow-to-land parts (PR) early.
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).
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.
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."
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).Operating guardrails
seo-system/rules.md
Non-negotiables for every SEO/AI-SEO engagement. Most map to a memory in Mitchell's private repo; this is the working version.
feedback_gated_client_links.)copywriting skill, which holds each brand's voice. Grounded, not try-hard premium (his clients sense bullshit). No em-dashes, ever (his absolute rule).Kits: control panel, approval, launch, results
seo-system/deliverables.md
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.
| Interface | Audience | What it is | Live 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 kit | Client | The 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 kit | Client | For 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 dashboard | Client / internal | Monthly 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 pack | Client | For 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.
client-kits/<client>/<kit>/index.html.: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.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.var KEY="...."; keep the numeric gate input. Distinct from every other link (rules.md #3).<meta name="robots" content="noindex, nofollow">. Never add the page to any sitemap.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.?k=PIN, blocks without it, em-dash count 0, noindex present, not in sitemap....?k=PIN).mitchellkwan-site.mitchell@mitchellkwan.com by default (mailto in the kit). Change per client if needed.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.
Apify-powered competitive data layer
seo-system/intelligence.md
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.
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:
How to use it:
Checklist:
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:
How to use it:
copywriting skill)Checklist:
For platform coverage beyond Google:
web_wanderer/yelp-reviews-scraper ($0.30/1K)apify/facebook-reviews-scraper ($2.50/1K)thewolves/tripadvisor-reviews-scraper ($0.50/1K)conceivable_extension/multi-platform-review-scraper (~$2.10/1K, includes sentiment)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:
How to use it:
Checklist:
citation-builder ($0.25/submission) to auto-submit corrected NAP to remaining directoriesecomscrape/truelocal-business-search-scraper) and Hotfrog scraper (compute-edge/hotfrog-scraper, $0.002/result) for AU-specific directoriesAustralian 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
What: Where you rank in the Maps 3-pack, in organic results, and whether AI engines cite you.
Local pack (geo-grid):
vasram/google-maps-rank-tracker ($0.25-$1.80/scan, replaces LocalFalcon)Organic SERP:
apify/google-search-scraper ($0.002/query)AI citation tracking:
devilscrapes/ai-overview-citations (~$5.50/1K query-citation rows)ai-brand-monitor.ts script (see runbook.md) for ChatGPT/Perplexity/Gemini/ClaudeChecklist:
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:
Checklist:
What: What real people say when they're looking for your service. The exact language, questions, complaints, and desires.
Actors:
parseforge/reddit-posts-scraper (pay-per-use, no rental fee)apify/facebook-posts-scraper ($2.00/1K posts)igview-owner/yelp-business-data-scraperWhen to run:
Checklist:
copywriting skillAlso 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.
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:
| Job | Frequency | Est. 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 audit | Monthly | ~$0.50 |
| New competitors scan | Monthly | ~$1.50 |
| AI citation tracking | Monthly | ~$2-$5 |
| Content gap refresh | Quarterly | ~$0.50 |
| Voice-of-customer refresh | Quarterly | ~$1-$3 |
| Total per client | ~$10-$25/month |
Setup checklist:
| Phase | Intelligence 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) |
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.
AI citation: per-engine notes, entity signals
seo-system/geo-playbook.md
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.
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:
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.
AI engines need to understand your business as a known entity, not just a page. This means:
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 appearsAI 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.
devilscrapes/ai-overview-citations actor (see intelligence.md job 4)OAI-SearchBot in robots.txtPerplexityBot in robots.txtClaude-User bot) to find and cite sources.Claude-User in robots.txtBingbot in robots.txtUser-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: /
AI engines extract and synthesise. Make their job easy:
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.
The four numbers from runbook.md, with the GEO-specific detail:
devilscrapes/ai-overview-citations actor (intelligence.md job 4). For each target keyword: does an AIO appear? Is the client cited? At which position?Local service business:
National service:
The AI search landscape is moving fast. These are the principles that hold regardless of which engine or feature wins:
GBP, reviews, directories, link building
seo-system/off-site-engine.md
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.
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.
Identity:
Contact & location:
Services & products:
Photos & media:
Q&A:
Posts:
alizarin_refrigerator-owner/gbp-poster) may automate this; test itAttributes:
| Task | Frequency |
|---|---|
| Respond to all reviews | Within 24-48 hours |
| Answer new Q&A | Within 24 hours |
| Add new photos | 2-3 per month |
| Post an update | 1-2 per week |
| Check for suggested edits | Weekly (Google and users can suggest changes) |
| Update hours for holidays | Before each holiday |
| Sync review count to schema | Monthly |
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)
Automated ask (the foundation):
In-person ask (the multiplier):
The review link:
https://search.google.com/local/writereview?placeid=YOUR_PLACE_IDKeyword-rich reviews (without being fake):
Respond to every review. Owner responses are visible to AI engines and potential customers.
For positive reviews:
For negative reviews:
For fake/spam reviews:
| Stage | Target | Timeline |
|---|---|---|
| Starting (0-50 reviews) | 6-8 per month | Months 1-8 |
| Building (50-150 reviews) | 4-6 per month | Months 8-24 |
| Maintaining (150+) | 4+ per month | Ongoing |
The 150-review threshold is where AI citation probability jumps significantly. Below this, you're largely invisible to AI recommendation engines for local queries.
Use the review scraper (intelligence.md job 2) to:
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.
Tier 1 (do these first; highest authority):
Tier 2 (high value, do within first month):
Tier 3 (build over time; incremental value):
For national/B2B clients (ARA, aesthetic-ops):
citation-builder ($0.25/free submission) to auto-submit corrected NAP to directoriescitation-god-mode actor ($0.10) runs the audit + cross-validation in one passLinks remain a top ranking factor for both Google organic and AI citation. For local businesses, local relevance matters more than domain authority.
daniil.poletaev/backlink-building-agent automates part of this:
Use it to accelerate the listicle pitching and partnership outreach. The outreach itself is still human (Mitchell or the client sends).
Local single-location:
National service (ARA, aesthetic-ops):
| Phase | Off-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. |
Realistic automation for the off-site engine:
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.
Running log of what worked and failed
seo-system/LESSONS.md
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.
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.Aesthetic-ops positioning, competitive intel, and offer design.
6 docsPositioning, dual story, pricing, 90-day plan
aesthetic-ops-leadgen/the-play-final-strategy.md
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.
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 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.
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 believe | The proof | Status |
|---|---|---|
| This person has actually stood where I stand | The dual story: built and ran a skin clinic, and was the client an agency billed $10k/mo for 10 bookings | Live now |
| It will not risk my AHPRA registration | You ran a clinic through the 2025 AHPRA changes; you know the cosmetic-ad rules and the penalties from the chair | Live now |
| This is different from the agency that burnt me | A free recorded teardown first, no call needed. Generosity a salesperson cannot fake | Live now |
| It actually fills the chair, not just leads | Locked results (below) and the deposit-direct booking flow that drops paid patients into the calendar | Live now |
| He will not take my money if I am not ready | You say out loud when ads are not the problem yet | Live 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).
Lead with the dual story. Then, only as backstops and only reframed as experience:
One set, stated exactly, all confirmed accurate.
Lead with PM Aesthetics once named (third-party beats self-reported), back it with Face Foundry. Never blend other figures into these.
Final threat order, full detail in the competitor map.
Lower priority: VisiBelle, Azuri, Neho (no ads), the swipe-only US/UK field.
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.
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.
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.
Every ad points at the free teardown. Your voice, no hype, booked appointments as the unit, AHPRA-clean.
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.
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.
5 differentiators, belief table, anti-positioning
aesthetic-ops-leadgen/category-ownership-plan.md
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.
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.
I pulled their live ads. The whole category has collapsed into one script:
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.
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.
Five things, and the data says no competitor has more than one or two. I have all five, and they compound.
| They must believe | How I prove it, not claim it |
|---|---|
| The people running my marketing don't understand my clinic | I tell my own clinic story, in numbers, in my own words. Lived, not learned. |
| This one is different from the agency that burnt me | I give a useful teardown first, free, no call. Generosity a salesperson can't fake. |
| The creative will actually be good | I show real filmed work next to the recycled stuff the category runs. |
| It won't blow up my registration | I 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 ready | I say out loud when ads aren't the problem yet. On record, in the FAQ. |
Every one of these is a competitor's actual move. Refusing them is the brand.
70 agencies profiled, 13 ranked threats
aesthetic-ops-leadgen/competitor-map-v2.md
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.
Three passes, ~70 agencies, and nothing displaces the strategy. It strengthened it:
| # | Agency | Threat | Runs own Meta ads? | The wedge against them |
|---|---|---|---|---|
| 1 | ClinicBoost (Brisbane, sells Perth) | High | Yes (dollarised guarantee) | Out-local, out-honest the "#1" puffery, out-creative; match the dollarised guarantee. |
| 2 | Neho 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. |
| 3 | Grow A Salon (Perth HQ, AU+NZ) | Med-High | Yes (confirmed by Mitchell; creative not retrievable) | Narrow + operator vs their broad salon-factory + hype. 0 verified reviews → real named WA proof. |
| 4 | Business Warriors (Perth, GAS parent) | Med | Sells Meta; own ads unconfirmed | Real cosmetic-clinic ROAS proof (SkinFit 22x, Oi 110+/mo) but generalist, aesthetic clients are interstate, no operator angle. |
| 5 | Sane Social Media (Canberra, targets Perth) | Med | Yes (for clients) | Can't out-badge the APAN moat; go around it: Perth-local + premium creative + operator story. Swipe their spend→bookings→ROAS format. |
| 6 | OMD (Sydney/Melb/GC + UK/US) | Med | Yes (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. |
| 7 | Aesthetix Digital (Sydney) | Med | Yes | Contests your ex-operator wedge. Beat on Perth-local + stronger free front end + visibly better creative (show the clinic ads you've made). |
| 8 | The Foundry (AU, east-coast) | Med | Offers Meta ads mgmt (+$500/mo add-on); own ads unverified | DFY 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. |
| 9 | VisiBelle (Adelaide) | Low-Med | Sells Meta; own ads unverified, SEO-led | Sharp packaged offer (TM framework, $880 tripwire) but no Perth, non-operator founder, paid-only front end. Swipe source. |
| 10 | Vstock Media (Perth) | Low-Med | No (Google/SEO only) | Perth injectable-clinic name but cedes the Meta-creative lane entirely. Aware-of, not a head-to-head. |
| 11 | Pracxcel (VIC, Perth page) | Low-Med | Sells Meta; leans programmatic-SEO | Guarantee-led ("Results or you don't pay", free $3,000 audit, one-clinic-per-postcode) but broad-healthcare, generic Perth page, inconsistent claims. |
| 12 | Reflex Marketing (Brisbane) | Low-Med | Brands as FB/IG; unverified | Sharp offer ("10 appointments month one or you don't pay", "first to understand TGA") but 3,600km away. Positioning benchmark. |
| 13 | BizWisdom (Melbourne) | Low-Med | Unknown | Best 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.
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.
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.)
Clinic Creative Teardown, 3 gates, full funnel
aesthetic-ops-leadgen/offer-blueprint.md
The recommended front-end offer for aesthetic-ops. Read the teardown + memo first for why this beats the bare call and the quiz.
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.
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).
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.
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.
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.
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."
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.
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.
Each adapted from the strongest examples in the file, kept plain and un-flexy.
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 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.
6-stage customer value journey
aesthetic-ops-leadgen/marketing-plan.md
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):
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.
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:
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.
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.
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:
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.
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.
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.
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.
reel-edit/ (yt-dlp + faster-whisper + ffmpeg/ASS captions in your Submagic style). Review, do not edit from scratch.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.
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.
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.
Ad intelligence workflow + MCP recipes
aesthetic-ops-leadgen/foreplay-market-intel-sop.md
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:
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 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.
get_brands_by_domain with e.g. australianskinclinics.com.au.search_discovery_brands with the clinic name.id (Foreplay brand id) and ad_library_id (the Meta page id).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).collect=true (best-effort live fetch from Meta, ~30s), only as a fallback, not by default.foreplay_url to see the actual creative. For video/image ads the description/headline carry the real copy.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).
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).
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.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.collect=true to refresh, and note in the deliverable that the set is a snapshot.inglewood-launch/meta-ad-copy.md.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
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.
Real data, competitor analysis, and voice-of-customer research.
3 docsDCO campaign: 1 validated winner, 6 patterns
learnings/paid-ads/pm-aesthetics/ANALYSIS.md
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.
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.
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."
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.
22 agencies, 9-section strategic analysis
learnings/competitor-intel/aesthetic-demand-agencies/ANALYSIS.md
*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.*
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.
Tier 2: Serious and fully readable (real landing pages, clear offer + guarantee). These are the ones to actually study for copy.
Tier 3: Confirmed Australian, but off-niche.
Tier 4: Inferred-only / not readable (handle or run-length only, no page or copy).
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.)
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.
The "X patients/appointments in Y days" promise (the category format):
| Agency | The number | Window |
|---|---|---|
| Go Proactive | 50 cash-paying patients | every 60 days |
| Slight Edge | 30 booked appointments with deposits | 30 days |
| Traciety | 20-40 high-value appointments | 30 days |
| Aesthetic Acquisition | 15-40 pre-paid patients ($20k-$50k) | monthly / 90 days |
| Scale77 | 30-50 bookings | per month |
| Social Adjustment | 15-50 patients | per month |
| Derma Booked | 15-20 high-ticket packages | per month |
| Patient Engine | 20-40 pre-paid clients | monthly |
| Pinpoint Scaling | 5-15 financially-qualified patients ($60k+) | weekly / 90 days |
| Nurture Growth | 30+ prepaid clients | 90 days |
| Clinic Marketing Company | 15-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:
Lead-magnet / funnel-entry 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:
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.
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.
Only tactics you can run truthfully, given you no longer treat patients and must stay AHPRA/TGA-clean:
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.
Be honest with yourself: these are NOT your moat (others in this set use them too):
What actually still separates you (hard for them to copy):
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.
Do now (low effort, high leverage):
Track these specific agencies in Foreplay Spyder (the readable, relevant, or durable ones, not the dead Instagram inference-only ones):
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.*
2 discovery calls distilled: ICP, value-equation
learnings/voice-of-customer/ANALYSIS.md
Distilled from two sources, grounded strictly in them (nothing added that they do not say):
A near-complete Hormozi value-equation in a prospect's own words, useful as an offer template:
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.