Festi Market
Teaching AI not to hallucinate
Scaling B2B product content with AI while eliminating hallucinations through iterative prompt engineering. A case study in teaching language models not to invent plausible-sounding lies.
100
Products
8
~5%
After 8 iterations
The final prompt
We are adapting products for a Shopify site into French. Attached are examples of existing product pages. Style: keep it understated, a popcorn machine doesn't revolutionize anything. This is B2B; what the reader wants is reliable information in a professional style.
MANDATORY STEP BEFORE CREATING THE ARTIFACT: Use web_search to verify EVERY festi-market.com URL mentioned in "Related Products" with a site:festi-market.com [term] search. Verify that the URL does not return an error. Never guess or assume a URL exists. Remove the corresponding text, not just the URL.
You can suggest a name with more impact, but do not remove any information.
Then you will adapt the English text into French.
You do not remove any information. You do not add any information.
Never invent a URL for the logo instead of finding the real one!
If for any reason you cannot access the product page, do not invent anything. Just notify me. Also, do not add the ridiculous "optimized description" which is not in the template!
For the bulleted list, do not specify "(bullet points)" in parentheses, it's ridiculous. Furthermore, no emojis. I remind you this is B2B, aimed at professionals. As with the bullet points, no need to specify "product description".
The product page is generated in HTML. Use the example in the instructions, just replace the text content. Verify the validity of links for related products. I remind you that you must not invent anything; this applies to the logo but also to the product price—you don't know how much it will be sold for, so do not include it in the technical specifications table; it is not the usage on sales sites anyway! The table must include dimensions, weight, power supply.
Here is the template: 1/ H1 main title 2/ H2 subtitle just before the description, obviously different from the H1 title. 3/ The brand: (the brand name with redirection ONLY if you find the real URL) 4/ Product description 5/ Main features (H3) 6/ Key strengths (H3) 7/ Related products (H3) with redirection link, for example: all our hot-dog machines / hot-dog packaging. I insist again that you must not invent URLs!!! Search for relevant URLs on the festi market site. If you don't find any, you don't invent any!!!!! 8/ Financing (H3) brief description of benefits with call to action. 9/ Technical Specifications Table (H3) In the technical table, verify that there is always "1 year parts warranty" on the last line. As in the HTML template, power supply and power towards the top of the table, and dimensions and weight at the bottom, just before the warranty.
BEFORE FINALIZING:
Verify that no invented link is present.
Verify that meta tags are provided without titles.
Verify that all links have been tested; do not settle for finding them in search results, that is not enough!!!!
10/ Meta elements (TO BE GIVEN WITHOUT ANY TITLE OR LABEL. DO NOT INCLUDE IN THE ARTIFACT):
First line: the meta-title
Second line: the meta-description highlighting what one gets with the product
Third line: the URL anchor NO other text. No "Meta-title:" or other label.
What we did
Learning from failures, not avoiding them
Product one looked perfect until we spotted the logo URL. The AI had invented logo-neumarker-professional.png—following the site's naming conventions so perfectly it looked real. Product two had emojis scattered throughout B2B documentation. Product seven invented collection links that pointed nowhere. Product twelve shortened technical titles, removing the exact specifications buyers search for.
We didn't try to anticipate every failure upfront. Each mistake became a new rule. "Never invent logo URLs" got added after product one. "Preserve complete titles" came from product twelve. By product fifty, we had eight pages of defense mechanisms built from actual failures, not hypothetical problems. The prompt evolved into a forensic record of how the AI actually misbehaved.
Building verification into generation
The breakthrough was making the AI verify before claiming anything as true. Before any URL went into a product page, it had to search for it. Before listing specs, it had to fetch the manufacturer's page. This wasn't "generate then verify"—it was "verify while generating."
We implemented mandatory web_search for every collection link. The AI couldn't claim /collections/professional-griddles existed without searching site:festi-market.com first. For manufacturer data, web_fetch retrieved actual pages, constraining the AI to documented information rather than plausible guesses. The tradeoff was speed—each product took longer. But we eliminated thirty minutes of post-generation fact-checking per product.
Compound learning through context
All 100 products were generated in a single Claude Project. Each correction—"don't invent URLs," "verify links," "preserve titles"—propagated forward. Pattern recognition emerged across products. When the AI consistently struggled with items lacking certain specs, we added explicit handling: "If the manufacturer page doesn't list dimensions, omit that table row rather than guessing."