---
title: "Enterprise document RAG for manufacturing: case study · Volcanic Minds"
description: "How we made 225 GB of regulations, HSE, safety and operations documents of a manufacturing company searchable in plain language, with role-based access."
url: "https://volcanicminds.com/en/case-studies/enterprise-document-rag"
lang: "en"
type: "second_level_page"
updated: "2026-10-12"
alternate: "https://volcanicminds.com/case-studies/enterprise-document-rag"
summary: "A single archive that a manufacturing company can query in plain language: regulations, HSE documents, safety and operations, 225 GB in all. Whoever searches writes the question as they would ask a colleague, and the agent looks for it in the documents their role allows them to see."
---

# Document RAG for manufacturing

Regulations, HSE procedures, safety and operations documents gathered in a single archive, searchable in plain language and with role-based access, for a manufacturing company with revenue above 30 million euros.

- **225 GB** Documents indexed
- **4** Archives joined
- **23 min** Saved per search
- **4 months** To go-live

## Where we started

*The challenge*

The company's knowledge was all there, split across four archives: 20 GB of HSE documentation in about 30,000 files, 5 GB of safety, 150 GB of operations and another 50 GB of documents. Finding what you needed meant knowing which archive to look in.

One person spent about **three hours a day** on it: some ten searches through regulations, traceability and HSE documents, 15 to 30 minutes each, often to answer an outside request.

- RAG: 5 / 5
- Backend: 4 / 5
- Security: 5 / 5
- UX/UI: 3 / 5
- AI/ML: 4 / 5

## The problem we found

Organising the knowledge and making it usable. Regulations, safety documents and HSE procedures had to reach the people who need them quickly, and only the people allowed to see them.

## The stack

- Node.js
- Fastify
- LanceDB
- Mastra

## How we worked.

1. **One archive** — The four archives, HSE, safety, operations and the rest, flow into a single base in LanceDB. Search is hybrid, BM25 for exact terms such as the number of a regulation and vectors for meaning, so a question finds the document even when it does not use its words.
2. **The question in plain language** — Search is agentic. Whoever searches writes the question in their own words, and the agent queries the archive to answer it.
3. **Who sees what** — Access and roles decide which documents each person can consult, and so which documents the agent can answer them from.
4. **The files, not just the fragments** — Besides the indexed fragments and the vectors, the system keeps the original documents and serves as a file archive when needed.

## Features under review

Focus on features and solutions

## One question, the right documents

*Agentic search*

Whoever searches does not need to know which archive holds a procedure or what the file is called. They write the question, and the agent looks for it in everything their role allows them to see.

## The documents read, and the original files

*Archive*

The archive shows the documents the system has read and indexed. Next to the fragments used for search the original files remain, so the platform also works as a document archive.

## Who sees what

*Access and roles*

Each role sees its own share of the documents. A restricted document never enters the answers given to someone who cannot consult it.

## Your company's knowledge, one question away

Do you have regulations, procedures and manuals scattered across different archives? Tell us how they are organised and we will work out together how to make them searchable.

- [Book a call](https://vms.srl/booking)

## Frequently asked questions

Questions about the project

### How long did it take?

Four months to go-live. In the first phase 20 people use the system; the other users join after phase 1.

### How many documents does it handle?

225 GB in all: 20 GB of HSE documentation in about 30,000 files, 5 GB of safety, 150 GB of operations and 50 GB of other documents.

### Does everyone see every document?

No. Access and roles decide who sees what, and the agent answers each person only with the documents they can consult.

### Does the system keep the files or only the indexed text?

Both. The fragments and the vectors serve the search; the original files stay in the system, which works as an archive when needed.

### What technology is it built on?

On the Volcanic backend, our Node.js framework built on Fastify, with LanceDB for hybrid search, BM25 and vector, and Mastra for the agent.

### Which AI model does it use, and where do the documents go?

Today external providers with zero data retention, which keep nothing of what they receive. With Mastra the model can change without rewriting the system, towards providers such as OpenAI, Gemini or Claude, or internal and self-hosted models on Ollama, vLLM or LM Studio.
