Daily build report · Friday 7 August 2026
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.
Ken asked for the website files. What came back was not what anyone expected.
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.
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.
All of it is live now. Numbers in brackets are the verification checks that passed.
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 said | Why it went |
|---|---|
| ~$91,000/year, 13.4 inspections a month | Unsourced, 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.
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.
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.
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.
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.
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.
Both were checked rather than assumed. Following either one blindly would have made the site worse.
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.
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.
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.
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.
It took two attempts, and the reason the first one failed is worth keeping.
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.
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.
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."
Not part of the website work. It came up because one section of Engine 4 couldn't be written without it.
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.
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 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.
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.
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:
| Situation | What happens now |
|---|---|
| No number at all | Unchanged. The web chat and the onboarding preview legitimately have no dialled number |
| Told explicitly who the client is | Unchanged. Trusted |
| A number was dialled and we can't place it | Refuses. 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.
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.
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.
One decision, and it isn't a build
Then two builds, both now specified
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.
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.