# AnchorWorks Repo Study *Prepared 2026-07-09 · Feeds the GoHighLevel (GHL) cleanup + audit · Read-only study of 4 repos* This is a plain-language map of how AnchorWorks actually works across its four code repositories, with the spotlight on **how the marketing funnels touch GoHighLevel** — because that's what the GHL cleanup depends on. Nothing was changed in any repo. The big thing to know up front: **the funnels are custom web pages, not GHL funnels.** Chris's pages are hand-built HTML hosted on Cloudflare. GHL is only the *form/calendar/ webhook engine bolted into* those pages. So in GHL you should expect to find **forms, a calendar, a webhook automation, and contact custom fields** — but you will NOT find the funnel pages themselves. Those live in the repos below. --- ## What AnchorWorks is - **Who they serve (ICP):** HVAC and home-service business owners — specifically owners who already have demand and customers but whose company "leaks revenue somewhere between the first lead and the final sold install." Company sizes referenced by truck count and revenue. - **What they sell (offer ladder):** a free diagnostic (the **Local Authority Score™**, a 16-question quiz) → a **Strategy Session** (booked call) → paid engagement. Supporting lead magnets: an **HVAC Market Report** and an **HVAC War Room webinar**. There's also a free **HVAC War Room Facebook group** (facebook.com/groups/hvacwarroom). - **Current positioning:** **"Revenue Engines for the Trades."** The core mechanism is the **Revenue Engine** (Traffic → Conversion → Sales → Nurture; also framed as Leads / Sales / Scaling). Mission: "help tradesmen build businesses that no longer depend on them." The homepage H1 is *"You Don't Need More Leads. You Need a Revenue Engine."* - **Retired language to watch for:** per Chris's standing guardrails, **"McKinsey for HVAC," "revenue infrastructure," "Leads→Sales→Scale," and "Authority Machine" are RETIRED.** The current website (`Three/`) is clean of "McKinsey." **BUT the live LAS funnel and the LAS repo README still use the retired "Revenue Infrastructure / revenue infrastructure" phrasing repeatedly** — see Flags below. - **Corporate structure:** AnchorWorks trades as **AnchorWorks Collective LLC** (the legal entity in all footers/disclaimers), which sits under the Black Ledger Ventures holdco. --- ## Voice & copywriting - **Tone:** direct-response, King Kong / Hormozi style — confident, blunt, benefit-led, a little contrarian ("You don't need more leads…"). Short punchy sentences, "the real root cause," "the leak," scarcity ("limited calls each week," "we don't accept everyone"). - **Signature vocabulary:** *Revenue Engine*, *the leak*, *Leads / Sales / Scaling* (the three pillars scored by the quiz), *Local Authority Score*, *Revenue Engines for the Trades*, *stage / archetype* (the quiz sorts owners into a stage with a name). - **What they talk about:** demand generation, lead follow-up, pricing confidence, sales process, owner-dependence, and capacity to scale — i.e., the business *system* around an HVAC company, not HVAC work itself. - **Doctrine on who writes:** Chris + ChatGPT own all customer-facing words (messaging, copy, offers, VSLs); Claude only implements. Legal copy is Chris-provided and never AI-written. This matters for the audit: don't rewrite funnel copy — only fix wiring. --- ## How the funnels actually work **Architecture in one picture:** hand-coded HTML/CSS/JS pages → served by **Cloudflare Workers** (static assets, no framework, no build step) → each page **embeds a GHL form or calendar as a cross-origin iframe**, OR (in the LAS quiz) **posts results to a GHL webhook**. GHL then captures the contact, stores custom fields, and fires its own workflows/emails. There are **two separate Cloudflare deployments**, each its own repo: ### 1. The main website + its three funnels (repo: `anchorworks-website`) - Served by a Cloudflare Worker named **`anchorworks-website`** from the `Three/` folder. Every push to `main` auto-deploys. Configured domains (in `wrangler.jsonc`): `www.myanchorworks.com` and `myanchorworks.com`. - **Status: LIVE / fully cut over as of 2026-07-08** (confirmed by Chris 2026-07-09). The new Cloudflare Worker site now serves the public `www.myanchorworks.com` and apex — Webflow has been replaced. The GHL embeds (forms + calendars) are live on the public site. *(The repo docs/build-logs still say "preview / not cut over" — that is a stale note.)* - **The GHL touchpoints on this site (5 of them):** each is an iframe from `https://api.leadconnectorhq.com/widget/...` plus the resizer script `https://link.msgsndr.com/js/form_embed.js`. GHL owns the fields/styling inside the iframe; the page owns the wrapper and the post-submit redirect. | Funnel page | GHL asset type | GHL asset ID / slug | Redirect after submit | |---|---|---|---| | `/strategy-session/book` (`Three/strategy-session/book/index.html`) | Calendar (Neo booking widget) | `strategy-session-round` | → `/strategy-session/confirmed/` | | `/market-report` (`Three/market-report.html`) | Form | `xueC9A0MThX8O9JlmwEH` | → `/market-report/thank-you/` | | `/webinar` — HVAC War Room (`Three/webinar/index.html`, in a gold modal) | Form | `HKaO5PfqiO5b5DL5VINK` | → `/webinar/confirmed/` | | `/playbook` (`Three/playbook.html`) | Form | `DlCc1XM8DAY8F3VEkdAv` | No redirect — GHL emails the PDF | | `/do-not-sell` (`Three/do-not-sell.html`) | Form (opt-out/compliance) | `DAQO9ZtQzsJvMlrb3FoC` | Opt-out form | - **Where the GHL-side settings live:** the repo's **`ghl/` folder** is the version- controlled source of truth for things that actually live *inside* GHL — the Custom CSS for each form/calendar (`market-report-form.css`, `webinar-form.css`, `strategy-session-calendar.css`, `do-not-sell-form.css`) and the embed playbook (`ghl/GHL-EMBED-PLAYBOOK.md`). Nothing in `ghl/` is served to the web; it's a copy of what Chris/Claude paste into GHL. **Useful for the audit:** this folder tells you which GHL forms/calendars are supposed to exist and how they're branded. - **Redirects are set inside GHL** ("Redirect to URL" mode, not "show message"). Each page ALSO keeps a JavaScript `postMessage` listener as a fallback that redirects the top window if GHL ever redirects inside the iframe. So a funnel's "next step" is configured in **two** places — the GHL asset setting and the page's fallback script. If a thank-you page ever stops showing, check the GHL redirect setting first. - **PDFs (Market Report, Playbook) are delivered by GHL email, not hosted on the page** — so a GHL workflow/email must be wired to each of those two forms for delivery to work. - Note: the webinar GHL form collects **First / Last / Phone / Email**, which differs from the spec's single "Full Name" field — flagged as unresolved in the repo. ### 2. The Local Authority Score quiz — the ONE truly live funnel (repo: LAS, Ethan's) - A single-page HTML quiz served by a **separate** Cloudflare Worker named **`anchorworks-las`** (from `wrangler.toml`), live at **`las.myanchorworks.com`**. This is the **only funnel currently public.** It's Ethan's repo; Chris is a collaborator. - **How it talks to GHL — this is the key wiring for the audit.** The quiz does NOT embed a GHL form. When the user finishes, the page's JavaScript builds a payload and **POSTs it to a GHL inbound webhook** (`index.html`, ~line 990): ``` https://services.leadconnectorhq.com/hooks/OwJn0vZV9wqqxHFqyC68/webhook-trigger/34421c83-74c5-4b7b-a9ea-a32a7760e71e ``` - The `OwJn0vZV9wqqxHFqyC68` segment is the **GHL location/sub-account ID**; the long UUID is the specific **webhook trigger**. This is the exact automation the GHL audit must confirm still exists and is connected to a workflow. - **Delivery trick:** it submits a hidden `
` POST targeting a hidden iframe (so the page never navigates away and CORS never blocks it). Fire-and-forget — it never reads the response. This means **if the webhook silently breaks, the visitor sees no error** and the lead is lost quietly. Worth a live end-to-end test in the audit. - **The payload GHL receives (~25 fields):** `firstName`, `lastName`, `email`, `phone`, plus custom fields: `las_score`, `las_grade`, `las_stage`, `las_archetype`, `las_leads_score`, `las_sales_score`, `las_scaling_score`, the 16 answer fields `las_q01_trucks` … `las_q16_context`, `las_submitted_at`, and `las_source` = `"Local Authority Score"`. **For the audit:** these `las_*` names must exist as custom fields in that GHL location, or the data lands nowhere. Contact matching is by email/phone. `las_source` is the clean tag/segment key for this funnel. - Contact form is 4 fields: First / Last / Business Email / Phone (phone optional). - **After the quiz, the CTA sends people OFF to book:** the "Book Strategy Session" button opens **`https://goanchorworks.com/strategy-session`** — a *third domain* that does not appear anywhere in the website repo (the website's own booking lives at `myanchorworks.com/strategy-session`). See Flags — this is a likely mismatch/dead link. - No analytics or ad pixels are present in the LAS page (no GA/gtag, no Meta pixel, no Hotjar/Clarity). Lead capture is webhook-only. If attribution matters, it isn't wired here. ### 3. The other two repos have NO GHL wiring - The **Founder's Brain** (doctrine/IP wiki) and the **Executive Brief Cloud** (internal memory site) contain zero GHL/leadconnector/webhook references. They're not funnels and don't touch GHL. Covered in Per-repo notes for completeness only. --- ## Domains & subdomains seen across repos | Domain / subdomain | What it is | Live? | |---|---|---| | `las.myanchorworks.com` | The Local Authority Score quiz (Cloudflare Worker `anchorworks-las`, Ethan's repo). **The only live funnel.** Posts leads to a GHL webhook. | **LIVE** | | `www.myanchorworks.com` / `myanchorworks.com` | The main marketing site + 3 funnels (Worker `anchorworks-website`). Built & previewing, but the public domain still serves the **old Webflow site**. | Built, **NOT yet cut over** (Webflow still live at www/apex) | | `goanchorworks.com` | Target of the LAS quiz's "Book Strategy Session" button (`/strategy-session`). Appears ONLY in the LAS repo, nowhere else. Likely a GHL-hosted funnel domain or a stray/legacy domain. | **Unverified — must be checked live** | | `api.leadconnectorhq.com` | GHL's widget host — every website form/calendar iframe loads from here. | GHL infra | | `services.leadconnectorhq.com` | GHL's inbound webhook host — the LAS quiz POSTs leads here. | GHL infra | | `link.msgsndr.com` | GHL's `form_embed.js` iframe-resizer script (loaded on every embed page). | GHL infra | | `myanchorworks.com/privacy-policy`, `/terms-of-service`, `/disclaimer`, `/do-not-sell-or-share`, `/dmca-policy` | Legal links used by the **LAS** footer — these are **old Webflow-style URLs**. The new website uses `/privacy`, `/terms`, `/dmca`, `/do-not-sell` instead. | Mismatch (see Flags) | | `iamchriscampbell.com` / ChrisCampbell.com | Chris's personal-brand site (builds trust, does not sell; hands off to AnchorWorks). Referenced in doctrine; parked, not built here. | Parked | | `reports.*` (Executive Brief Cloud) | Internal brief-cloud site, deploys to a Cloudflare Pages "reports" project. Internal only, no public funnel role. | Internal | Supporting social/asset hosts seen: `facebook.com/groups/hvacwarroom` (real War Room group), `facebook.com/people/AnchorWorks/…`, `instagram.com/myanchorworks`, `linkedin.com/company/anchorworks-collective`, Wistia (`fast.wistia.net`) for VSL videos, and a Webflow CDN logo still referenced in the LAS page. --- ## Per-repo notes - **Founder's Brain** (`the-brain`) — `…/2 🎙️ Studio — Chris Campbell/🧠 Founder's Brain`. A markdown wiki of Chris's personal IP, philosophy, and voice (Authority Economics, Constitution, Playbooks). It's the **upstream source of truth** that the business Company Brain deploys from. Read-only doctrine; **no funnels, no GHL.** The master handoff here is where the "Revenue Engines for the Trades" category + Revenue Engine mechanism are defined. - **AnchorWorks Website** (`anchorworks-website`) — `…/Workbenches/Websites/Website`. The real marketing site and 3 funnels; live source is the `Three/` folder (the `One/` folder is rejected variants — ignore it). Deep reference is `HANDOFF.md`; GHL specifics in the `ghl/` folder + `ghl/GHL-EMBED-PLAYBOOK.md`. This is where 5 of the GHL touchpoints live (4 forms + 1 calendar). Not yet cut over from Webflow. - **LAS** (Ethan's, live) — the LAS scratchpad repo. One file, `index.html` (~78KB), plus assets. This is the **live quiz funnel** and the **only place a live lead currently flows into GHL** — via the webhook above. Highest-priority repo for the GHL audit. Config in `wrangler.toml` (Worker `anchorworks-las`, serves repo root). - **Executive Brief Cloud** (`executive-brief-cloud`) — `…/🧠 Company Brain/executive-brief- cloud`. AnchorWorks' internal institutional-memory site (boardroom-grade briefs, one folder per milestone, frozen template, deploys to a Cloudflare Pages "reports" project). **Internal only — no GHL, no lead capture, not part of the funnel system.** Included only to confirm it isn't a funnel. --- ## Flags / things that look stale or wrong 1. **The live LAS funnel books into a different domain than the website.** Its "Book Strategy Session" button → `https://goanchorworks.com/strategy-session`, but the actual website's booking funnel is at `myanchorworks.com/strategy-session`. `goanchorworks.com` appears nowhere else in any repo. **Verify `goanchorworks.com/strategy-session` actually loads and points at the right GHL calendar — this is the hand-off from the only live funnel, so a dead link here = booked calls lost.** 2. **Retired positioning is still live on the LAS funnel.** The LAS page and the LAS repo README use **"Revenue Infrastructure / revenue infrastructure"** repeatedly (page title area, schema meta, body copy) — a phrase Chris ordered RETIRED. The new website is clean; the live quiz is not. Copy fix needed (Chris owns the words). 3. **LAS legal links point to old Webflow URLs.** The LAS footer links to `myanchorworks.com/privacy-policy`, `/terms-of-service`, `/disclaimer`, `/do-not-sell-or-share`, `/dmca-policy`. The new site uses `/privacy`, `/terms`, `/dmca`, `/do-not-sell`. Once the site cuts over from Webflow, **these LAS links will break** (or already differ). Compliance links (esp. do-not-sell) matter — fix on cutover. 4. **The LAS lead webhook is fire-and-forget and silent on failure.** If the GHL webhook or its workflow is broken/renamed, the quiz still "succeeds" for the visitor and the lead vanishes with no error. **Run a live test submission and confirm it lands in GHL** as part of the audit. Also confirm all `las_*` custom fields exist in location `OwJn0vZV9wqqxHFqyC68`. 5. **The main website is not actually live** — `www`/apex still serve Webflow. So 4 of the 5 GHL embeds (market-report, webinar, playbook, do-not-sell forms + strategy calendar) are only reachable on the preview URL today, not the public site. Don't assume they're taking real traffic yet. The branded `myanchorworks.com/widget/...` embed path 404s while the DNS is on Webflow — that's why all embeds use `api.leadconnectorhq.com` directly. 6. **A GHL webhook secret is committed in a repo.** The full inbound webhook URL (with its trigger UUID) is hard-coded in the LAS `index.html`. It's a public front-end webhook by design, but it's low-security — anyone can POST fake leads to it. Not urgent, but note it: if you ever see junk/spam contacts with `las_source = "Local Authority Score"`, this is why. 7. **Two Cloudflare deployments, two owners.** LAS is Ethan's repo/Worker; the website is Chris's. They share the `myanchorworks.com` domain family and (apparently) the same GHL location, but they're wired independently. Coordinate any GHL field/workflow renames with Ethan, or the LAS webhook payload could silently stop matching. 8. **Webinar form field mismatch** — the GHL webinar form uses First/Last/Phone/Email while the funnel spec expected a single "Full Name." Cosmetic, but flagged unresolved in the repo.