Implementation & How-To· 5 min read· By The SpideyChat Team

Teaching a Chatbot From PDF Price Lists and Brochures

How to train a chatbot on PDF price lists and brochures: what extracts well, why scanned PDFs fail, how tables break, and how to keep one current version.


A chatbot can only learn from a PDF's text layer. PDFs exported from a word processor or spreadsheet usually extract well, scanned PDFs contain no text at all until you run text recognition on them, and tables or multi-column brochures often lose the link between an item and its price. So test each file before you upload it, check what the bot actually received, and keep exactly one current version in its knowledge.

The mechanics of uploading are in how to upload documents to teach your chatbot. This guide is about quality: why a PDF that looks perfect on screen can teach a bot the wrong thing.

What happens when you upload a PDF

In SpideyChat, open your chatbot's page, choose Upload files and add your PDF. The text is pulled from every page and merged, split into passages, and stored under a source named after the file, such as price-list-2026.pdf. When a visitor asks a question, those passages compete with your web pages and Q&A pairs for the closest match.

Three things follow from that:

  • Only text counts. Photos, logos, icons and anything drawn as a picture are ignored.
  • Layout is flattened. Columns, table borders, colour and position on the page disappear. What's left is a stream of words.
  • A file with almost no text is refused. If the upload yields next to nothing, SpideyChat skips it with "no readable text" rather than storing an empty source.

The crawler doesn't help here either: it learns web pages only and skips links to PDFs. A price list that's only available as a PDF on your site has to be uploaded to be learned.

What extracts well, and what doesn't

PDF type Result Why
Exported from Word, Google Docs or Pages Good Real text, simple reading order
Exported from a spreadsheet Mixed Text is there, but rows can blur together
Designed brochure Mixed Body text works; text inside images is lost
Multi-column layout Mixed Columns can be read across instead of down
Text converted to outlines in a design tool Nothing The letters are shapes, not text
Scanned paper document Nothing The page is a picture
Phone photo saved as PDF Nothing Also a picture

The two-minute test before uploading

Open the PDF in any viewer and try two things.

  1. Search for a price. Press Ctrl+F (Cmd+F on a Mac) and search for a figure you can see on the page. If the viewer can't find it, there's no text layer, and the chatbot won't find it either.
  2. Copy a table into a plain text editor. Select a section of the price table, copy it and paste it into Notepad or TextEdit. The result isn't identical to what the chatbot's extraction produces, but it's a fair preview. If items and prices come out in two separate lists, or columns run into each other, expect the bot to struggle.

If the search fails, the file needs text recognition. Adobe's Acrobat help describes this: a scanned document contains only image data, and the Scan & OCR tool's Recognize Text option creates a searchable text layer. Adobe also recommends scanning at 300 dpi for the best results. Other PDF tools offer the same feature. After recognition, repeat the search test, and spot-check figures, because recognition can misread digits.

Price lists: make every line stand alone

The most common PDF problem in price lists is the table. On the page, your eye follows the row from "Gutter clean, semi-detached" across to "£85". In extracted text, the item names may come out first and the prices later, and the bot has to guess which belongs to which.

Three fixes, from best to simplest:

  • Upload a CSV instead. If the price list comes from a spreadsheet, export it as CSV and upload that. SpideyChat turns each row of a CSV into one line that names every column, for example Service: Gutter clean | Property: Semi-detached | Price: £85, so the item and price stay together. Two exceptions: a CSV with question and answer columns is imported as Q&A pairs, and so is any CSV with exactly two columns, which for a simple item and price list works well.
  • Rewrite the table as lines. One item per line, with the price on the same line: "Gutter clean, semi-detached house: £85". Repeat the currency and the unit on every line.
  • Avoid shorthand. "As above", ditto marks, merged cells and footnote symbols (prices marked with an asterisk explained at the bottom) don't survive extraction. Write the condition into the line.

Brochures: pull the facts out

A brochure's prose usually extracts fine, but its facts are scattered across captions, panels and pictures. If a brochure is your only source for something customers ask about, such as what's included in a package or how long installation takes, copy those facts into a short plain document or use Paste text, and upload or paste that alongside the brochure. Our guide to preparing documents for an AI assistant has a full before-and-after example.

Check what the bot actually received

After uploading, open Manage knowledge on the chatbot's page, click "Show sources" and expand the source with your file's name. Each entry is the extracted text exactly as the bot sees it. Read one or two: are prices next to their items? Is anything garbled? You can edit an entry directly, and the change is used from then on.

Then ask the chatbot three questions that only the PDF answers, including one about a price from the middle of a table.

Keeping versions current

Uploading a new version of a file doesn't replace the old one. Each upload is added as its own source, so after a price change the bot can hold both the 2025 and 2026 lists and quote either. Every time you update a PDF:

  1. Delete the old file's source under Manage knowledge.
  2. Upload the new file, with the date or version in the name, such as price-list-2026-10.pdf.
  3. Ask a price question and confirm the new figure.
  4. Add that question to the chatbot's Test suite with the new price as the expected text, so the next change gets checked too.

Also check your website: if your pages still link to last year's PDF, visitors will read old prices even when the bot gives the right ones.

To see how a chatbot handles your own pricing before you upload anything, try SpideyChat on your website. It reads your public pages in about a minute, so you can compare its answers with your current price list and decide which files it still needs.

Frequently asked questions

Can a chatbot learn from a scanned PDF?
Not until it has a text layer. A scanned PDF is a picture of the page, so there is no text to extract. Run text recognition (OCR) on it first, then upload the recognised version.
Why does my chatbot mix up prices from a PDF table?
Text extraction reads a table as runs of text, and the link between an item and its price on the same row can be lost, especially with merged cells or several columns. A CSV export or a list where every line names the item and its price works better.
Does uploading a new version of a PDF replace the old one?
No. Each upload is added as its own source, named after the file. Delete the old file's source under Manage knowledge before or after uploading the new version, or the bot holds both.
Does the website crawler read PDFs linked from my pages?
No. The SpideyChat crawler learns web pages and skips PDF links, so upload any PDF you want the chatbot to use under Upload files.

Want a 24/7 AI Employee for Your Website?

See how SpideyChat can answer customer questions, capture leads and handle enquiries while your team is offline.

No obligation. We will review your website and show you how SpideyChat could work for your business.

Keep reading