(What we do)

05 What your company knows, one question away and with its source.

We build three capabilities on a single foundation: a search tool that answers with verified citations from your documents, a drafting system that starts from your own material and templates, and natural-language queries against your ERP data. All three share the same index, permissions and activity log.

Internal search, from the folder to the citation

It is a five-stage retrieval-augmented generation (RAG) pipeline. When an answer goes wrong, it is almost always retrieval that has failed: the right chunk was not among those retrieved. That is why the work concentrates on the first four stages, which run on open components inside your environment: indexing and searching incur no API costs.

  1. 01 Structure-aware parsing

    Docling converts PDFs, Word documents, spreadsheets and scans into structured text, preserving headings, reading order, tables and page numbers.

  2. 02 Chunks that respect the document

    Chunking follows the document's structure rather than a fixed length: a clause, a section or a whole table with its header makes up one chunk. Each chunk keeps its source document, page, section, date and original permissions.

  3. 03 An index inside your environment

    Each chunk is embedded with BGE-M3, a multilingual embedding model that maps Spanish, Catalan and English text into the same vector space, and stored with pgvector in a PostgreSQL database of your own, inside your environment. When a document is added or changed, it is parsed and indexed again.

  4. 04 Hybrid search and reranking

    Semantic search finds passages that say the same thing in other words; lexical search finds exact references, such as a product code or the article of a regulation. The candidates from both are merged, and a reranker, bge-reranker-v2-m3, scores them against the question before they reach the model.

  5. 05 An answer with a verified citation

    Every statement carries a reference to the chunk that supports it, and our layer checks programmatically that the chunk exists and contains what is quoted: asking the model to do so is not enough. Without documentary support there is no answer; the system says so and the question is logged.

Drafts built from your material and your templates

Drafting gathers precedents with the same search tool and writes within your company's template, whose structure, mandatory sections and style are stored as versioned configuration. The model returns each section as structured data validated against a JSON Schema, and the draft is delivered in your usual format, with every reused passage marked with its source.

Technical and project reports

Descriptive sections arrive already written; technical data is carried over from the source document with its citation, so that the technical professional can check every value.

Site-visit reports

Voice notes are transcribed with self-hosted Whisper, and the transcript and the photos from the visit are arranged according to your report template.

Tender specifications and bids

The administrative, technical and financial-standing requirements, the deadlines and the award criteria are extracted from the tender specifications, each with the page it comes from, and linked to your most similar past projects. On that basis, the draft of the technical proposal is prepared.

Proposals and replies to customers

They start from earlier proposals, data sheets and the project documentation, in the company's tone. The review by the person who signs off each reply is recorded.

Questions to your ERP data

The model translates the question into an SQL query; our layer validates it and runs it. The figure is always calculated by the database, never by the model.

  1. 01 A documented data catalogue

    We publish views with business names and definitions, such as what counts as a net sale or which stock is available, on top of the ERP tables, or on top of its exports when that is the only route the software offers. The model works solely with that catalogue.

  2. 02 A query validated before it runs

    A deterministic validator checks the generated query: read-only, restricted to the views authorised for the role of the person asking, with row and time limits. It runs under a database user with no write permissions.

  3. 03 The query, alongside the answer

    Each result is shown with the query that produced it and the views it used, so that anyone who can read SQL can check it or reuse it.

  4. 04 Documents and data in a single answer

    Some questions need both sources: the data sheet provides the specifications with their citation, and the ERP the price and stock of the items that meet them. Cross-brand equivalents are proposed with citations from the data sheets, and a person confirms the doubtful ones.

Access, models and controls

One account per person, with the usual permissions

Each person signs in with their company account. The index stores each document's permissions and applies them when filtering the search, before the model receives anything: an answer can only draw on documents the person asking could already open.

The right model for each task

To answer, draft and write queries we currently use models from the Mistral and Claude families, depending on how demanding the task is; if the data must stay in your environment, open models installed on your server, such as Granite, ALIA/Salamandra or EuroLLM. The choice is reviewed every month.

Input and output filters

An input filter, such as Llama Prompt Guard, detects hidden instructions in what is indexed, and an output filter, such as Granite Guardian, checks that the answer is grounded in the retrieved chunks.

Rules of use and training

Written rules set out what may be consulted, with which data, and what is reviewed before a text leaves the company. Hands-on training uses your own documents: how to phrase a question, how to read a citation and when to distrust an answer. Every query is logged with its sources, its cost and who reviewed it.

Results and how they are measured

  • Search time: how long it takes to find a precedent or a piece of data, measured before and after with the same method.
  • Verifiable answers: the share of answers with a verified citation, and the questions without documentary support, which show what your archive is missing.
  • Retrieval quality: a set of real questions from your team, each with its expected document, checks before every change that the right chunk appears among those retrieved.
  • Usable drafts: how much each draft is corrected before it goes out and how long a report or a technical document takes to be ready.
  • Data without intermediaries: how many questions to the ERP are answered without asking someone else for a report.
  • Cost per task: the cost of each answer and of each finished draft, with an alert when it deviates.

Shall we bring your company up to date?

We start with a 30-minute call to understand your case and explain what the diagnostic consists of and what it costs.

Request the diagnostic