ChatGPT Rebuilt Its Search: Markdown Writers' Guide 2026
ChatGPT swapped its search fan-out JSON for a pipe-delimited query language in four days. Here is what the new format means for Markdown writers, and how to keep your content inside the windows it reads.
On August 16, when ChatGPT ran a web search, the tool call was JSON. A researcher watching his own browser traffic recorded this:
{"system1_search_query":[{"q":"site:intercom.com Fin AI Agent pricing 2026"}]}
Four days later, on August 20, the same question produced this:
fast|Intercom Fin AI agent pricing 2026 live chat support|30|intercom.com
fast|Gorgias AI Agent pricing 2026 customer support|30|gorgias.com
fast|Zendesk AI agents pricing 2026|30|zendesk.com
fast|best AI live chat support Intercom Gorgias Zendesk Ada Tidio Crisp reddit|365|reddit.com
length|long
Somewhere in those days, OpenAI replaced the JSON with a compact query language of its own. The search_queries metadata field, the field analytics tools parsed, is gone entirely. Suganthan Mohanadasan read the new format across eight questions for Search Engine Journal and mapped what the language can say. The findings matter to anyone who publishes content and wants it returned by ChatGPT. This guide translates those findings into a Markdown writing workflow.
The new language, decoded
A tool call is now a block of lines, one search per line, with fields separated by pipes. The repeating pattern is a call type, a query, a number, and sometimes a domain:
fast|NVIDIA latest earnings guidance...|90|investor.nvidia.com
fast is the call type, the successor to the whole old fan-out. The query reads like the old ones, with brand names the model wrote itself, a year, and an intent word like pricing. What is new is the number and the domain, because the old format had nowhere to put them. Each block closes with a directive line, length|long, length|medium, or length|short, an instruction for how much text to bring back per result.
If that reading is right, most searches pull a bounded excerpt of your page rather than the whole page. That is the single most important implication for writers: the sentence that answers the question needs to sit where an excerpt starts.
Idea 1: every line is a search, and your answer must lead the excerpt
Because ChatGPT requests a bounded excerpt and then decides whether the answer is in it, a buried answer is an invisible answer. The classic Markdown structure that survives this is the direct-answer opening:
# Zendesk AI agents pricing 2026
Zendesk AI agents start at $50 per agent per month on the Professional
plan, billed annually, with a 14-day free trial.
Pricing by plan:
- Starter: $19/agent/month, ...
The first sentence answers the query. The list gives ChatGPT structured facts to pull into its answer. The headings give the model and any reader a map. That is the shape of content an excerpt retriever can work with, and it is the shape Markdown makes natural.
Idea 2: the freshness window decides whether you are even in the pool
Across the eight questions, the number in the third field varied wildly. A stock price got a 2-day window. Football results got 7. Commercial product research got 30. Earnings guidance got 90. Reddit threads got 365, and on a local query, 3,650 days, a decade.
The number looks like a recency window in days, matched to how fast the answer goes stale. The author notes he has not seen a spec for this, so it is an informed interpretation rather than a documented contract, but the commercial pattern is consistent: every brand probe on a buying question ran with a 30-day window.
For a Markdown writer the takeaway is concrete. A pricing or comparison page that has not changed in a month competes from outside the default window on exactly the queries where brands get compared. The fix is to update the pages that answer buying questions on a cycle, with real changes and visible dates. A page that shows when it was last updated, and that demonstrably changed, stays inside the window.
Idea 3: search is a set of verticals, and your content type picks the vertical
The call types captured so far go beyond web search. fast is web search. product is a catalogue lookup that fires on physical goods, with product names semicolon-separated, lining up with the product cards and merchant offers. business is a places lookup that takes a location and verifies venues. image is image search. genui_run calls a widget with typed arguments, returning interface rather than pages.
For most content writers, the relevant vertical is fast, web search. That is where your article competes. But knowing the catalogue and widget verticals exist matters because it tells you which of your rankings still offer a citation to win at all.
Idea 4: the domain slot means ChatGPT visits sites it already knows
Until this week, when ChatGPT wanted to search one specific website, it wrote site:intercom.com in front of the query. The new format has a dedicated slot for it. Visiting the website of a company it just named is now a standard option on every search line, and the model fills the slot from whatever domain it already links to the brand.
That is a double-edged sword. Brand names in the queries are the competitive set ChatGPT already holds for your category, and the domains in the slots are the sites it intends to visit. But if the domain in its memory is wrong or stale, the probe searches the wrong place and wastes one of the model's searches. The article documents exactly this: on the query "best llm visibility tool and what does each one cost," the model wrote site:profound.ai, but the company runs tryprofound.com. The probe returned zero pages; the brand survived only because a broad discovery search found the right domain.
Rebrands, migrations, and country domains are the cases that produce a wrong slot, because the model fills it from memory and memory lags. Check the domain ChatGPT believes you run, and if a wrong slot appears on your own captures, make your real domain the one the model associates with your brand, on your about page, your footer, your structured data, everywhere.
Idea 5: some answers are becoming widgets, with no citation to win
The genui_run lines do not return pages; they return interface. A stock chart appeared as a reference named stock_chart pointing at a widget OpenAI renders itself. A football schedule cited no fixtures page. A map widget with pins wired to the businesses the places lookup returned appeared in a coffee answer.
For sports, stocks, places, and presumably more, whole classes of query are moving to surfaces where the citation game does not exist. There is no tactic for winning inside a widget, because there is nothing in one to win. What you can do is run the queries you rank for, note which come back with a widget where the answer used to be, and stop counting citation opportunities on answer types that no longer offer any.
The Reddit situation: opinion is bulk-fetched, then not credited
One capture is worth describing because it changed how ChatGPT consumes forums. On a live-chat question, the model wrote a line pointing Reddit at its own shortlist: best AI live chat support Intercom Gorgias Zendesk Ada Tidio Crisp reddit|365|reddit.com. It did not ask Reddit who the good tools are. It asked Reddit what people say about the six tools the model had already picked.
What came back is the striking part. Eighty-four of the 221 entries in that conversation's retrieval pool were Reddit threads, more than from any other source, and the answer went out with every citation bound to vendor pages. Zero of the 84 Reddit snippets got credited in the one conversation checked line by line.
The connection to Markdown writing is indirect but real. If forum voices are consumed as opinion but cited as vendor pages, then the first-party page you control, the source of truth you publish yourself, is the citation that actually surfaces. A structured, dated, agent-readable page beats scattered third-party mentions that are pulled but never linked. Your own site is the citation ChatGPT gives credit to, so it is the page worth making clean.
A Markdown workflow for the new query language
Put the findings together and a practical checklist emerges for any content page you want ChatGPT to answer from:
- Lead with the answer. Front-load the direct answer in the first sentence so a bounded excerpt returns it.
- Refresh inside the window. Update pricing and comparison pages at least monthly, with visible change dates, so you stay inside the 30-day default window.
- Add a clear last-updated date. A versioned, dated page signals freshness both to the retriever and to human readers.
- Use headings and lists. Real h2/h3 structure and unordered lists are what an excerpt retriever can parse into bullet answers.
- Own your domain slot. Keep your brand's canonical domain consistent across pages, structured data, and profiles so ChatGPT's memory points at the site you actually run.
- Know which queries crossed over to widgets. Stop optimizing for answer types with no citation surface and focus on the web-search vertical where your article still competes.
Every item on that list is easier when the source of truth is Markdown. Markdown enforces the direct-answer opening, the clean heading hierarchy, the dated frontmatter, and the structured list. And because ChatGPT now pulls bounded excerpts, the discipline of clear, front-loaded Markdown is exactly what keeps your page inside the excerpt.
Publishing Markdown to the platforms (while keeping it AI-readable)
The nuance is that most platforms still do not take Markdown. LinkedIn wants rich text, or a plain paste that drops all formatting. X Articles wants formatted rich text. Medium and Notion import Markdown but rarely the way you wrote it. If you keep your publishing source in Markdown but paste the raw Markdown into LinkedIn, you lose the headings, bold, lists, and links that made the content readable. That is where a Markdown-to-rich-text step fits.
Here is the workflow that keeps both worlds:
- Write the source in Markdown. Front-loaded answers, clear headings, dated, versioned. This is your AI-search source of truth.
- Convert with md2rich. Paste the Markdown into md2rich.com. The converter runs entirely in your browser, zero upload, and turns the Markdown into the real rich text a platform understands.
- Paste the rich text into LinkedIn, X Articles, Medium, or Notion. Headings stay headings, bold stays bold, lists stay lists, links stay links.
- Keep the Markdown as the canonical copy. Your published posts point back at a clean, dated Markdown version that AI search can excerpt.
This is the write-once-publish-anywhere model, with a fresh reason behind it. The Markdown is not just your editor-friendly source; it is the format ChatGPT's excerpt retriever reads cleanest. The rich text is what the platform's editor renders correctly. md2rich is the bridge between the two, and the whole conversion stays on your machine.
A worked example
You publish a comparison page for live-chat agents. Under the old search, a buried answer still had a chance. Under the new one, the summary matters. Your Markdown opens like this:
# Best AI live chat software 2026
Intercom, Gorgias, and Zendesk lead the AI live chat market in 2026.
Prices range from $15/agent/month for Zendesk AI agents to $39/seat
for Intercom Fin, and all three offer a free trial.
- Zendesk AI agents: $50/agent/month, Professional plan
- Intercom Fin AI agent: $39/seat/month, Fin plan
- Gorgias: $10/agent/month base plus AI on top
Last updated: August 26, 2026.
The opening sentence answers the commercial query. The list gives ChatGPT three structured pricing facts to pull. The visible date keeps the page inside the freshness window. Convert that same Markdown with md2rich and paste it into LinkedIn, X Articles, or Medium, and the reader-facing copy keeps every heading and bullet while the source stays clean, dated Markdown.
Check your own captures
The article closes with a two-minute check anyone can run. Open ChatGPT in Chrome with DevTools on the Network tab, ask the commercial question your buyers ask, filter for the conversation payload, and search inside that response for fast|. Read the lines and look for three things: whether your brand is in the queries, whether your domain is in the slot, and what window your category runs on.
That check is manual, and it gets old on the third answer. The broader point for a content operation is to keep dated copies of everything. What was true about the search format on a Sunday was gone by Thursday. The same discipline applies to your content: versioned, dated, front-loaded Markdown survives whatever the retriever changes next.
FAQ
Do I need to rewrite all my content? No. The core change is structural. Lead with the answer, keep pricing current with visible dates, use clean headings and lists, and keep your domain slot consistent. Those are evergreen writing habits that now map directly to how the retriever works.
Does this only affect ChatGPT? The pipe format is ChatGPT-specific, but the underlying pressures, freshness windows, bounded excerpts, and first-party-citation bias, are shared by most answer engines. Writing clean, dated Markdown is the portable strategy.
Is the freshness window a confirmed specification? No. The author states plainly it is his interpretation of observed browser traffic with a single ChatGPT Plus account. Treat the numbers as directional, not contractual, and the advice, keep pages current, as safe either way.
Why does md2rich fit this workflow? Because md2rich keeps Markdown as your AI-readable source of truth while producing the rich text your target platform renders. You do not have to choose between agent-friendly Markdown and human-friendly rich text; the converter gives you both from one file.
Try md2rich. Paste Markdown, copy rich text. Client-side, no upload, works in the browser.
Open the md2rich editor →Filed under: md2rich Blog. Written by the md2rich team (about.me/jasonxmai).