2026-05-06 · DATA ROOM
Realtypilot Ai
Ship Spring Boot APIs at the speed of thought
ELEVATOR PITCH
AI-powered code generation platform that transforms natural language into production-ready Spring Boot microservices in seconds.
VALUE PROPOSITION
10x faster backend development by eliminating boilerplate and automating architecture decisions.
EXPLAINER.md
RealtyPilot AI — Explainer
Concepto
RealtyPilot AI es un co-piloto de inteligencia artificial vertical para el sector inmobiliario. Resuelve el problema de los agentes que dedican 10-15 horas semanales a tareas de redacción repetitiva (descripciones de propiedades, emails de seguimiento, posts para redes sociales) en lugar de cerrar ventas.
El sistema permite a cualquier agente generar contenido de marketing de alta calidad en segundos, con soporte para múltiples tonos (Lujo, Familiar, Moderno, Urgente) y plataformas (portales, email, redes sociales).
Arquitectura
┌─────────────────────────────────────────────────────────────────────┐
│ Cliente (web / móvil / Postman) │
└───────────────────────┬─────────────────────────────────────────────┘
│ HTTPS (JWT Bearer token)
┌───────────────────────▼─────────────────────────────────────────────┐
│ Spring Boot 4.0.4 — Java 25 │
│ │
│ ┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐ │
│ │ AuthController │ │ ContentController │ │GlobalExceptionHnd. │ │
│ └────────┬────────┘ └────────┬─────────┘ └────────────────────┘ │
│ │ │ │
│ ┌────────▼────────┐ ┌────────▼──────────┐ │
│ │ AuthService │ │ RealtyPilotService │ │
│ └────────┬────────┘ └────────┬──────────┘ │
│ │ │ │
│ ┌────────▼────────────────────▼──────────┐ ┌────────────────────┐ │
│ │ Spring Data JPA Repositories │ │ LlmClient (Feign) │ │
│ │ (UserRepository, PropertyProfile…) │ │ → OpenAI API │ │
│ └────────┬───────────────────────────────┘ └────────────────────┘ │
│ │ │
│ ┌────────▼───────────────────────────────────────────────────────┐ │
│ │ H2 (dev in-memory) / PostgreSQL (prod) │ │
│ └────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
Capas
| Capa | Clases | Responsabilidad |
|---|---|---|
| Security | %%INLINE0%%, %%INLINE1%%, UserDetailsServiceImpl | JWT signing/validation, filtro stateless |
| Controller | %%INLINE3%%, %%INLINE4%%, GlobalExceptionHandler | REST API, validación de entrada, RFC 9457 errors |
| Service | %%INLINE6%%, %%INLINE7%% | Lógica de negocio, prompt engineering, quota |
| Client | LlmClient (Feign) | Abstracción HTTP hacia el LLM externo |
| Repository | %%INLINE9%%, %%INLINE10%%, GeneratedContentRepository | Spring Data JPA |
| Model | %%INLINE12%%, %%INLINE13%%, GeneratedContent | Entidades JPA |
| DTO | Records Java 25 | Contratos API inmutables y type-safe |
Endpoints
Auth (público)
| Método | URL | Body | Descripción |
|---|---|---|---|
| %%INLINE15%% | %%INLINE16%% | RegisterRequest | Registro de nuevo agente, devuelve JWT |
| %%INLINE18%% | %%INLINE19%% | LoginRequest | Login, devuelve JWT |
API v1 (requiere Authorization: Bearer <token>)
| Método | URL | Body | Descripción |
|---|---|---|---|
| %%INLINE22%% | %%INLINE23%% | PropertyRequest | Guarda perfil de propiedad reutilizable |
| %%INLINE25%% | %%INLINE26%% | — | Lista propiedades del agente |
| %%INLINE27%% | %%INLINE28%% | GenerateListingRequest | MVP Feature 1 — Genera descripción para portal |
| %%INLINE30%% | %%INLINE31%% | GenerateEmailRequest | MVP Feature 2 — Genera borrador de email |
| %%INLINE33%% | %%INLINE34%% | GenerateSocialPostRequest | MVP Feature 3 — Genera posts Instagram + Facebook |
| %%INLINE36%% | %%INLINE37%% | — | Historial de contenido generado |
Ejemplos de Request
Register:
POST /api/auth/register
{
"email": "agent@realty.com",
"password": "secret123",
"fullName": "María García"
}
Generate Listing (MVP Feature 1 + 4 — tone):
POST /api/v1/listings/generate
Authorization: Bearer <token>
{
"tone": "LUXURY",
"language": "es",
"inlineProperty": {
"title": "Ático en Paseo de Gracia",
"address": "Paseo de Gracia 45, Barcelona",
"propertyType": "penthouse",
"squareMeters": 180.0,
"bedrooms": 3,
"bathrooms": 2,
"parkingSpaces": 1,
"specialFeatures": "terraza privada, vistas 360°, jacuzzi, concierge 24h",
"askingPrice": 2500000,
"currency": "EUR"
}
}
Generate Email (MVP Feature 2):
POST /api/v1/emails/generate
Authorization: Bearer <token>
{
"emailType": "post-visit-follow-up",
"clientName": "Carlos López",
"propertyTitle": "Ático en Paseo de Gracia",
"additionalNotes": "Cliente muy interesado, tiene presupuesto aprobado",
"tone": "MODERN"
}
Generate Social Post (MVP Feature 3):
POST /api/v1/social/generate
Authorization: Bearer <token>
{
"platform": "instagram",
"tone": "FAMILY",
"includeHashtags": true,
"inlineProperty": {
"title": "Chalet familiar en Las Rozas",
"squareMeters": 250.0,
"bedrooms": 4,
"bathrooms": 3,
"specialFeatures": "jardín privado, piscina, colegio a 5 min",
"askingPrice": 650000,
"currency": "EUR"
}
}
MVP Features — Implementación
| Feature | Endpoint | Estado |
|---|---|---|
| Generador de Descripciones de Propiedades | POST /api/v1/listings/generate | ✅ |
| Asistente de Email | POST /api/v1/emails/generate | ✅ |
| Creador de Contenido para Redes Sociales | POST /api/v1/social/generate | ✅ |
| Gestión de Tonos y Estilos | Parámetro tone en todos los endpoints | ✅ |
Prompt Engineering
RealtyPilotService contiene el núcleo de IA:
- System prompt especializado — instrucciones de rol para el LLM con contexto inmobiliario.
- User prompts específicos por feature — incluyen parámetros estructurados de la propiedad,
- Fallback determinista — cuando no hay API key configurada (dev mode), el servicio devuelve
Análisis de Negocio
Problema
- 10-15 h/semana en redacción = ~€300-€600/mes en tiempo perdido por agente.
Propuesta de Valor
- RealtyPilot genera contenido en <5 s. ROI positivo desde el primer día para el agente.
Monetización (Freemium B2B SaaS)
| Plan | Precio | Generaciones/mes | Target |
|---|---|---|---|
| Free | $0 | 10 | Agentes individuales explorando la herramienta |
| Pro | $29/mes | Ilimitadas | Agentes activos con cartera de propiedades |
| Agency | $99/mes | Ilimitadas + multi-usuario | Pequeñas agencias (2-10 personas) |
- CAC objetivo: $50 (PLG — el free tier es el canal de adquisición)
- LTV a 12 meses: $348
- LTV/CAC: ~7x ✅
Barreras de Entrada
- Especialización en terminología y flujos inmobiliarios (moat de dominio)
- Historial generado y perfiles de propiedades (lock-in de datos)
- Integraciones futuras con portales (Idealista, Fotocasa, Rightmove) — sticky SaaS
Stack Tecnológico
| Componente | Tecnología |
|---|---|
| Backend | Spring Boot 4.0.4, Java 25 |
| Seguridad | Spring Security 7, jjwt 0.12.6 |
| Base de datos (dev) | H2 in-memory |
| Base de datos (prod) | PostgreSQL |
| ORM | Spring Data JPA + Hibernate |
| LLM Integration | OpenFeign 4.2.1 → OpenAI API (compatible con cualquier proveedor) |
| Serialización | Jackson 3.x (tools.jackson.*) |
Cómo Ejecutar
Requisitos
- Java 25+
- Maven 3.9+
Dev (H2 in-memory, sin LLM real)
cd solutions/2026-05-06-realtypilot-ai
mvn clean spring-boot:run
La app arranca en http://localhost:8080. H2 Console disponible en http://localhost:8080/h2-console (JDBC URL: %%INLINE50%%, User: %%INLINE51%%, Password: vacío)
Sin API key configurada, todos los endpoints devuelven contenido de demostración funcional.
Con LLM real (OpenAI o compatible)
mvn spring-boot:run \
-Drealtypilot.llm-api-key=sk-... \
-Drealtypilot.llm-model=gpt-4o
Con PostgreSQL (producción)
mvn spring-boot:run \
-Dspring.datasource.url=jdbc:postgresql://localhost:5432/realtypilot \
-Dspring.datasource.username=postgres \
-Dspring.datasource.password=secret \
-Dspring.jpa.hibernate.ddl-auto=update \
-Drealtypilot.jwt-secret=<min-256-bit-secret> \
-Drealtypilot.llm-api-key=sk-...
Flujo de prueba rápida
# 1. Registrar agente
curl -s -X POST http://localhost:8080/api/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"demo@test.com","password":"demo1234","fullName":"Demo Agent"}' | jq .
# 2. Copiar el token de la respuesta, luego:
TOKEN="<token-aqui>"
# 3. Generar descripción de propiedad
curl -s -X POST http://localhost:8080/api/v1/listings/generate \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tone":"LUXURY","language":"es",
"inlineProperty":{
"title":"Penthouse Diagonal Mar","squareMeters":200.0,
"bedrooms":3,"bathrooms":2,"parkingSpaces":2,
"specialFeatures":"pool, sea views, concierge",
"askingPrice":3000000,"currency":"EUR"
}
}' | jq .generatedText
# 4. Ver historial
curl -s http://localhost:8080/api/v1/content/history \
-H "Authorization: Bearer $TOKEN" | jq .
Referencias
MVP FEATURES
- 01Natural language to REST endpoint generator
- 02JPA entity scaffolding
- 03OpenAPI spec auto-generation
- 04Docker Compose export
“The AI that speaks fluent Java”
Start Building Free
Flowforge Ai
82AI-powered code generation platform that transforms natural language into production-ready Spring Boot microservices in seconds.
Insight Pilot Api
82AI-powered code generation platform that transforms natural language into production-ready Spring Boot microservices in seconds.
Finshield Ai Api
82AI-powered code generation platform that transforms natural language into production-ready Spring Boot microservices in seconds.