2026-06-23 · DATA ROOM
ProposalForge AI
ProposalForge AI: De RFPs complejos a propuestas ganadoras con IA.
ELEVATOR PITCH
ProposalForge AI automatiza la creación de propuestas para equipos de ventas B2B SaaS, transformando RFPs complejos en borradores listos para revisión con la velocidad y precisión de la IA. Con un Health Score del 87% y una escalabilidad del 90%, nuestra solución promete un ahorro masivo de tiempo y un margen de beneficio del 92%.
VALUE PROPOSITION
Somos la herramienta 'best-in-class' para la generación de respuestas RFP asistidas por IA (RAG), ofreciendo una experiencia más simple, rápida y asequible que las suites tradicionales.
EXPLAINER.md
ProposalForge AI — EXPLAINER
Concepto
ProposalForge AI automatiza la respuesta a RFPs (Request for Proposals) para equipos de ventas y preventas en empresas B2B SaaS. El sistema permite cargar documentación interna como base de conocimiento y, ante un nuevo RFP, extrae automáticamente sus preguntas, busca contexto relevante en la base de conocimiento mediante similitud semántica (RAG) y genera borradores de respuesta con IA, que un humano puede revisar y aprobar antes de exportar el documento final.
Arquitectura
┌─────────────────────────────────────────────────────────────┐
│ Spring Boot 4.0.4 / Java 25 │
│ │
│ AuthController ──► UserDetailsServiceImpl │
│ KnowledgeBaseController ──► KnowledgeBaseService │
│ └── LlmClient (Feign) │
│ ProposalController ──► RfpProcessingService │
│ ──► RagService (VirtualThread) │
│ ├── KnowledgeBaseService (embed) │
│ └── LlmClient (generate) │
│ ──► DocumentExportService │
│ │
│ Spring Data JPA ──► H2 (dev) / PostgreSQL (prod) │
│ Spring Security ──► JWT (stateless, multi-tenant) │
└─────────────────────────────────────────────────────────────┘
Capas
| Capa | Paquete | Responsabilidad |
|---|---|---|
| Controller | controller/ | REST endpoints, validación de principal |
| Service | service/ | Lógica de negocio, RAG pipeline, exportación |
| Repository | repository/ | Spring Data JPA interfaces |
| Model | model/ | Entidades JPA (Jakarta Persistence) |
| DTO | dto/ | Java Records — API contract immutable |
| Mapper | mapper/ | MapStruct entity ↔ DTO conversion |
| Client | client/ | OpenFeign declarative HTTP client → LLM API |
| Security | security/ | JWT generation, validation, filter |
| Config | config/ | Security chain, Feign scan, Jackson |
Endpoints
Auth — /api/auth/** (público)
| Método | Ruta | Body | Descripción |
|---|---|---|---|
| %%INLINE10%% | %%INLINE11%% | RegisterRequest | Crea usuario, devuelve JWT |
| %%INLINE13%% | %%INLINE14%% | AuthRequest | Autentifica, devuelve JWT |
Knowledge Base — /api/knowledge-base (requiere JWT)
| Método | Ruta | Descripción |
|---|---|---|
| %%INLINE17%% | %%INLINE18%% | Sube documento (PDF, DOCX, TXT); extrae texto + embedding |
| %%INLINE19%% | %%INLINE20%% | Lista documentos del tenant |
| %%INLINE21%% | %%INLINE22%% | Elimina documento |
Proposals — /api/proposals (requiere JWT)
| Método | Ruta | Descripción |
|---|---|---|
| %%INLINE24%% | %%INLINE25%% | Sube RFP; extrae preguntas via LLM/heurística |
| %%INLINE26%% | %%INLINE27%% | Lista propuestas del tenant |
| %%INLINE28%% | %%INLINE29%% | Detalle de propuesta con preguntas y respuestas |
| %%INLINE30%% | %%INLINE31%% | Dispara pipeline RAG (async, Virtual Thread) → 202 |
| %%INLINE32%% | %%INLINE33%% | Revisa / aprueba respuesta |
| %%INLINE34%% | %%INLINE35%% | Descarga documento final (TXT; DOCX con POI) |
Pipeline RAG (Retrieval-Augmented Generation)
RFP upload
│
▼
RfpProcessingService.analyzeRfp()
├── extractText(file) // UTF-8 o ASCII heurístico
└── extractQuestions(text) // LLM-first → heurística fallback
│
▼ (lista de preguntas → RfpQuestion[PENDING])
│
POST /generate-answers → Thread.ofVirtual().start(...)
│
▼
RagService.generateDraftAnswers() // por cada pregunta:
├── generateEmbeddingCsv(questionText) → POST /v1/embeddings
├── findRelevant(embedding, knowledgeDocs) → cosine similarity
├── buildContext(top-3 docs)
└── generateAnswer(question, context) → POST /v1/chat/completions
│
▼ (RfpQuestion[GENERATED] con draftAnswer + sources)
│
ProposalController.reviewAnswer() // humano edita y aprueba
│
▼ (RfpQuestion[APPROVED])
│
ProposalController.export() // DocumentExportService → byte[]
Multi-tenancy
Cada %%INLINE36%% tiene un %%INLINE37%% (UUID). Todos los repositorios filtran por tenantId para garantizar aislamiento de datos entre empresas. Un usuario puede pertenecer a un tenant existente (invite) o crear uno nuevo al registrarse.
Configuración LLM
# application.yml (añade estas propiedades)
app:
jwt:
secret: "ProposalForgeAI-secret-key-minimum-256-bits-long-enough!!"
expiration-ms: 86400000 # 24h
llm:
api:
url: "https://api.openai.com" # o cualquier endpoint compatible
key: "sk-..." # tu API key
embedding:
model: "text-embedding-ada-002"
chat:
model: "gpt-4o-mini"
Sin API key el sistema opera sin IA: extracción de preguntas por heurística y borradores con mensaje placeholder. Todas las demás funcionalidades siguen operativas.
Vector Search (MVP vs Producción)
| Aspecto | MVP (actual) | Producción |
|---|---|---|
| Almacenamiento | String CSV de doubles en columna TEXT | vector column con PGVector |
| Búsqueda | Cosine similarity en memoria (Java) | <=> operator indexado en PostgreSQL |
| Escalabilidad | Hasta ~500 documentos | Millones de documentos |
| Librería extra | Ninguna | pgvector extension + Spring AI |
Extracción de Documentos (MVP vs Producción)
| Formato | MVP | Producción |
|---|---|---|
| TXT, CSV, JSON | ✅ UTF-8 | ✅ |
| ⚠️ ASCII heurístico | ✅ Apache PDFBox (pdfbox-app) | |
| DOCX, XLSX | ⚠️ ASCII heurístico | ✅ Apache POI (poi-ooxml) |
pom.xml:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.3.0</version>
</dependency>
Modelo de Datos
users
id, email (unique), password (bcrypt), role, tenantId, createdAt
knowledge_documents
id, filename, contentType, extractedText (TEXT), embeddingCsv (TEXT),
userId, tenantId, uploadedAt
proposals
id, title, rfpFilename, status [PROCESSING|READY|EXPORTED],
userId, tenantId, createdAt
rfp_questions
id, proposal_id (FK), questionNumber, questionText (TEXT),
draftAnswer (TEXT), approvedAnswer (TEXT), sources (TEXT), status [PENDING|GENERATED|APPROVED]
Análisis de Negocio
Propuesta de Valor
Los equipos de ventas dedican 20-40 horas por RFP. ProposalForge AI reduce ese tiempo a 2-4 horas enfocadas en revisión y personalización, con una base de conocimiento que mejora con cada propuesta completada.Monetización
- Starter ($299/mes): 5 usuarios, 10 propuestas/mes
- Growth ($799/mes): 20 usuarios, 50 propuestas/mes, exportación DOCX
- Enterprise (custom): usuarios ilimitados, SLA, SSO, on-premise
KPIs del MVP
- Tiempo de respuesta por pregunta: < 30s
- Precisión percibida (draft útil sin edición mayor): target 70%
- Reducción de tiempo por RFP: target 60%
Cómo Ejecutar
Requisitos
- Java 25
- Maven 3.9+
- (Opcional) PostgreSQL con extensión pgvector para producción
Desarrollo (H2 in-memory)
# Compilar
mvn clean compile
# Ejecutar
mvn spring-boot:run
# O con API key configurada
SPRING_APPLICATION_JSON='{"app":{"llm":{"api":{"key":"sk-..."}}}}' mvn spring-boot:run
Flujo de prueba rápido
BASE=http://localhost:8080
# 1. Registrar usuario
curl -X POST $BASE/api/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"user@acme.com","password":"secret123"}'
# → { "token": "eyJ...", "tenantId": "uuid" }
TOKEN="eyJ..." # pegar el token
# 2. Subir documento a la base de conocimiento
curl -X POST $BASE/api/knowledge-base/upload \
-H "Authorization: Bearer $TOKEN" \
-F "file=@propuesta-anterior.txt"
# 3. Subir RFP y extraer preguntas
curl -X POST $BASE/api/proposals/upload \
-H "Authorization: Bearer $TOKEN" \
-F "file=@rfp-cliente.txt" \
-F "title=RFP ACME Corp Q3"
# → { "id": 1, "status": "READY", "questions": [...] }
# 4. Generar borradores con IA (async)
curl -X POST $BASE/api/proposals/1/generate-answers \
-H "Authorization: Bearer $TOKEN"
# → 202 Accepted
# 5. Ver propuesta con borradores
curl $BASE/api/proposals/1 \
-H "Authorization: Bearer $TOKEN"
# 6. Aprobar respuesta
curl -X PUT $BASE/api/proposals/1/questions/1 \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"approvedAnswer":"Nuestra plataforma ofrece..."}'
# 7. Exportar documento final
curl -X POST $BASE/api/proposals/1/export \
-H "Authorization: Bearer $TOKEN" \
-o propuesta-final.txt
Referencias
- Inventive AI — AI Tools for B2B SaaS Revenue Teams
- Spring Boot 4.0 Release Notes
- Spring Security 7 Migration Guide
- JJWT 0.12.x Documentation
- MapStruct 1.6 with Java Records
- OpenAI Embeddings API
- PGVector — PostgreSQL Vector Extension
Análisis FinOps para ProposalForge AI
Estimación de Costos Operativos Mensuales
Para una micro-startup como ProposalForge AI, la clave del éxito FinOps radica en la optimización del uso de los servicios de IA y la infraestructura cloud desde el día uno. Hemos proyectado los siguientes costos operativos mensuales para una fase inicial con aproximadamente 20 clientes activos:
- Consumo de LLM (API de OpenAI): $30/mes
gpt-4-turbo para la generación de borradores de respuestas de alta calidad (mayor costo, pero justificado por el valor).
- Infraestructura Cloud (AWS): $42/mes
t3.small de EC2 (aprox. $15/mes). Suficiente para manejar las cargas de trabajo iniciales de una API REST.
* Base de Datos (PostgreSQL con PGVector): Una instancia db.t3.micro de RDS (aprox. $15/mes). Permite la escalabilidad y la gestión simplificada de la base de datos vectorial.
* Almacenamiento de Documentos (S3): Para la base de conocimiento cargada por los usuarios (aprox. $2/mes).
* Red y Monitoring: Un buffer de $5 para transferencia de datos (egress) y $5 para monitoreo básico y logging (ej. CloudWatch).
- Costo Mensual Total Estimado: $72/mes
Estimación de Ingresos Mensuales
Considerando un modelo de suscripción B2B SaaS por niveles, un precio de entrada de $50/mes por cliente (para un número limitado de usuarios y propuestas) es atractivo para la audiencia objetivo. Asumiendo una fase inicial con 20 clientes, el ingreso mensual estimado sería:
- 20 clientes x $50/mes = $1000/mes
Margen de Beneficio
Con los costos y el ingreso estimados, el margen de beneficio inicial es:
- Ingresos: $1000/mes
- Costos: $72/mes
- Beneficio: $928/mes
Este alto margen de beneficio es típico para productos de software SaaS con bajos costos operativos directos por cliente, especialmente aprovechando la eficiencia de los modelos LLM modernos.
Recomendaciones de Optimización de Costos (FinOps)
Para mantener este margen y escalar de manera eficiente, se sugieren las siguientes optimizaciones:
- Caché de Respuestas LLM: Implementar una capa de caché para las respuestas generadas por la IA, especialmente para preguntas comunes o segmentos de propuestas que se repiten. Esto reducirá significativamente las llamadas a la API de LLM y los costos asociados.
- Optimización Continua de Prompts: Refinar constantemente los prompts enviados a los LLM para ser más concisos y directos, minimizando el número de tokens de entrada y salida sin sacrificar la calidad de las respuestas.
- Evaluación de Modelos LLM: A medida que la startup crece, evaluar la viabilidad de modelos de lenguaje más pequeños o de código abierto para tareas específicas (ej. extracción de preguntas, resumen) que podrían ejecutarse en infraestructura propia, reduciendo la dependencia de APIs externas para volúmenes muy altos.
- Procesamiento por Lotes: Para la ingesta de documentos y la generación de embeddings, implementar un sistema de procesamiento por lotes que se ejecute durante horas de menor demanda. Esto puede optimizar el uso de los recursos de cómputo y las llamadas a la API.
- Optimización de Infraestructura Cloud: Una vez que los patrones de uso sean predecibles, considerar la adquisición de AWS Savings Plans o Reserved Instances para EC2 y RDS. Esto puede ofrecer descuentos significativos sobre los precios 'on-demand'.
- Gestión de Datos: Implementar políticas de retención de datos claras para documentos antiguos o propuestas finalizadas, moviéndolos a almacenamiento de menor costo (ej. S3 Glacier) o eliminándolos si no son necesarios, para reducir los costos de almacenamiento en S3 y PostgreSQL.
- Monitoreo de Costos en Tiempo Real: Configurar alertas de costos en AWS (ej. Budgets) para ser notificado de cualquier gasto anómalo o que exceda los umbrales predefinidos, permitiendo una acción proactiva.
MVP FEATURES
- 01Ingesta de Base de Conocimiento: Permite a los usuarios cargar de forma segura documentos existentes (propuestas anteriores, documentación técnica, cuestionarios de seguridad en DOCX, PDF) para crear una base de conocimiento centralizada.
- 02Análisis de RFP: Sube un nuevo RFP y la plataforma lo analiza automáticamente, extrayendo las preguntas individuales en una interfaz estructurada.
- 03Generación de Borradores con IA: Para cada pregunta extraída, la IA busca en la base de conocimiento y genera un borrador de respuesta coherente y contextualmente relevante, citando las fuentes utilizadas.
- 04Flujo de Revisión y Exportación: Una interfaz de usuario simple para que los humanos revisen, editen y aprueben las respuestas generadas por la IA antes de exportar el documento completo en formato DOCX.
“Transforma RFPs complejos en propuestas ganadoras con la velocidad y precisión de la IA.”
Explora el MVP y la API de ProposalForge AI, y planifiquemos la hoja de ruta para optimizar la UX y el manejo de errores.
LexiGuard AI
87LexiGuard AI revoluciona la creación de contenido para industrias reguladas, permitiendo a equipos de marketing y cumplimiento generar textos conformes al instante y con riesgo cero. Con un sólido Health Score del 87% y una UX del 91%, nuestra solución elimina errores costosos, acelera la agilidad del negocio y asegura auditorías impecables.
BrandVoice AI
84BrandVoice AI permite a equipos de marketing B2B generar contenido hiper-personalizado que se adhiere perfectamente a la voz de su marca, eliminando la edición manual. Con un Health Score del 87% y un margen de beneficio del 88%, nuestra API ofrece calidad y eficiencia probadas. La UX de la API, con un 85%, facilita una integración robusta y consistente.
FlowForge AI
81FlowForge AI empodera a las PYMES, automatizando la extracción de datos y flujos de trabajo de documentos con IA multimodal, liberando a sus equipos de operaciones y finanzas de tareas tediosas. Con una robusta Health Score del 87% y un margen de beneficio del 93%, nuestra solución ofrece un ROI inmediato y una experiencia de usuario sólida.