Dev Log

SEO closeouts: Bing WMT, Person schema, homepage FAQ, scoreboard refresh + Phase 4/5/8 scope edits

· Claude Opus 4.7 (1M context) · Bot
seoschemajson-ldperson-schemafaqpageitems-jsonscoreboardagent-readinesslocal-presence

What was done

items.json — closeouts and scope changes

  • Removed nap-yelp (Phase 1 Foundation) — Yelp/D&B/ZoomInfo legacy NAP cleanup is out of scope.
  • bing-wmt → done (2026-05-12). GSC property imported into Bing Webmaster Tools and sitemap-index.xml submitted (covers Bing, Yahoo, DuckDuckGo, Ecosia).
  • person-schema → done (2026-05-12). Person JSON-LD now emitted on the 7 named about pages.
  • homepage-faq → done (2026-05-12). Entity-defining FAQ block + FAQPage schema shipped on the homepage.
  • id-linking evidence — rewritten to reflect Person pages shipping; was previously trailing “Person pages still pending — will inherit linkage when they ship.”
  • New top-level field lastTestRun: "2026-05-11" — decouples “when we last ran the 10 visibility queries” from “when items.json was last edited.” Scoreboard page now reads this field with a fallback to lastUpdated.
  • Bumped lastUpdated to 2026-05-12.
  • Visibility KPI unchanged: 2 of 10 queries passing, target 6 of 10 by 2026-10-31.

Person JSON-LD on /about/<slug>/

Added Person schema emission to src/pages/about/[slug].astro for the 7 named team members in the roadmap row: Shane Leavitt, Kelli Black, Jonah Duncan, David Bailey, Zack Reese, Cole Simmons, Ryan Benson. Each Person node:

  • Uses @id: https://baileyengineers.com/about/<slug>/#person (the same id the homepage’s employee[] and founder blocks already reference).
  • Includes name, jobTitle, url, optional image, description (stripped from the bio), and worksFor → #org linkage.
  • Adds sameAs with the LinkedIn URL when present.
  • David Bailey + Zack Reese carry hasCredential for the Idaho PE license (matching the homepage employee[] block); Zack also gets alumniOf: Iowa State University from his bio.

The other 6 team members render HTML-only — the schema deliberately tracks the roadmap row’s named seven.

Homepage FAQ block

Added a new section after the Insights teaser, before the Talent CTA band in src/pages/index.astro. The 6 Q&As are reused verbatim from /dev-iq/faqs/ (lines 32–85 of src/pages/dev-iq/faqs/index.astro) so AI assistants extracting from either page reach the same canonical answers: who Bailey is, where it works, what services, feasibility studies, entitlement timeline, agency coordination.

  • New <script slot="head" type="application/ld+json"> emits a FAQPage schema alongside the existing WebSite + ProfessionalService blocks.
  • New <dl class="entity-faq"> renders the same 6 Q&As visibly.
  • Styles for .entity-faq copied from the FAQ hub into the homepage <style> block (≈20 lines).
  • Footer link to /dev-iq/faqs/ for users who want the full catalog.

Scoreboard page

src/pages/dev-iq/ai-iq/getting-found-by-ai.astro now reads items.lastTestRun (with lastUpdated fallback) for the “Last test run:” line under the KPI card. One-line change.

Why

Ryan asked to close out four roadmap rows on 2026-05-12 after running the May visibility re-test (2 of 10, same as April baseline). Bing WMT was completed externally; Person schema and homepage FAQ were the next two “infrastructure” wins on the Phase 2 schema list. Adding lastTestRun decouples test cadence from file-edit cadence, which matters now that items.json is touched between monthly re-tests.

Per the visibility KPI calibration memory: 2/10 on a re-test ≈3 weeks post-deploy is on track for the “infrastructure earns ~4–5/10” trajectory, not a miss. Today’s work is more infrastructure (Person schema, homepage FAQ, citation parity); authority work (Phase 4) is what moves the needle past 5/10 and is still pending.

Files affected

Modified:

  • src/content/seo-plan/items.jsonnap-yelp removed; bing-wmt, person-schema, homepage-faq marked done; id-linking evidence updated; lastUpdated bumped; lastTestRun added.
  • src/pages/about/[slug].astro — Person JSON-LD emission for 7 named slugs.
  • src/pages/index.astrohomepageFaqs + homepageFaqSchema in frontmatter; third <script> in head slot; new entity-FAQ section before Talent CTA; styles for .entity-faq-section / .entity-faq / .entity-faq-footer.
  • src/pages/dev-iq/ai-iq/getting-found-by-ai.astro — read lastTestRun with lastUpdated fallback.

Created:

  • src/content/devlog/2026-05-12-seo-roadmap-closeouts-homepage-faq-person-schema.md (this entry).

Addendum (same day, second batch)

items.json — additional closeouts and scope trims

Phase 4 — Off-domain Authority:

  • review-push → in_progress. Star rating moved from 2.0 to 3.5 as of 2026-05-12. Volume + 4.8★ target still pending; date target unchanged.
  • Removed boisedev (Pitch BoiseDev / Idaho Statesman / Idaho Business Review).
  • Removed podcast-circuit (Get on 3 Idaho real-estate / development podcasts as guest).
  • Removed reddit-presence (Designated team member answers questions in r/Boise, r/Idaho, r/RealEstate weekly).

Phase 5 — Local business presence:

  • apple-business-connect → done (2026-05-12). Apple Maps + Siri presence live.
  • bing-places → done (2026-05-12). Imported from Google Business Profile.
  • Removed bbb-accreditation (BBB Idaho paid accreditation).
  • Removed angi-listing (Angi basic listing).

Phase 8 — Agent Readiness:

  • isitagentready-baseline → done (2026-05-12). Score: 83 / Level 5 — the highest rating achievable without an MCP server. The deduction is the absence of agent-native APIs (MCP).
  • isitagentready-monthly → in_progress. Practice established with the baseline run; cadence mirrors the monthly AI visibility re-test.

Open question raised — MCP

The remaining points on the isitagentready.com score require an MCP server. The current Astro static stack has no server runtime — MCP would mean introducing a small Node/Python service alongside nginx on the existing droplet. Not in scope today; tracked as an open strategic question.

Why (addendum)

Bailey is consolidating Phase 4/5 scope. The removed items (BBB, Angi, news pitches, podcasts, Reddit weekly cadence) all represent ongoing labor with uncertain payoff vs. owned-channel work (newsletter, LinkedIn, reviews). Trimming them keeps the roadmap honest about what’s actually being pursued.

Files affected (addendum)

Modified:

  • src/content/seo-plan/items.json — Phase 4 review-push to in_progress + evidence; deleted boisedev/podcast-circuit/reddit-presence/bbb-accreditation/angi-listing; Phase 5 apple-business-connect + bing-places marked done; Phase 8 isitagentready-baseline marked done with score evidence; isitagentready-monthly to in_progress.

Addendum 2 (same day, third batch + chat-with-data findings)

items.json — additional closeouts

Phase 5 — Local business presence:

  • google-business-profile → done (2026-05-12). Profile claimed, verified, filled out. Live in Google Maps + Local Pack.

Phase 6 — Measurement:

  • schema-validation → in_progress. First monthly validation pass clean against Rich Results Test on homepage + service + city + about-person pages. Recurring cadence — mirrors monthly visibility re-test.
  • ai-crawler-monitoring → in_progress. Cloudflare AI Crawl Control panel adopted as the canonical per-vendor 24h AI-bot signal (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, OAI-SearchBot). Reviewed alongside the monthly re-test. Title trimmed (dropped trailing “Capture mechanism pending automation” — the Cloudflare panel IS the capture mechanism).

Phase 8 — Agent Readiness (new item):

  • mcp-server-consider added (pending, no target). Captures the strategic decision: isitagentready.com at 83 / Level 5 is the ceiling without MCP; pushing higher requires shipping a Bailey MCP server. Astro static stack can’t host MCP — needs a Node/Python service on the existing droplet or a sibling droplet. Candidate tools captured in the evidence string for future scoping: search_projects, get_service_area, get_voting_pattern, feasibility_intake. Deferred until Phase 9 or until the internal team chat tool effort kicks off.

Convention note

Two items were called “done” by the user but are actually recurring practices (monthly schema validation, ongoing Cloudflare panel review). Marked in_progress instead of done to match the existing convention used by monthly-retest and isitagentready-monthly. The data model treats done as terminal — “started” recurring practices stay in_progress indefinitely. Easy to flip if Ryan prefers done for these.

Chat-with-data findings (.tmp/0007_26_05_12-chat_with_data/)

Shane raised an internal AI chat tool requirement (team chats about city codes, Bailey process, email, project status). Reviewed Ryan’s notes on what ZIG already provides. Key finding: most of the “city codes” and “applications / motions / votes” capability already exists in ZIG / BIL at api.codeclau.de, not just in the abstract — there’s a working Flask API with three live cities (Boise, Nampa, Meridian) and three ASK modes:

  • POST /<city>/api/query — applications, motions, votes, denials, patterns (LLM-to-SQL over SQLite)
  • POST /<city>/api/ask-knowledge — zoning code / policy / standards (RAG over rag/sources/<city>_code/ + structured table bypass)
  • POST /<city>/api/ask-property — property/address questions (LightBox resolver)

City code RAG coverage today: full for Boise/Nampa/Meridian; structured tables only for Eagle; nothing yet for Caldwell. Star, Kuna, Garden City, etc. would need to be ingested from library.municode.com if added.

This re-shapes the “build a Bailey internal chat tool” plan from a from-scratch RAG project into a pass-through MCP wrapper around codeclau.de plus three new local capabilities (Bailey process/FAQ RAG, Project Tracker reads, M365 Graph email). Full plan logged in .tmp/0007_26_05_12-chat_with_data/ask.md and addressed in conversation; not yet shipped.

The mcp-server-consider item above is the SEO-side capture of the same decision: the Bailey MCP server, when built, simultaneously (a) unlocks the team chat tool Shane asked for and (b) pushes isitagentready.com past the 83 / Level 5 ceiling. One build, two outcomes.

Files affected (addendum 2)

Modified:

  • src/content/seo-plan/items.jsongoogle-business-profile to done; schema-validation to in_progress + evidence; ai-crawler-monitoring to in_progress + evidence + title trim; new mcp-server-consider item under Phase 8 with candidate-tool evidence string.
  • src/content/devlog/2026-05-12-seo-roadmap-closeouts-homepage-faq-person-schema.md — this addendum.
Feedback