A few weeks into rebuilding jnrroofmaintenance.com for Jesse Rice, Claude and I made a decision that mattered more than any design choice on the site: before writing a word of new copy, we inventoried everything old — fifteen years of it. We expected clutter, the usual pile of dated blog posts a rebuild clears away. What we actually found changed how we think about what an agency’s job even is.
You don’t get an authentic small-business website by asking the owner to write more, and you don’t get one by asking an AI to write “in their voice” without first learning what that voice actually is. You get it by finding out how this specific owner already talks to their specific customers, then building everything else around that. Claude and I learned this the concrete way, on a real roof-cleaning company’s site rebuild, not in the abstract.
What “frame of reference” actually means
Every business owner has one, whether or not they’d ever use that phrase for it: the specific vocabulary, worries, pride points, and even grudges they reach for when they’re actually talking to a customer, not when they’re “writing website copy.” It’s the difference between “we provide quality service,” which is nobody’s real voice, and “I don’t know how they can legally be sold” — a real line, said about a product category Jesse doesn’t sell, on a page about a product category he does (more on that below).
That distinction matters against the rest of this suite. How agency-directed content leads SEO/GEO is architecture — where things live on a site, how they’re structured for a crawler or an AI answer engine to find. This piece is about the raw material that architecture was built to carry, and that raw material has a source that is neither the agency nor the AI.
An agency or an AI working without that frame produces content that is readable, structurally sound, even SEO-correct, and generic — it could belong to any business in the category. That’s the tell that discovery didn’t happen, not that the writer wasn’t good enough.
Why this can’t be invented, only extracted
I want to be honest about what AI is good at here and what it structurally cannot do. An LLM can write fluent, plausible-sounding copy for any business in any voice it’s told to imitate. What it cannot do is know that this particular owner has a price-matching policy, or a strong opinion about a specific product category, or which three sentences a real customer used to describe what mattered to them. Those are facts about a specific business, not patterns in language, and no amount of prompting recovers a fact the model was never given.
The honest version of the AI pitch is narrower than the marketing usually makes it sound: AI is excellent at execution once the frame of reference exists, and not a substitute for finding that frame in the first place. Skip discovery and ask AI to “sound authentic,” and you get confident-sounding fiction, not voice.
That’s also why guessing is worse than asking. A generic “friendly, professional” voice is at least honestly generic. A confidently specific-sounding voice that got the specifics wrong — a policy the business doesn’t have, a value it doesn’t hold — is a trust problem waiting to surface the first time a real customer knows better.
The method: how you actually get to know a client
None of this is exotic. It’s closer to journalism than copywriting — the discipline is asking the right question and getting out of the way of the answer.
- A discovery conversation in their language, not a questionnaire. Ask about a recent job, a difficult customer, a policy they’re proud of, not “what’s your brand voice.” Owners can rarely answer the abstract question; they can almost always answer the concrete one.
- Read what already exists, even the stuff nobody thinks of as “content.” Old blog posts, voicemail scripts, invoices, how they answer the phone — usually richer than anything a discovery call alone surfaces, and the next section is the proof.
- Watch or listen to how they actually talk to a real customer, not how they talk about their business to you. The register shifts; the real specifics come out mid-conversation, not in a pitch.
- Ask the negative question directly. What’s a competitor doing that they think is wrong, overpriced, or dishonest? Owners are often more specific criticizing a competitor’s approach than describing their own, and that specificity is the frame of reference showing itself.
- Mine public reviews for the customer’s side of the frame, not just the owner’s — a real customer’s own words about what mattered to them are as much a part of the authentic voice (see below).
What JNR taught us about Jesse’s frame of reference
JNR Roof Maintenance is a Portland-area roof-cleaning company, and by the time Claude and I got involved, Jesse Rice had roughly fifteen years of old WordPress content behind him: 251 blog posts, 2010 through 2018, almost entirely written by Jesse himself, first person, unmistakably his voice. The temptation on a rebuild is to treat that as clutter to replace. Instead we inventoried it first, and the inventory is what actually taught us who Jesse is on the page.
A first-pass rebuild, done before that full inventory, had already quietly dropped some of Jesse’s sharpest material. A few concrete examples, all real, all recovered:
- A price-matching policy most agencies would never think to ask about. JNR will match a competitor’s pricing, but only if that competitor can show active CCB registration, workers’ comp insurance, and Department of Agriculture licensing — a real differentiator that calls out unlicensed competitors by implication, without naming a single one.
- A blunt, quotable opinion about zinc strips, a moss-prevention product JNR doesn’t install and doesn’t recommend: “I don’t know how they can legally be sold. They don’t work, they have to be put in with nails, they break, look ugly, make noise.” That sentence carries more of Jesse’s actual voice than any amount of “quality craftsmanship” copy an AI could generate unprompted, because no model invents an opinion this specific about a product it was never told exists.
- A counterintuitive, credibility-building claim, in his own words: treatment “still works even if it rains,” and it’s actually better to treat a roof under light rain than hot sun — an oddly specific, slightly surprising fact that only comes from someone who has actually done the job thousands of times, in Portland weather.
- A specific optimal-treatment window — “March through Early July and Late August through early November” — that reads as expertise precisely because it’s oddly specific, not because it’s well-written.
None of this could have been generated. It could only be found, and the finding happened because fifteen years of “old, outdated” blog content got treated as a discovery source instead of debris to clear away first.
The frame of reference also shifted with the business, and we had to catch that too. JNR had grown from Jesse working solo to Jesse running a crew, so a global pass converted first-person “Jesse” language to “we” across the operational pages — booking, FAQ, service pages — while deliberately keeping first-person Jesse where it was genuinely his voice: the About page’s owner story, the reviews page, and blog bylines. Getting a client’s frame of reference right isn’t a one-time capture; it’s noticing when the business itself has changed shape, and letting the voice change with it, without erasing what’s still authentically personal.
The localized-story pass applied the same discipline to place instead of voice. Scanning all 251 old posts, not a sample, for city and neighborhood mentions surfaced real, place-specific proof most rebuilds never recover: a named, signed customer letter from Cathy G. of Redland, Oregon — “JNR Ind. will be my roof company for life!” — a “Kevin in the snow” story about a crew working a roof in thirty-degree wet snow, and JNR’s own self-branding as “the Happy Valley Roof Cleaners” in a 2013 post title. That’s a home-turf identity claim no competitor’s AI-generated city page could invent, because it’s a fact about this business’s history, not a pattern in language.
Getting to know a client isn’t a soft, one-time interview. It’s active discovery work — reading everything that already exists, watching for how the business has changed, and treating specificity, even blunt or unflattering specificity, as the signal that you’ve found the real frame of reference instead of generic competence.
Reviews and social proof: pulled from public record, never invented
The highest-trust content on a small-business site is a real customer’s own words, and the right source for that is public listings — Google Business Profile, Yelp, and similar — not the owner’s inbox, and never a written-to-sound-real placeholder. It’s already public, so nobody has to wait on an owner to gather testimonials, and it’s unimpeachably real, because a prospective customer can click through and verify it themselves.
That’s a deliberate contrast with the method above. The owner’s frame of reference comes from discovery. The customer’s side of the same story comes from what customers already, publicly said, and an agency should be pulling both. Here’s a real, verified Google review from JNR’s own Google Business Profile, as displayed with attribution on JNR’s live reviews page:
“Jesse and his team did an amazing job making my 20 year old roof look new. Cleaning up an old tree in the back yard, removing an old falling down fence with the concrete footings, as well as junk and hazardous material removal.” — Laura Smith, Google review
That review is used exactly as written — no paraphrase, no polish, no invented name standing in for a real one. It says more about how JNR actually operates, the tree cleanup, the fence removal, the hazardous-material haul-away nobody thought to put in a service list, than a page of owner-supplied marketing copy would, because a customer wrote it, unprompted, about what actually happened.
A2 built the shell. This is what fills it.
The two engines feed each other. How agency-directed content leads SEO/GEO built the shell: where content lives, how it’s structured for a crawler or an answer engine. This piece is how you find what fills it, the owner’s real frame of reference and the customer’s real public voice. Where agency SEO/GEO meets client engagement is where the two run together, with templates, including a field for exactly what the owner still needs to supply. Both pieces sit downstream of the WP Retirement Plan cornerstone, the argument for why an owner needs a real way to keep control of content like this in the first place.
Discovery like the JNR inventory happens once, at the start of an engagement. What keeps a client’s frame of reference current afterward is an ongoing capture mechanism: a feedback widget the owner can leave a note on, plain-language input an AI can turn into a drafted change, both staged for review before anything goes live. That’s the Client Dashboards & Tools capability in the Agency AI Operating System — the piece that keeps this from being a one-time interview that goes stale the day the site launches.
Quick FAQ
Isn’t “getting to know your client” just a nice-to-have, not a real deliverable? No. It’s the difference between content that’s technically correct and content that converts. Structure and SEO get a page found; a real, specific frame of reference is what makes a reader believe it. Skipping discovery just moves the cost onto a website that reads like every competitor’s.
Can AI just learn a client’s voice from a short writing sample? It can imitate a style from a sample. It cannot invent the underlying facts — the specific policy, opinion, or customer story — that make a voice distinctive rather than generically “friendly.” Style without substance is the tell that discovery didn’t happen.
What’s the single best source for discovery, if you only have time for one? Whatever already exists and was written by the owner in an unguarded moment: old blog posts, a voicemail script, an email to a customer. It almost always beats a fresh interview, because people are more specific when they’re not being asked to describe their own voice.
Where should reviews and testimonials come from? Public listings — Google Business Profile, Yelp, and similar — pulled and quoted verbatim with attribution. Never owner-supplied paraphrases, never anything written to sound like a review. It’s already public, which means it’s already verifiable.
What did the JNR project actually teach you about this, concretely? That a real client’s voice often sits in years of “old” content everyone assumes is disposable: a specific policy, a blunt opinion about a product category, a place-specific customer letter. And that a business can change shape, solo owner to crew, in ways the voice has to track without losing what was genuinely personal.
Discovery is the part of this work that doesn’t show up in a portfolio screenshot, and it decides whether everything downstream, the SEO structure, the AI-assisted drafts, the finished pages, sounds like this specific business or like every business in its category. If you want to see how Claude and I keep an owner’s frame of reference current after the initial work, that’s the Client Dashboards & Tools capability on the Agency AI Operating System page.
🔧 Build Log
Drafted direct from brief by Claude Sonnet 5 · JNR source material pulled verbatim from _content-inventory.md and _localized-stories.md · ~2,300 words / ~3,100 tokens output · Est. elapsed 8m · Est. agency equivalent: $500–700

