← Code

ConsultaCCT

A paid web chat (no longer online) that answered IMSS workers' questions about their collective labor agreement, every answer cited to clause, fraction and page, built on a hybrid RAG pipeline with Claude.

The IMSS–SNTSS collective labor agreement is a public 589-page PDF that governs the benefits of all IMSS staff. ConsultaCCT answers questions about it in plain Spanish, and its rule is simple: no exact citation, no answer. When it cannot cite, it says it found nothing.

ConsultaCCT is no longer online. It stays here as a case study, with screenshots of the product while it ran.

ConsultaCCT landing page, light theme: the headline «Tu Contrato Colectivo, respondido en segundos» beside a sample question about vacation days and an answer citing clause 73, fraction II, page 142.
Landing page. The answer in the preview is a static illustration, not a generated one.

What I built, alone, from idea to production with real payments:

  • RAG pipeline: structured ingestion of the contract, Voyage embeddings in pgvector, hybrid vector + Spanish BM25 search fused with RRF, Voyage reranking, out-of-scope detection, Claude Haiku that escalates to Sonnet. If the model leaves out the citation, the system adds it. PII filter before anything is processed.
  • Evaluation: a golden set of 175 curated cases in 8 categories, 21 of them multi-turn, with citation accuracy as a hard gate.
  • Web product: Next.js 15 chat with streaming, pricing, account and history, light and dark themes.
  • Payments: monthly subscription and credit packs with MercadoPago, free-tier caps and per-query cost tracking.
  • Engineering: spec-driven changes with OpenSpec, a 90% coverage gate and mutation testing in CI, separate staging and production.

Building something like this? The CV has the rest.

Download CV rampi63@gmail.com