Most teams already have the answers. They are sitting in a help centre, a developer hub, a Notion space and a folder of PDFs that nobody opens twice. The problem is not that the content is missing — it is that finding the one paragraph that matters takes six minutes and three tabs. That is the gap you close when you turn documentation into an AI chatbot: the same content, but it answers back.
I have built this pattern several times now, and the honest summary is that the model is the easy part. What decides whether the thing is useful is how you treat the documentation before it ever reaches an LLM. Here is the process I would follow today.
Start by deciding what counts as the source of truth
The first mistake is indexing everything. Someone exports the whole Confluence instance, the chatbot dutifully learns the 2021 onboarding guide, and now it confidently tells new hires to email an address that no longer exists.
Before you write a line of code, make a short list of the sources you are willing to stand behind: the public docs site, the current help centre, maybe two internal runbooks. Everything else is a candidate for later. A small, curated corpus with 90% accuracy beats a giant one with 60% accuracy, because the first one earns trust and the second one loses it in a week.
While you are there, note which documents are access-controlled. If your billing runbook is restricted to the finance team, retrieval has to respect that — permissions cannot be a filter you bolt on after the answer is generated.

Chunk for retrieval, not for reading
Documentation is written to be read top to bottom. Retrieval does not work that way — it pulls fragments. So the way you split your content matters more than almost any other decision.
Fixed-size chunking (every 500 tokens, hard cut) is fast to implement and produces mediocre results, because it slices tables in half and separates a heading from the steps beneath it. Structure-aware chunking — split on headings, keep a list or a table intact, carry the parent heading path into each chunk as context — is a bit more work and noticeably better.
Two things I would treat as non-negotiable:
- Keep the breadcrumb. A chunk that says “click Save” is useless. A chunk that says “Billing > Invoices > Editing a draft > click Save” is answerable.
- Preserve the anchor. Store the URL and the section ID with every chunk, so the answer can link to the exact place, not the page.
Use hybrid retrieval, not vectors alone
Pure vector search is excellent at “how do I stop getting charged twice” matching a page titled “Duplicate billing”. It is unreliable at exact tokens — error codes, SKUs, version numbers, API parameter names. Ask a vector-only system about ERR_4032 and it will happily return something semantically adjacent and wrong.
Keyword search (BM25, or a Solr/Elasticsearch index you may already run) is the opposite: literal and precise, hopeless with paraphrase. Running both and fusing the results — reciprocal rank fusion is a reasonable default — gets you most of the way. I wrote about the trade-offs in more detail in hybrid search in enterprise AI, but the short version is: if you only do one retrieval upgrade, do this one.
Make every answer cite its source
This is the difference between a demo and something a support team will actually put in front of customers. When you turn documentation into an AI chatbot, the value is not that it sounds fluent — it is that a human can verify it in two seconds.
Citations do three jobs at once. They let the reader check the claim. They give your team a debugging trail when an answer is wrong, because you can see which chunk misled the model. And they change user behaviour: people click through to the doc, which means the doc keeps earning its keep instead of being replaced by a black box.
Design the answer format around this from day one. Cite at the paragraph or section level, not the page level, and if retrieval returns nothing above your confidence threshold, say so and hand off. A chatbot that says “I do not have that documented — here is the support form” is more trusted than one that improvises. I went deeper on this in why AI chatbot citations matter more than model choice.
Solve the sync problem before you launch
Every documentation chatbot I have seen decay has decayed the same way: the index was built once, the docs moved on, and three months later the bot is quoting a deprecated endpoint.
Decide up front how content gets refreshed. A nightly crawl is fine for a public docs site. Webhooks on publish are better if your CMS supports them. Either way you need delete propagation — when a page is removed, its chunks have to leave the index, and this is the step teams forget. Add a staleness field and surface the last-indexed date in the citation; it costs almost nothing and it tells you immediately when the pipeline has quietly stopped.
Ship it where people already ask
A widget on the docs site helps the people who already found the docs. The people generating your support load are somewhere else — in WhatsApp, in a Slack channel, in the chat bubble on your pricing page, or on the phone.
The architectural point is that the knowledge base and the channel should be separate concerns. One index, many surfaces. If adding Slack means re-indexing your content, something is wrong with the design.
What good looks like after thirty days
Set the measurement up before launch, because retrofitting it is miserable. The numbers I care about:
- Containment rate — conversations resolved without a human. Expect something in the 30-50% range on a well-documented product, not 90%.
- Citation click-through — if nobody clicks, either the answers are complete enough, or nobody trusts them. Read it alongside thumbs-down rate.
- Unanswered queries — the single most useful output. This is a ranked list of documentation you have not written yet.
- P95 latency — under five seconds end to end, or people go back to the search box.
That last-but-one metric is the quiet win. Teams start these projects wanting deflection and end up with a content roadmap driven by what customers actually ask. Related reading: what ticket deflection numbers really mean.
Build it or buy it
All of the above is buildable. I have built it. It is roughly six to ten weeks for a competent team to get to something trustworthy, and then it is a system you own and maintain — crawlers, embeddings, evaluation harness, permissions, the lot. If retrieval is core to your product, that is time well spent, and my notes on build versus buy lay out when it is.
If it is not core — if you just want the support queue to stop asking the same question a hundred times a day — the calculus changes. That is the reason I built IntelloWork: it points at your existing sources (site, uploaded documents, Solr, APIs), does hybrid retrieval with permission-aware filtering, answers with paragraph-level citations, and deploys the same knowledge base to a web widget, WhatsApp, Slack and an API without re-indexing anything.
Either way, the sequence is the same. Curate the sources, chunk with structure, retrieve hybrid, cite everything, keep it in sync, measure what goes unanswered. Do that and you turn documentation into an AI chatbot people actually use — rather than a demo that impresses in the meeting and quietly gets switched off two months later.


