AI Engineer · AI Systems Architect · Detroit, MI
Search changed under service businesses. People ask an engine, read its summary and pick from the names it gives. I build the systems that make a business one of those names, and I run them on Custom AI Models first, in production, before any client pays for them.
of Google visits with an AI summary ended in a click on a result, against 15% without one.
Pew Research, 2025of those visits clicked a source link inside the AI summary itself.
Pew Research, 2025lower click-through for the top-ranked page when an AI Overview sits above it.
Ahrefs, 2025SEO for Google, GEO for the engines that quote
liveEvery page checked by Python before it ships
liveData first: the delivery pattern from client work
in useA contractor's own site, read the way an engine reads it
buildingNo HVAC client is named on this page, because none is signed yet. What is here is the system, the rules it follows and the client work it grew from.
One article goes through the same stations every time. Python does the checking; a model writes once; I read the test page and approve it. Nothing ships from a chat window.
Search Console: what people really typed, 28 days
one model call, briefed with real searches
Python checks every rule below
I read the test page, then ship it
IndexNow to Bing and the engines it feeds
URL Inspection: is it on Google, and why not
The roadmap I set for connecting Python straight into Google's own data, and where each one stands.
| Project | API | What it does | Status |
|---|---|---|---|
| Search intent miner | Search Console | Pulls the real queries a site appears for and hands the top ones to the writer. | built |
| Index monitor | URL Inspection | Asks Google about every live URL: indexed, canonical chosen, last crawl. Read only, rate-capped, one run at a time. | built |
| Structured data | JSON-LD, gated | Every page carries its schema graph, and the build fails when the schema claims something the page doesn't show. | built |
| Proof-of-value mail | Mail on sign-up | A sign-up gets a reply ranked to the words they wrote. The personal site audit comes with layer 04. | in part |
| Local signals | Business Profile | Each new article summarised as a profile update with a link back. | next |
The M&A Supply Dealer Training Hub is the pattern I bring to a service business: take the four spreadsheets and the paper sign-up a company actually runs on, turn them into one data model, then put retrieval and an assistant on top. A dealer network, a wholesale counter and a contractor's service board share that shape.
what the company really runs on
clean, joined, owned
RAG over their own records
registration, follow-ups, reports
plain-language access to the data
The rules every page is written to, word for word from the file the writer reads last. Lines marked law are checked in Python and a broken one throws the draft away. Open any rule.
https://customaimodels.com. Never write www. anywhere./articles/<slug>/. Never a full customaimodels.com URL in the body.answer: 40 to 70 words. It answers the headline's question in plain words, as if it were the only paragraph an engine lifts. No "In this article", no "we will explore". Starts with the claim.h2s are questions, ending in ?, phrased the way an operator would type them ("Why does RAG fail on spreadsheet data?"). The others keep his voice and one search term.h1 (the headline), each section owns its h2. Inside a section's html only h3, then h4 under it -- never h1/h2, never a skipped level.<ul> list where the content is a list (steps, failure points, checks). At least one per article.<p> of 40 to 120 words that answers its heading with no context around it.<p> over 150 words. Engines cut long passages mid-thought; split it.answer is plain words a voice assistant can read aloud: no tags, no links, and it starts with the subject ("Custom AI Models…", "RAG on spreadsheets…"), never "It", "This", "We".<table> with <th> headers. Definitions go in a <dl> (<dt> term, <dd> meaning). Steps in order go in an <ol>. Engines quote these structures whole.faq: 3 to 5 items, each {"q": "...?", "a": "..."}. Each a is 30 to 80 words, answers the question on its own, and adds something the sections did not say word for word.Written for Custom AI Models first. The same file guides every client site we build.