stpierre.ai · internal · September 3, 2026

Builder Delivery Handbook

Akash sells 9–5. You own delivery. This page is everything you need to run the machine: what the business is, where the lines are, the daily rhythm, the numbers, and every link.

The one number: $100,000 cash collected by December 31, 2026. Gross, not net — under the 50/10/10/30 split (ads / tax / opex / profit), $100K collected means ~$30K kept. Every plan and dashboard frames against cash collected, never monthly recurring revenue.

Your job in one line: keep leads flowing to clients, keep every rail and dashboard honest, and never let Akash discover something broken before you report it.

Context

The business in 60 seconds

stpierre.ai (the retired long-form company name never appears in copy) generates homeowner appointments for home-services contractors — concrete leveling, concrete flatwork, foundation repair, crawl space, basement waterproofing. The public face is the Alex St. Pierre persona; externally we position as growth consulting for seven-figure home-improvement companies.

Two sides of the machine:

The model is pay-per-appointment: we front the ad spend, the client pays only for booked appointment requests. That means delivery quality — real phone numbers, real project details, fast follow-up — is the whole product.

Context · Jun–Sep 2026

How we got here — the last 13 weeks

Everything you're inheriting was built since June, across roughly 2,000 logged work sessions. The arc matters more than the details: exit the old agency → design the new model → build the machine → sign the first clients → discover delivery reliability is the real constraint → stop, audit, repair → split the company into sales (Akash) and delivery (you).

WhenWhat got builtWhy
Early JunThe business model itself — plans iterated to v5.2, canonical brand docs, the Postgres "brain" as company memory, planning/ops rituals.Deciding what the new company even was before building anything.
Jun 15EyeFly exit. The prior ~50-client ad agency was wound down; its delivery toolkit (bots, dashboards, ad playbooks) was kept as St. Pierre's raw material.One business, owned outcomes, better economics — instead of servicing someone else's book.
Late JunFinancial cleanup + runway tracking; stpierre.ai homepage and $1 application funnel live; 30k-contractor prospect list loaded.Survival footing plus a working front door before spending on demand.
Early JulThe delivery core: GoHighLevel workflows, the Messenger bot, content/creative engine (hook library, ad scripts, voiceover standard), first ad packs staged.The product is delivered appointments — the machine that makes them had to exist first.
Mid JulFirst live Meta campaigns at real budget; team.stpierre.ai internal docs + first builder onboarding; tracking/attribution closed end to end; Slack ops channels.Real spend forces real infrastructure: proof, tracking, and documentation.
Late Julsales.stpierre.ai CRM, Rep OS playbook, call scripts; Dan (Level King) onboarded as the first client. Also the first crisis: lead transfers silently died — emergency stops, the message mirror, and the first watchdogs were born.First revenue — and the first proof that silent failure, not lead volume, is the enemy. Most guardrails in this handbook date from incidents in this stretch.
Early AugB2B engine: cold email (Instantly), cold SMS/iMessage rails, DFW foundation-repair campaign, the seven-seat scorecard, command-home dashboard. Offer swept consistent across every surface.One client isn't a business — outbound had to fill the pipeline while delivery ran.
Mid AugHardening sprint (3am-text bug killed, chase fixes, dead jobs revived) + market expansion (IL/IN pages, more markets staged). Then the strategic reset: outbound-first, ruled Aug 17.Inbound content compounds too slowly for the Dec 31 cash target; cold outreach to contractors closes faster.
Late AugThe great B2C audit: all 20 campaigns paused for a weekend teardown. Found 15 of 17 Facebook pages couldn't receive lead forms, stacked silent failures behind stuck homeowners, false success receipts. Creative board shipped; AlphaLift leads recovered.Scaling a leaky machine multiplies the leaks. Pausing spend to fix delivery was cheaper than buying more leads to lose.
Sep 1–3Full end-to-end rails audit → the approved repair SOW (8 root causes, 7 workstreams), ~25 fixes landed; B2C Scoreboard live; SMS overreach mechanically blocked; the 158-lead backlog mapped. And this handbook — the builder hire.The machine's design is proven; its reliability needs a full-time owner. That's you, so Akash can spend 9–5 filling it with clients.

The takeaway for you: almost every rule in this handbook is a scar, not a preference. The deploy gate exists because unapproved deploys shipped. The watchdogs exist because rails died silently. The suppression gates exist because automation over-messaged real homeowners. When a guardrail seems paranoid, assume it's load-bearing.

Current state · Sep 3, 2026

Where things stand right now

You are not inheriting a humming machine — you're inheriting a machine mid-repair, with the diagnosis already done. This is the honest picture from a full audit of every active workstream (Sep 2–3).

The core problem being fixed: leads collected, not delivered

The second problem just fixed: over-messaging

What's live vs paused

The sales-side pivot (context for your workload)

Deprioritized (recommended parks — Akash confirms)

Lanes

Roles & responsibilities

Akash — Sales (9–5)

  • B2B outreach, sales calls, closing, pricing
  • All money movement, invoicing, client contracts
  • Final approval on anything public or client-facing
  • Owns the $100K target — it is never lowered, only backfilled into weekly numbers
  • Client relationships and escalations that need the owner

You — Delivery (the builder)

  • Campaigns live and healthy in every sold market: ads, budgets, creative rotation
  • Lead flow end to end: Messenger bot → text follow-up → qualified appointment request → delivered to the client
  • Client delivery health: each live client at 5+ booked appointments/week, misses diagnosed same day
  • Rails and automations running: watchdogs green, dashboards showing true numbers
  • Client onboarding builds: pages, datasets, bot config, tracking (to Akash's spec)
  • Report status daily without being asked — huddle numbers in the morning, EOD summary at night

Three-bucket rule for every status update: Akash's lane (only he can do it), needs his word (you're blocked on a decision), yours (execute and report). Never send one flat "waiting on you" list — "waiting on me" and "needs my approval" are different lists.

Rules

What always needs Akash's explicit go

Approval is per-action and per-surface. A yes on one deploy is not a yes on the next.

Process

The daily rhythm

WhenWhatWho
06:30Morning huddle page auto-rebuilds from the database (job: scorecard-huddle)Automated
06:45Finance room + B2C scoreboard refresh chain runsAutomated
~08:30Daily huddle: review the huddle page together (15 min, before Akash's sales block)Both
09–17Akash sells. You deliver. Interrupt him only for a genuine fire (leads not flowing, client-visible breakage).Split
19:50EOD job grades today's commitments, writes tomorrow's plan, pushes summary to Telegram (job: scorecard-eod)Automated
EODYour written EOD report in Slack #daily-reportsYou
NightlyWatchdogs, fix-it agent, git snapshot, hygiene jobs run overnightAutomated

The exact huddle time is Akash's call — the page is ready from 6:30, so any slot before his sales block works.

Process

Daily huddle process

The scorecard is the agenda. There is no separate prep doc. The huddle page at rooms.stpierre.ai/huddle is rebuilt every morning at 6:30 from the database and is designed to be readable cold in 60 seconds.

What the page shows

How to run it (15 minutes max)

The Friday version of this is the weekly scorecard at rooms.stpierre.ai/scorecard — this week vs last, with red/amber/green status per metric. Targets live in exactly one place (the scorecard_metrics database table); if a number needs a new target, that row changes — nowhere else.

Process

End-of-day process

Two layers — the automated job, and your report.

The 7:50pm automated job

Every evening eod_report.py runs and:

Your EOD report (Slack #daily-reports)

Short, honest, same shape every day:

The no-orphan rule: no lead ends the day without a next action, and no conversation ends the day uncaptured. That's the bar the shutdown pass has to clear.

Reference

Core KPIs & targets

Two principles above every metric: lead volume is the growth metric (never throttle lead generation to match sales capacity), and inputs are the daily accountability (activities done today, not lagging outcomes, are what get graded daily).

Delivery health

MetricTargetMeaning
Booked appointments / live client / week≥ 5The delivery floor. 0–4 = diagnose same day; it's credit-back risk.
Lead → first response< 60sSpeed-to-lead. The bot answers instantly; the rails keep it that way.
Lead volume per marketUp and to the rightGrowth metric. Sales capacity is never a reason to slow it.

Paid media (B2C, per niche)

Target cost per lead = 0.525% of the niche's average ticket (that's our 10% fee × 50% margin × 10.5% lead-to-job rate). Live values from the database (query niche_economics, never hardcode):

NicheAvg ticketTarget CPL
CL — Concrete Leveling$1,500$10.00 (Akash override)
CF — Concrete Flatwork$7,500$39.38
CS — Crawl Space$10,000$52.50
FR — Foundation Repair$15,000$78.75

Spend-waste guardrails (kill rules)

Weekly targets live in one place only: the scorecard_metrics table, surfaced on the huddle and scorecard pages. If a document and the scorecard disagree, the scorecard wins.

Reference

Current book of business (as of Sep 3)

ClientMarket / NicheStatusLead delivery
Level King Pro (Dan)Hickory Creek, TX · Concrete LevelingPausedText via the CRM rail; Dan wants leads in a group text; portal for updates. Deal: 10% revenue share.
AlphaLift Foundation RepairDallas–Fort Worth, TX · Foundation RepairPausedJob card in DripJobs (their CRM) + client portal; no client-facing texts.
Able ConcreteMinneapolis, MN · Concrete LevelingPausedTexts route to Akash, forwarded by hand.
17 market testsTX/OK/CO/MN + 10 statesParkedPages exist, leads park in the database — no buyer yet. These become clients the moment Akash closes a buyer in that market.

Rules that shape delivery: leads are ours or the client's — never both, never a grey zone. Clients mark lead outcomes in the portal (client.stpierre.ai), which is the source of truth for lead status. Dan is always capitalized. Test markets need 1M+ population; service areas list suburbs, not the core city.

Context

The offer (so delivery matches the promise)

You don't sell, but what you deliver must match what was sold.

Stale-copy warning: some older internal pages (Sales HQ, call cheat sheets) still teach a retired "$8,000 / ten contracts" offer. If a page disagrees with the above, flag it to Akash — don't repeat it, don't fix it silently.

Reference

The systems map

SystemRoleNeed to know
Meta AdsB2C demand. Two ad accounts: concrete leveling + foundation repair.Launched ad sets are immutable — new creative always ships as a new "pack" (new ad set). Every market needs its page connected and its page-scoped dataset before launch or leads vanish.
Messenger botCaptures the homeowner's phone inside Messenger.First line of the welcome message is frozen standard. Quick replies only. 24-hour reply window.
GoHighLevel (GHL)CRM + text automation. All St. Pierre clients share one GHL location.Contact tags follow {market}-{niche}. "Jean" is the B2B bot. Workflow edits go through the internal-API build path, not the browser UI.
iMessage railsBlue-bubble texting. B2B uses the mycrmsim bridge; B2C is on LoopMessage.Apple caps ~50 iMessages/day per line. Replies are visible in GHL but the send trigger is blind — the watchdogs monitor this rail.
DripJobsAlphaLift's CRM — where their job cards land.Cards are created at booking (not at capture), via Zapier + email; the appointment API endpoint is broken server-side. Addresses must be plain ASCII.
n8n / ZapierAutomation glue (queues, drains, handoffs).Editing an n8n workflow is not running it — always verify with a real execution log.
Typeform / CalendlyLead forms (B2C + B2B) and the B2B booking calendar.Booking link: stpierre.ai/demo. Sending a booking link and promising a call cancel each other — do one.
InstantlyB2B cold email.Capped 20–30/day; cold email stays manual — no automated follow-up cadence.
Postgres ("the brain")The single source of truth database: clients, leads, messages, metrics, targets, ledger.Every dashboard reads from here. When a number looks wrong, check the brain before the dashboard.
CloudflareHosts every dashboard, portal, and page (Workers + Pages).All deploys pass the deploy gate first (see guardrails).
SlackTeam comms.Channels: #client-onboarding · #call-ins · #daily-reports · #notes · #documents.

Code workflow: you never work in Akash's local workspace. Product repos use normal team Git — one branch per task, small commits, push often (3–8/day is healthy), PR for review, merge after proof.

Rules

Hard guardrails

These have each been violated at least once and each violation cost real money or trust. They are not preferences.

Reference

Monitoring & escalation

~50 scheduled jobs run on the host Mac. The ones you'll interact with:

WatchdogWatches for
Unanswered-lead pagerAny lead sitting without a response — the speed-to-lead backstop.
mycrmsim watchdog + heartbeatThe iMessage bridge going down (texts silently stop sending).
Message-mirror freshnessConversation data going stale in the database (dashboards lie when this drifts).
Nightly fixer + reconcilerAuto-repairs known failure patterns overnight; reconciles lead/message state.
Ops escalatorEscalates anything the fixers can't handle.
iMessage cap monitorApproaching Apple's ~50/day per-line send cap.

Alert doctrine: fix before paging — an alert that reaches Akash should arrive with the fix already in motion. Before auditing an alert, check the alert register first (most "new" alerts are known). Escalate to Akash mid-day only for: leads not flowing, a client seeing breakage, or money at risk. Everything else goes in the EOD report.

Process

Your first week

Standing bar from day one: nothing breaks silently, nothing needs asking twice, and every number you report traces to a source. Say "I don't know" over guessing — always.