Sales OperationsAI Integration

Getting a company's proposal library out of a tool that had no export

Proposal Mirror & AI Document Builder

The challenge

A sales organisation ran a large pipeline where every opportunity linked to a proposal held in a third-party document tool. When a deal closed, a billing record was created downstream that needed the actual proposal document so it could be read automatically and turned into line items.

The document tool offered no export path for this. So proposals were being pulled out by hand, one at a time, on every closed deal — a manual step sitting directly in the revenue process.

What we built

We built an automated mirror. The system walks every workspace in the document tool, retrieves each proposal in both formats, and mirrors it into the company's own storage and billing tracker — triggered automatically when a deal closes, and runnable on demand from an admin console with live log tailing.

A second phase added generation as well as retrieval: a document-builder agent that assembles new proposals from reference material and brand tokens rather than having someone copy an old one. It is multimodal — it reads images attached to a request within enforced size and count bounds — and returns structured proposal data validated against a schema, with an automatic repair retry when the model returns something malformed. Build jobs queue in the database and are drained by a background worker, so a slow generation never blocks the interface.

A small detail worth noting for anyone shipping commercial software: the PDF library was chosen specifically to avoid copyleft licensing obligations on server-side use. Dependency licences were treated as an architectural constraint, not an afterthought.

What was delivered

914

commits across four repositories

163

test files

90 backend, 73 frontend

4

repositories in production

  • Four repositories and 914 commits over three months, live in production across two hosting platforms
  • 163 test files — 90 backend, 73 frontend — with CI running lint, format, browser tests and build on every change
  • Proposals mirrored in both fixed and editable formats, triggered automatically on deal close and on demand
  • Schema-validated generation with automatic repair retry, so malformed model output is corrected rather than surfaced as an error

Every figure above is taken from the delivered system itself. Where we don't have a client-verified business outcome, we report what was built and measured rather than estimating an improvement.

Tech stack

  • Python
  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • Alembic
  • React
  • TypeScript
  • Vite
  • Multimodal LLM inference

Related service

AI Integration Services

Add AI to the software you already run.

Have a similar project?

Tell us your goal and we'll map the fastest path to results.

WhatsApp