The problem
Our client ran a support team of 14 people manually answering the same few hundred questions every week — pricing, order status, integration docs — pulled from a knowledge base scattered across a wiki, a help center, and years of Slack threads.
A generic chatbot was rejected early: it hallucinated pricing and policy details often enough that support agreed it was riskier than no bot at all.
Why RAG over fine-tuning
Fine-tuning would have baked a snapshot of the knowledge base into the model weights — expensive to retrain every time pricing changed, and impossible to audit. Retrieval-augmented generation keeps the model frozen and instead retrieves the exact source passages behind every answer, so support could see — and correct — precisely what the bot was reading before it replied.
What we built
- A nightly ingestion job that chunks the wiki, help center, and a curated Slack export into a vector store
- A retrieval layer that pulls the top passages plus their source link for every incoming question
- A generation step that is instructed to answer only from the retrieved passages, and to say so when it cannot
- A feedback loop where a wrong answer flags the source passage for a human to fix, not just the model prompt
The results
The bot now resolves roughly 60% of inbound questions without a human touching them, each answer carries a source link the customer can click, and the client reassigned two support seats to higher-value work — the basis of the €200k/year saving this article is titled after.