Underwing · Explainers · August 21, 2026

How products get into ChatGPT: it runs on a feed, not an agents.md file

“How do I get my store recommended by ChatGPT?” is the question I hear most from merchants right now. Search it and you will find a hundred near-identical checklists, and most of them open with the same instruction: drop an agents.md file, or an llms.txt file, at the root of your site and wait to be discovered. I run Elytron Labs and I build Pollen, a layer that prepares a store’s product data for exactly these AI surfaces, so I spend my days inside this plumbing. The text-file advice is not so much wrong as aimed at the wrong target. It answers a question you were not asking.

Because there are two different things a merchant can mean by “show up in ChatGPT,” and they run on two separate pipelines.

Recommended is not the same as cited

When ChatGPT surfaces a row of product cards as a shopper is comparing what to buy, that is a recommendation. When the assistant names your brand inside a written paragraph, that is a citation. They look similar in the chat window, but the machinery behind them is not the same, and the work that earns one does little for the other.

One question, two pipelinesRECOMMENDEDthe shopping cards a shopper comparesFed by your product feedOpenAI feed · Shopify Catalog · Google MerchantCITEDnamed in the written answerFed by crawled web contentpages · reviews · third-party mentionsagents.md / llms.txtA discovery surface: store name, policies, endpoints, the agent flow.Auto-generated on Shopify. Not the ranking lever for either box above.
Two questions merchants blur into one. The product cards and the written mention are fed by different pipes.

Recommendations come from a feed, and both platforms say so

Start with OpenAI’s own commerce documentation. On the key concepts page, the mechanism is stated plainly: “Merchants provide a secure, regularly refreshed feed (CSV or JSON),” and integration “involves sending an initial sample feed for validation, and daily snapshots.” Ranking is driven by feed attributes, not by anything crawled: OpenAI says recommended attributes like “rich media, reviews, and performance signals” improve “ranking, relevance, and user trust.” The document specifies feeds only. There is no mention of a crawler reading a file at your web root.

The product feed spec is even more concrete. You “upload a UTF-8, tab-delimited .txt or .tsv file, or a comma-delimited .csv file,” and every row must carry a fixed set of fields: id, title, description, link, image_link, availability, price, brand, plus an is_eligible_search flag. That is the whole gate. A product with those fields populated and valid can surface; a product missing them is quietly skipped.

What the feed actually needsRequired on every row (OpenAI product spec)products.csv.tsv or JSONidtitledescriptionlinkimage_linkavailabilitypricebrandplus an is_eligible_search flag on each rowComplete and eligibleyour product can surfaceMissing a required fieldfiltered out, silentlyThese are the Google Merchant Center attributes.One clean feed serves Google and ChatGPT both.
The OpenAI product feed, field for field. Populate and validate these, or the product does not appear.

Shopify tells the same story from the other side. Its help documentation states that “Shopify Catalog is the authoritative product data feed to your agentic channels,” and that once a merchant sets their data up, “that data is surfaced everywhere, including ChatGPT, Microsoft Copilot, Google AI Mode, and Gemini” (see ai commerce at scale and the agentic storefronts docs). The pipe that puts your products in the cards is a structured catalog, on both platforms.

So where does agents.md actually fit?

It is real, and on Shopify it is not even something you write by hand. Shopify auto-generates it, and calls “/agents.md … your canonical agent discovery URL, which is the source of truth.” But read the next line in the same document: “The agent discovery files are separate from Shopify Catalog, and they don’t replace any Shopify Catalog capabilities.” That is the platform that ships the file telling you it is not the product-data pipe. Its job is to be an operator’s manual for an agent: store name, policies, endpoints, the cart-to-checkout flow. Useful context. Not a ranking lever.

Which means the common move, hand-authoring an agents.md or llms.txt on a non-Shopify store and expecting to appear in the shopping cards, is doing work that no platform documents as an input to recommendations. It is a signpost, not a shelf.

The Google feed you thought was just for ads

One detail in the OpenAI spec is easy to miss and worth a lot: the ingester “selects appropriate parser (OpenAI or Google-compatible),” and the required fields above are the exact Google Merchant Center product attributes. Your Google product feed is load-bearing twice over. It is also why this week’s Content API sunset mattered beyond ads: a feed that silently stops updating does not just drop you from Google Shopping, it starves the same structured pipe these assistant surfaces read.

What to actually do

If you want to be recommended, the work is unglamorous and it is all in the data:

  • Make the feed complete. Every required field on every product: a real description, a valid image link, price, availability, brand. Empty descriptions and missing images are the most common reasons a product is invisible.
  • Make it eligible. In stock, valid product URL, the eligibility flags set. A feed can be present and still filter most of your catalog out.
  • Make sure it reaches the channel. Shopify Catalog if you are on Shopify; the OpenAI merchant feed and a healthy Google Merchant Center feed if you are not.
  • Then treat agents.md as polish. Fine to have. It will not move you up a shopping result.

Being recommended by ChatGPT is a data-quality job, not a text-file job. If you want to see which of your products are actually feed-ready, the free scan at pollen.elytron.in checks your structured product data the way these pipelines do, no signup required.

Written by Aman, founder of Elytron Labs: Pollen (agent commerce readiness) and DripSync (AI product image sync).

Leave a comment

Your email stays private. First-time comments are held for review.