Daily build report · Friday 7 August 2026

The website said things we couldn't prove. Now it doesn't.

Six rebuild documents came in and all six went live. Every earnings figure, invented statistic and unpublishable price is off the site. Josh stopped calling himself a receptionist — on the second attempt, for a reason worth remembering. And a question about the phones that had been open since 30 July got answered in two calls.

6documents applied
13pages changed
9releases
43checks passed
0failed

Where this started

Ken asked for the website files. What came back was not what anyone expected.


1

Every page on the site, handed over — and two traps avoided on the way

Ken asked for all the HTML pages from bookedsolidinspector.com so they could be edited elsewhere. There are 25 real pages. They were downloaded live, zipped, and sent with a written list of what each one is and where it lives.

Trap one — a 200 response proves nothing on this site. An unknown address quietly returns the homepage instead of an error, so probing for pages gives false positives. Every candidate was compared by content instead. Six addresses that looked real were the homepage wearing a different name.

Trap two — the live site could have drifted from the repository. Every page was compared byte for byte against our own copy. All 25 matched exactly, so the edits could go straight back in with no reconciling.

25 pages sentno drift
2

What came back was not edited pages — it was six rebuild documents

The zip Ken sent contained six instruction files, not finished HTML: the homepage, three of the four engines, the Google profile and microsites page, and the Home Pro Network. Each one listed exact wording to find and exact wording to replace it with, and said why.

The through-line in all six is the same. The site was making claims we cannot stand behind — invented statistics, earnings projections, a price that was never charged, and one line that could have cost an inspector his trade body membership.

6 documentsall applied

What changed on the site

All of it is live now. Numbers in brackets are the verification checks that passed.


3

The homepage — seven accelerants in two groups, and four claims removed

The big structural change: Google Business Profile and Local Microsites used to be one card. They are now two. That matters commercially — the free Google profile offer for the first 50 subscribers covers the profile and not the microsites. Bundled together, an inspector would reasonably assume he was getting both, and we would be arguing about it after he had paid.

The accelerants are now sorted into two labelled groups: four that go and find people who don't know you exist, and three that get more out of the contacts you already have. They aren't the same kind of thing and the page no longer pretends they are.

Four claims taken out:

What it saidWhy it went
~$91,000/year, 13.4 inspections a monthUnsourced, and doing the arithmetic on the page
"a 25% referral decline — already underway"Nobody has measured any inspector's decline
"Inspector Playbook course ($297 value)"Never sold at that price. The course being included is the point anyway
"400 publications · Four hundred backlinks"Syndicated press links are what search engines discount; a count overstates them

And one argument added that was missing. The page proved agents are leaving, then asked the inspector how he'll fill the hole — but never explained why he can't fill it the old way. It now does: the agents who left were mostly the ones doing one or two deals a year, and those were the only ones he could ever win. The busy ones already have an inspector. His numbers may look fine; what's gone is his ability to add anybody new.

live10 checks
4

Engine 1 — a statistic that meant the opposite of what we said

The page said "78% of consumers say they would leave a review if asked at the right moment." The real finding is that 78% of consumers were asked for a review in the past year. Completely different claim.

Replaced with the correct figure, which is stronger anyway: 83% of people who were asked went on to write one. That makes the case for asking far better than a hypothetical about willingness, and it puts the failure exactly where the page argues it belongs — on the asking.

A second figure was added: 47% of people won't use a business with fewer than 20 reviews. For an inspector sitting on eleven after six years, that is the most uncomfortable line on the page, and he will check his own count while reading it. Both are now credited to BrightLocal on the page itself.

liveboth sourced
5

Engine 2 — we were telling the inspector a number about his own business

The page said "78% of the inspections you book this year will come from a real estate agent referral." For any given reader that may simply be wrong, and being told something untrue about your own business is how you lose someone in a single line. He knows his numbers better than we do.

It now reads as what it actually is — industry data, from a 2026 survey of 429 home inspectors — and explicitly says his own figure might be higher or lower. The argument still lands, because whatever his share is, every one of those jobs was somebody else's decision.

The page also gained the reason this matters more than it used to, which was missing entirely, and the dormant-agent track was reframed against it: saving a relationship used to mean saving one you could have replaced. It doesn't mean that anymore.

live
6

Engine 4 — the objection everybody has, answered out loud

Removed: Josh calling himself an AI receptionist in the published transcript; "worth thousands of dollars a year"; "contact us for current pricing", which contradicted "no sales call required" on the same page; and a duplicate link to Josh sitting beside another one.

Added — the robot objection. "I ain't gonna talk to no robot" was buried inside a call transcript. An inspector who thinks it and doesn't see it addressed assumes we're dodging. It now has its own section, and it ends with the only argument that actually works: don't take our word for it, call him — he's answering right now for a real company and he doesn't know you're testing him.

Added — the part that isn't about money. Every cost on that page was financial. For a one-man shop the real reason he buys is often his life: the phone is a crying baby, and if he's lucky his wife picks it up, and now she's the scheduler and her meal's cold. Also the two-in-the-morning point — your buyers can book a hotel room at 2am, they can't book an inspection, and they notice.

live6 checks
7

Microsites are leased, not sold — and the page now says why

The word "sold" appeared four times about microsites. They are leased. Fixed everywhere.

More importantly, the page used to state the term without the reason: "if you ever leave, the domain stays with Booked Solid Inspector." That is the sentence a burned inspector reads twice. It now explains that leasing means he never pays for the build and never pays to maintain it — and immediately lists everything he does keep: his own website, his reviews, his client list, his agent database. The term stops reading like a catch and starts reading like a service.

The page also now answers a question it was silently avoiding. An inspector who knows a little about search is sitting there thinking isn't this the thing Google penalises? Nobody had said the words. It now names doorway pages directly, agrees Google penalises them, and explains why these aren't that. Answering an unasked objection builds more trust than avoiding it.

live6 checks
8

The Home Pro Network — the line that could have cost an inspector his membership

This was the most serious one. The page closed with "You've been making these referrals for years. It's time to get paid for them."

Getting paid for referrals is the exact thing the inspector trade bodies prohibit. Everything else on the page carefully explained that this is advertising — companies pay for a listing, not for a job — and then the closing line said the opposite. It now reads: "You've been answering that question for years. Now the answer lives on your website."

Every money figure is gone. The $2,490 a month, the $29,880 a year, the $249-per-vendor rate and the three tier prices were earnings projections with no clients behind them. The tiers now differentiate by what the advertiser gets rather than what he pays. The one real story — an inspector who built this by hand and had buyers competing for his firm — stays, because it is true and it is persuasive, but it now carries the plain statement that it is one inspector's result.

"Trusted" is also gone from the vendor descriptions. It is a certification nobody performed.

livestandards risk closed

Two places the documents were out of date

Both were checked rather than assumed. Following either one blindly would have made the site worse.


9

The call recordings had already shipped

The Engine 4 document said to strip the "Real recording — unedited call audio" labels off seven call blocks, "until the audio is live" — the concern being that a visitor sees a duration and expects to hear something.

The audio is live. All seven recordings were checked and every one serves correctly. So the labels are accurate and stripping them would have removed true information from a working player.

The genuinely stale half was the note underneath, which still said "Recordings are being finalized." That is what got fixed. It now tells people they can listen to any call or open the transcript and check exactly what was said — which is what Ken asked for when he saw it.

7 recordings verified
10

The sources page already had two of the three citations

The homepage document listed three citations to add. Two of them — the Wall Street Journal and Moneywise — were already on the page. Only the National Association of REALTORS one was genuinely missing.

That one was added, along with two new sections: BrightLocal for the Engine 1 figures, and the 429-inspector survey for Engine 2. The sources page is at bookedsolidinspector.com/sources and is linked from the homepage footer. It exists so an inspector who doubts a number can check it, and it is deliberately hidden from search.

7 citations3 sections

Things nobody asked for, found on the way


11

Splitting the two accelerants left six pages contradicting the homepage

Six other pages carried a cross-link strip and a menu subtitle still using the tagline the homepage document had explicitly rejected — "pour fuel on a fire that's already burning" — and still calling the two accelerants by their old combined name.

The homepage checks would never have caught this, because they only look at the homepage. All six now carry the approved wording and link to the two accelerants separately.

6 pages
12

A broken column on the newsletter page, and a missing Sources link on eleven pages

The newsletter page had a stray closing tag that ended its "After" column early, so the list spilled out of its box. Nothing to do with today's work — it had been there — but it was a two-character fix in a file already open.

The Sources link was missing from the footer of eleven content pages. Only the homepage had it. Now they all do. Five legal and utility pages use a different footer and were left alone rather than forced.

11 pages1 bug fixed

Josh stopped calling himself a receptionist

It took two attempts, and the reason the first one failed is worth keeping.


13

The website was only half the problem

The Engine 4 document fixed the transcript on the page, but flagged that Josh's own script needed the same change or the next recording would say it again. There was no scripted line — it came from his persona describing him as "the warm, professional AI receptionist."

Changed to "AI scheduler" in both his brains — the phone one and the web chat one — plus an explicit rule about what to say when somebody asks if he's a person. The demo account said the same thing and was fixed too.

both brains
14

Ken called him. He said it anyway.

After deploying, Ken rang GC and asked. Josh answered: "I am an AI receptionist here at GC Home Inspection."

The rule wasn't the problem. The word "receptionist" appeared six times inside Josh's own instructions — three of them comparisons to a human one, one in capital letters, and the new rule buried among them. Telling a model never to use a word its own prompt keeps showing it is not a fair fight.

The lesson, written into the decisions log

A prohibition does not beat priming. If you need a model to stop saying something, take the word out of its instructions — don't add a rule and leave the word in place.

The word is now gone from his instructions entirely. The comparisons say "a person on a front desk." And the rule became a script rather than advice, with the exact sentence including how to name the company — because the failing answer was "receptionist here at GC Home Inspection", the company-naming form the first wording never covered.

Verified on a second live call. He now says: "I'm an AI — I handle the scheduling here at GC Home Inspection. So not a person on the other end. But I can get your inspection booked right now."

verified on a real call

The phones: a question open since 30 July, answered

Not part of the website work. It came up because one section of Engine 4 couldn't be written without it.


15

One section was deliberately not published

The Engine 4 document asked for a section answering "what happens if he goes down?" — and said not to publish a vague reassurance, because a skeptical inspector asks this in the first ten minutes and a hand-wave costs more than silence.

The honest answer today is that the call is lost. The 30 July contingency work found that four separate suppliers can each end a call on their own, that a full outage loses 100% of calls, and that the caller hears the phone pick up and then silence — which is worse than a busy tone, because it looks like the business is broken.

Nothing has been built to fix that yet except a diagnostic tool. So the section was written in full, tagged paragraph by paragraph with what has to be true before each sentence can go live, and held back rather than published.

held — needs Ken
16

Two test calls settled a design question that had been open a week

The 30 July plan needed one confirmation: can a backup assistant at the phone company tell which number the caller dialled? If yes, one backup serves all 100 clients the way Josh does. If no, it's one per client — a hundred sets of instructions drifting apart.

Ken set up the assistant, wired it to our diagnostic, and called. The first attempt failed with a clear reason: the placeholder for the dialled number can't go in a web address, because the brackets aren't legal characters there. Moved elsewhere, it connected fine but the value was dropped entirely.

The second call answered it. With the assistant simply reading the values aloud, it said: "the agent number is +1 941 281 5542, and the caller is +1 281 682 9558." Both correct.

The answer: one backup assistant works

The placeholders work fine in the assistant's instructions — they just don't work in the web address. So the backup reads the dialled number out of its own instructions and hands it on. No hundred assistants, and no extra lookup either.

answered2 calls
17

And a sharp edge found while checking it

Because the number now travels through the model, it can be mis-transcribed. And our system resolves an unrecognised number to GC's Texas brain by default.

That is exactly how a Delaware caller got Chad's prices and weekdays-only hours on 28 July. One wrong digit from the backup would reproduce it.

The rule is now recorded alongside the result: when the backup is built, an unrecognised number must take a message — never fall through to a default client.

rule recorded
18

And then it was fixed, because it was a live bug on its own

Recording the hazard wasn't enough — it was already true of Josh, not just of a backup that doesn't exist yet. So it was fixed the same day.

Our system now tells three cases apart, and only refuses the dangerous one:

SituationWhat happens now
No number at allUnchanged. The web chat and the onboarding preview legitimately have no dialled number
Told explicitly who the client isUnchanged. Trusted
A number was dialled and we can't place itRefuses. Josh takes a message and is explicitly forbidden to quote a price, name a company or offer a time

The call still works — he stays on the phone and takes their details. He just can't hand somebody else's prices to them under the wrong company's name.

One thing that would have broken quietly. The shared test line answered as GC only because unknown numbers defaulted to GC — it worked by accident. Refusing would have taken it down without anyone noticing until a test run failed. It's now written into the map on purpose, which is the same rule the July incident already prescribed.

Nine checks cover it, and they run as part of the normal test suite so nobody can quietly undo it.

shipped9 checks
19

The backup is now specified, not just agreed

With both questions answered, the build is written up: what the backup assistant runs on, the five tools it needs — all of which already exist — the four rules that matter in its instructions, and what the catch-up job has to get right so an outage can't quietly swallow a day of bookings.

The single most important line in it: it must never be built on the same thinking machinery as Josh. The phone company's own model list includes it, and choosing it would mean the backup fails at the exact moment it's needed.

Nothing will point at Chad's or Ted's numbers. It gets built and tested on a spare line, and Ken calls it and judges it before it protects anybody.

spec writtenbuild next

Getting it live


20

A note in our own handbook was out of date, and it would have cost a day

Our internal notes said the Booked Solid site is served as plain files copied onto the server by hand, and that merging changes would not be enough to make them live.

That is no longer true. The server now serves the site directly from the application, which was confirmed by checking what the live site actually reports about itself. So merging was enough — the whole rebuild went live on its own, with no manual copying.

Had that note been trusted, somebody would have gone looking for a folder to copy files into that no longer matters.

14 checks against the live site

What's still open


One decision, and it isn't a build

  1. Where should a failed call ring — for Chad, and for Ted? This is a setting at the phone company, not something we make. It is the single most protective change available because it works even when everything of ours is down. It needs Chad's and Ted's agreement about which number, which is much better asked now than during an outage. The moment it's set, most of the Engine 4 outage section can go live.

Then two builds, both now specified

  1. The backup assistant — scoped to taking a booking, running on machinery different from Josh's so the thing that stopped him doesn't stop it, and taking a message rather than guessing when it can't identify the client. It will be built and tested on a spare number, nowhere near Chad's or Ted's lines, and brought to Ken to call before it protects anybody.
  2. The catch-up job — so calls handled during an outage become real bookings instead of sitting inside the phone company. Without it, an outage looks fine on the phone and quietly loses every job that came in during it.

Both are written up in full — what each runs on, the tools they need (all of which already exist), and the rules they must not break. The groundwork shipped today: unknown numbers now refuse, which had to be true before a backup that reads digits through a language model could be trusted with anybody's prices.

One thing deliberately not done

The Google profile page opens with "You serve a dozen towns." The document suggested reconsidering that figure, since it's illustrative rather than measured. The repeats in the body copy were removed, but the headline was left for Ken to rule on — changing the first thing a visitor reads is his call, not a tidy-up.