How Agents QA a Partner Local Audit (and Write It to GitHub)

A partner asked for a Quick Audit on a company he is backing. The useful product was not “audit complete.” It was a 20-page PDF in his name, a score that would survive a second agent, and a QA column so the next model cannot shrug and walk off.

20pages, partner-skinned
22honest score / 100 (red)
0GBP listings — checked, not skipped
2reviews to enter that town’s map pack

This is the public half of the job. The internal half is a GitHub note in Local-Service-Spotlight/agent-runtime agent-notes/ — private, so blob URLs 404. Write both. The method page is The Quick Audit. The loop that makes the next run sharper is How meta articles let agents document themselves.

What the partner actually asked

Sean K. Fay (Envision Response) wanted a second set of eyes on Get Found → Get Chosen → Get Booked before his team started. He did not want a call first. He wanted the output, skinned as Envision, prepared in his name, so he could hand it to the owner. That is a white-label constraint, not a vanity constraint. The cover, footer, and palette had to come from Envision’s live site (teal #0FA1B8, ink #181818, lime #8DC63F) — not from Local Service Spotlight orange with “Dennis Yu” in the footer.

Collection is a script. Judgment is not.

Tier 0 ran through Audit Factory --collect-only (DataForSEO + a live HTTP check). No metered model key. The factory returned what it always returns: domain live, native 0–100 rank, spam score, referring domains, and — when it exists — GBP review count. For this business the GBP fields were null. That is a finding, not a collector outage. We proved it a second way: a Maps pack for the town’s money keyword, twenty listings, this company absent, a two-review competitor present.

Then the crawl that scripts still miss unless you fetch every sitemap URL: leftover platform copy on a promotions page, Unsplash photographer names in the gallery, empty LocalBusiness JSON-LD, Squarespace’s default robots.txt blocking GPTBot / ClaudeBot / Google-Extended, a Facebook stub with seven likes, and a brand SERP crowded with same-name operators in other states plus a same-metro namesake in a different trade.

The sequence held. Get Found → Get Chosen → Get Booked is still the order. The amendment was not “embed the ops platform this week.” It was: do not run Get Booked theater on a site Maps cannot see, and take down leftover template pricing before you ask anyone for a review.

QA so the next agent cannot say “done”

We added the checklist to the Quick Audit page itself so it is not trapped in one PDF. Split:

Kind Job If you skip it
Deterministic Hashes, robots.txt, JSON-LD holes, pixel counts, sitemap placeholders, Maps membership, spam sample The PDF is not shippable. Re-run the command.
Judgment City in three seconds, stock vs proof, ads-too-early, partner skin, kindness (what stays confidential) You shipped a crawl dump with a cover.
UNKNOWN PageSpeed quota, Search Console, ops-platform admin Scoring a skipped check as 0 is how audits lie. Write UNKNOWN.

Honesty rules stay in code in the factory: score 0–100, unclaimed Knowledge Panel caps at 79, band from the score. A partner PDF does not get to override that to look nicer.

What we did not put on the public web

The 20-page file names the business, the phone, the leftover template sentences, and the spam hosts. That is for the owner and the partner. This article is the method. If you want the exam run on your shop, use Get my audit. If you want the library of already-published audits, that is the master list.

GitHub is for the next agent

After the PDF and this page, the session writes YYYY-MM-DD-model-slug.md from agent-notes/_TEMPLATE.md, commits that file only, and pushes. Public blob URLs 404 on purpose. The note holds what went wrong, which docs conflicted, and the single next click. Sean’s team — and ours — can copy that shape: do the job, skin it as the partner, file the internal note, publish the method, then send the PDF. Do not hand the owner a paste.

THE DELIVERABLE

The exam, the QA column, and the private GitHub note. Not a status sentence.

Read the Quick Audit method
How agents write it down

Related: Website QA · 15-minute live exam · SEO tree · Industry skins. Internal job note lives in GitHub agent-notes (private).

Dennis Yu
Dennis Yu
Dennis Yu is the CEO of Local Service Spotlight, a platform that amplifies the reputations of contractors and local service businesses using the Content Factory process. He is a former search engine engineer who has spent a billion dollars on Google and Facebook ads for Nike, Quiznos, Ashley Furniture, Red Bull, State Farm, and other brands. Dennis has achieved 25% of his goal of creating a million digital marketing jobs by partnering with universities, professional organizations, and agencies. Through Local Service Spotlight, he teaches the Dollar a Day strategy and Content Factory training to help local service businesses enhance their existing local reputation and make the phone ring. Dennis coaches young adult agency owners serving plumbers, AC technicians, landscapers, roofers, electricians, and believes there should be a standard in measuring local marketing efforts, much like doctors and plumbers must be certified. He has appeared on 353 podcasts with 619 credited episodes — see the full list of his podcast appearances.