Ir al contenido

Pregunta central: ¿Puede TalentBricks convertirse en LMS corporativo para empresas que necesitan entrenamientos comerciales a la medida?

Respuesta:SÍ - Es altamente viable

AspectoEvaluación
Viabilidad técnica✅ 90% del código ya existe - solo falta multi-tenancy
Time to market✅ MVP en 4-6 semanas
Fit producto-mercado✅ Necesidad real validable (caso Talento Para Ti)
Ventaja competitiva✅ Híbrido (custom + público), nicho (Data/AI), LATAM
Modelo de negocio✅ SaaS B2B (ARR predecible, CAC recuperable)
Riesgo técnico🟡 Medio (multi-tenancy bien diseñada = crítico)
Riesgo de mercado🟡 Medio (competencia establecida, pero diferenciados)

Recomendación: Proceder con validación comercial (2-3 entrevistas) → Landing /teams → MVP Fase 1 si hay interés confirmado.

Inversión inicial: 4-6 semanas dev + $2-5k marketing → Potencial: $144k ARR en 12 meses (conservador)


Las empresas necesitan plataformas para:

  • Entrenamientos comerciales a la medida
  • Capacitación de vendedores sobre productos
  • Evaluación de conocimiento (quizzes)
  • Tracking de progreso por empleado/equipo
  • Certificación de entrenamiento completado

Ejemplo de uso: Que Laura y Winny aprendan qué vende Talento, con quizzes para verificar conocimiento.


Lo que YA tenemos (90% del código necesario):

Sección titulada «Lo que YA tenemos (90% del código necesario):»
FeatureEstadoNotas
Sistema de cursos✅ CompletoCourse/Lesson con videos
Quizzes y evaluación✅ CompletoImplementado Feb 2026
Tracking de progreso✅ CompletoLessonProgress por usuario
Certificados✅ CompletoCertificate con verificación
Sistema de usuarios✅ CompletoAuth completo (email/Google/GitHub)
Inscripción a cursos✅ CompletoEnrollment model
Admin dashboard✅ FuncionalGestión de cursos y usuarios
Video hosting✅ CompletoYouTube (dev) / S3+CloudFront (prod)
Pagos✅ CompletoStripe (individual y subscripciones)
i18n✅ CompletoES/EN
FeaturePrioridadEsfuerzoNotas
Multi-tenancy (Organizations)🔴 CríticoAltoNuevo modelo Organization/Team
Roles granulares🔴 CríticoMedioAdmin empresa, manager, empleado
Cursos privados por org🔴 CríticoBajoFlag organizationId en Course
Dashboard de managers🟡 AltaAltoVer progreso del equipo
Analytics por org/equipo🟡 AltaMedioReportes de completación
Asignación forzosa🟡 AltaMedioCursos obligatorios (compliance)
SSO/SAML🟢 MediaAltoSolo para empresas grandes (100+)
Pricing por seats🟡 AltaBajoStripe subscriptions ajustados
Bulk user import🟢 MediaBajoCSV upload de empleados

Opción A: TalentBricks con plan “Teams/Enterprise” ⭐ RECOMENDADO

Sección titulada «Opción A: TalentBricks con plan “Teams/Enterprise” ⭐ RECOMENDADO»

Pros:

  • ✅ Aprovecha el 90% del código existente
  • ✅ Un solo codebase (menos mantenimiento)
  • ✅ Sinergias B2C ↔ B2B (empleados toman cursos personales)
  • ✅ Lanzamiento rápido (MVP en 4-6 semanas)
  • ✅ Validación de mercado sin inversión grande
  • ✅ SEO y brand awareness ya construido

Contras:

  • ⚠️ Posicionamiento dual (requiere messaging claro)
  • ⚠️ UI debe servir a dos audiencias (pero manejable con roles)

Estrategia de marca:

  • Homepage: sección “For Teams” + “For Individuals”
  • Pricing: “Individual” / “Teams” / “Enterprise” (como GitHub, Notion, etc.)
  • URL: /teams para landing B2B

Opción B: Marca separada (ej: “TalentBricks Enterprise”)

Sección titulada «Opción B: Marca separada (ej: “TalentBricks Enterprise”)»

Pros:

  • ✅ Posicionamiento B2B puro
  • ✅ UI/UX especializada

Contras:

  • ❌ Dos sitios web (2x esfuerzo marketing)
  • ❌ No aprovecha SEO/tráfico actual
  • ❌ Más tiempo para lanzar
  • ❌ Más complejo de mantener

🏗️ Arquitectura del Sistema (Big Picture)

Sección titulada «🏗️ Arquitectura del Sistema (Big Picture)»
┌─────────────────────────────────────────────────────────────────┐
│ MODELO B2C (ACTUAL) │
│ │
│ User ─────< Enrollment >───── Course ────< Lesson │
│ │ │ │
│ └──< LessonProgress >──────────┘ │
│ └──< Certificate >─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
AGREGAR CAPA B2B
┌─────────────────────────────────────────────────────────────────┐
│ MODELO B2B (NUEVO) │
│ │
│ Organization │
│ ├──< OrganizationMember >────┬─ User (existente) │
│ │ │ │
│ ├──< Team >─────┬ │
│ │ │ │
│ │ └──< TeamMember >───┘ │
│ │ │
│ └──< Course (custom) >────< Lesson │
│ │
│ TeamCourseAssignment (conecta Team con Course) │
│ ├── isRequired (obligatorio?) │
│ └── dueDate (fecha límite) │
│ │
│ Enrollment (modificado) │
│ ├── organizationId (nuevo) │
│ ├── assignedByTeam (nuevo) │
│ └── dueDate (nuevo) │
│ │
└─────────────────────────────────────────────────────────────────┘
1. Admin asigna "Curso X" a "Equipo Ventas" (10 miembros)
2. Sistema crea TeamCourseAssignment
├─ teamId: ventas
├─ courseId: X
├─ isRequired: true
└─ dueDate: 2026-03-15
3. Sistema auto-crea 10 x Enrollment (uno por miembro)
├─ userId: [cada miembro del equipo]
├─ courseId: X
├─ organizationId: empresa123
├─ assignedByTeam: true
└─ dueDate: 2026-03-15
4. Sistema envía emails de notificación
5. Empleados ven curso en "Mis Cursos > Asignados por mi empresa"
┌────────────────────────────────────────────────────────────┐
│ Rol: OWNER (dueño de la organización) │
│ ✅ Gestionar billing y subscripción │
│ ✅ Invitar/remover miembros │
│ ✅ Cambiar roles (incluido crear otros OWNERs) │
│ ✅ Crear/editar/eliminar teams │
│ ✅ Crear cursos custom │
│ ✅ Ver analytics de toda la org │
│ ✅ Configurar SSO │
└────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│ Rol: ADMIN (administrador) │
│ ✅ Invitar/remover miembros │
│ ✅ Crear/editar teams │
│ ✅ Crear cursos custom │
│ ✅ Ver analytics de toda la org │
│ ❌ No puede cambiar roles │
│ ❌ No puede gestionar billing │
└────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│ Rol: MANAGER (líder de equipo) │
│ ✅ Ver progreso de SU equipo │
│ ✅ Asignar cursos a SU equipo │
│ ✅ Enviar recordatorios a SU equipo │
│ ❌ No puede ver otros equipos │
│ ❌ No puede cambiar roles │
│ ❌ No puede crear cursos custom │
└────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│ Rol: MEMBER (empleado) │
│ ✅ Ver sus cursos asignados │
│ ✅ Completar lecciones y quizzes │
│ ✅ Descargar sus certificados │
│ ❌ No puede ver progreso de otros │
│ ❌ Solo lectura en la organización │
└────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ USUARIO INDIVIDUAL (B2C) │
│ │
│ 1. Signup → user@gmail.com │
│ 2. Browse courses → Enroll (pago individual $29/mes) │
│ 3. Ver "Mis Cursos" → todos son auto-enrollados │
│ 4. Completar → Certificado a nombre personal │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ USUARIO CORPORATIVO (B2B) │
│ │
│ 1. Recibe invitación → juan@empresa.com │
│ 2. Signup / Auto-join a "Empresa X" │
│ 3. Ver "Mis Cursos" → Dos tabs: │
│ ├─ "Asignados por mi empresa" (🔒 obligatorios) │
│ └─ "Explorar catálogo público" (opcional) │
│ 4. Completar curso asignado → Certificado + notif a manager│
│ 5. PLUS: También puede tomar cursos personales │
│ │
└─────────────────────────────────────────────────────────────┘
VENTAJA: El mismo usuario puede ser:
- Empleado de "Empresa X" (cursos corporativos)
- Usuario individual (cursos personales)
Frontend: React 19 + TailwindCSS + ShadCN
Backend: Node.js + Wasp 0.20+
DB: PostgreSQL + Prisma
Auth: Wasp Auth (email, Google, GitHub) + SSO (nuevo)
Payments: Stripe (individual + subscriptions)
Storage: S3 (videos) + CloudFront (CDN)
Email: SendGrid
Analytics: Plausible / Google Analytics

Cambio clave: Agregar modelos multi-tenancy sin tocar la arquitectura base existente.

Decisión: ✅ Shared Database (un solo PostgreSQL)

AspectoShared DBSeparate DBs
Complejidad✅ Baja (solo agregar organizationId)❌ Alta (múltiples conexiones)
Costo✅ Bajo (un DB para todos)❌ Alto (DB por cliente)
Escalabilidad✅ Hasta 100k+ usuarios⚠️ Complejo de gestionar
Aislamiento⚠️ Requiere RLS estricto✅ Aislamiento total
Backup✅ Simple❌ N backups
Best for✅ MVP → 1000 clientesEnterprise (regulación estricta)

Trade-off aceptado: Menor aislamiento pero mucho más simple de implementar y operar.

Mitigación: Row-Level Security (RLS) en todas las queries + auditoría.

2. Cursos custom: Misma tabla vs tabla separada

Sección titulada «2. Cursos custom: Misma tabla vs tabla separada»

Decisión: ✅ Misma tabla Course con flag organizationId

Course {
id
title
organizationId ← null = curso público
isPrivate ← true = solo visible para org
}

Ventaja:

  • Reutiliza toda la lógica existente (Lesson, Enrollment, Certificate)
  • Búsqueda unificada (cursos públicos + custom en una sola query)
  • Admin puede copiar curso público → custom (fork)

Alternativa descartada: Tabla CustomCourse separada → duplicaría código.

Decisión: ✅ Enum OrganizationRole

enum OrganizationRole {
OWNER
ADMIN
MANAGER
MEMBER
}

Razón: Roles simples y fijos (no necesitamos permisos granulares custom por ahora).

Alternativa futura: Si clientes piden roles custom → migrar a RBAC con tabla Permission.

Decisión: ✅ Híbrido - YouTube (free) + S3 (private)

type VideoSource =
| { type: "youtube"; url: string } // Cursos públicos
| { type: "s3"; key: string } // Cursos custom privados
| { type: "vimeo" | "wistia"; url: string }; // Enterprise (opcional)

Trade-off:

  • S3 = costo de storage ($0.023/GB/mes) + bandwidth ($0.09/GB)
  • Empresas pequeñas → YouTube OK
  • Empresas con contenido sensible → S3 con signed URLs

Límites por plan:

  • Teams 10: 5GB storage
  • Teams 50: 25GB
  • Teams 100: 100GB
  • Enterprise: Ilimitado (o custom pricing)

RecursoLímite MVPEscala futura
DB queriesN+1 queries OKOptimizar con include y select
AnalyticsCalcular on-demandPre-computar métricas (jobs nocturnos)
StorageS3 estándarS3 + CloudFront CDN
EmailSendGrid (100k/mes gratis)Upgrade a plan pago
Concurrent users500-1000Load balancer + múltiples instancias
  1. Analytics complejos (muchos usuarios/cursos)

    • Solución: Pre-computar con Wasp Jobs (cron nocturno)
    • Almacenar snapshots diarios en DailyStats (ya existe)
  2. Búsqueda de cursos (cuando hay 1000+ cursos)

    • Solución: Algolia o ElasticSearch
    • MVP: PostgreSQL full-text search es suficiente
  3. Video transcoding (si permitimos upload directo)

    • Solución: AWS MediaConvert o Cloudflare Stream
    • MVP: Aceptar solo YouTube URLs (gratis)
  4. Notificaciones masivas (enviar a 5000+ empleados)

    • Solución: Queue con BullMQ + Redis
    • MVP: Enviar emails en batch (100 por vez)

MVP (10-50 clientes, 500 usuarios activos):

Railway/Fly.io (server + DB): $30-50/mes
S3 storage (100GB): $3/mes
S3 bandwidth (500GB): $45/mes
SendGrid (email): $0 (free tier)
CloudFront (CDN): $10/mes
─────────────────────────────
TOTAL: $88-108/mes

Escala (100+ clientes, 5000 usuarios):

Server instances (2x): $150/mes
DB (production grade): $100/mes
S3 storage (1TB): $30/mes
S3 bandwidth (5TB): $450/mes
SendGrid (100k emails/mes): $20/mes
CloudFront (CDN): $50/mes
─────────────────────────────
TOTAL: $800/mes

Break-even: Con $12k MRR (50 clientes Teams) → $800 infra = 6.7% de revenue (saludable).


🎯 Estrategia de Producto: B2C → B2B/B2C Híbrido

Sección titulada «🎯 Estrategia de Producto: B2C → B2B/B2C Híbrido»
Target: Profesionales individuales
Value prop: "Aprende Data Engineering y AI a tu ritmo"
Monetización: Subscripción individual ($29/mes)
Customer journey: Browse → Enroll → Learn → Certificate
Target: Empresas tech (primario) + Profesionales (secundario)
Value prop:
- B2B: "Capacita a tu equipo de data en 1/3 del tiempo"
- B2C: "Aprende Data Engineering y AI a tu ritmo"
Monetización: Dual (B2B seats + B2C individual)
Customer journey:
- B2B: Demo → Trial → Team setup → Onboard empleados → Analytics
- B2C: Browse → Enroll → Learn → Certificate
EmpresaModeloPricing
GitHubB2C (free/pro) + B2B (Teams/Enterprise)$0 / $4 / $21 / Custom
NotionB2C (free/plus) + B2B (Business/Enterprise)$0 / $8 / $15 / Custom
FigmaB2C (starter) + B2B (Professional/Org/Enterprise)$0 / $15 / $45 / $75
CanvaB2C (free/pro) + B2B (Teams/Enterprise)$0 / $13 / $30 / Custom

Patrón común:

  1. Free tier fuerte (B2C acquisition)
  2. Pricing escalonado (Individual → Teams → Enterprise)
  3. Misma plataforma, features desbloqueadas por tier
  4. Landing pages separadas (/ vs /teams)

Opción A: Pricing por seat (recomendado para MVP)

Sección titulada «Opción A: Pricing por seat (recomendado para MVP)»
┌─────────────────────────────────────────────────────────────┐
│ Individual (B2C) │
│ ✓ Free: 3 cursos gratis │
│ ✓ Pro: $29/mes (todos los cursos públicos) │
│ ✓ Annual: $290/año (-20%) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Teams (B2B) - Seat-based │
│ ✓ Teams 10: $199/mes (hasta 10 seats) = $19.90/seat │
│ ✓ Teams 50: $899/mes (hasta 50 seats) = $17.98/seat │
│ ✓ Teams 100: $1,699/mes (hasta 100 seats) = $16.99/seat │
│ │
│ Incluye: │
│ • Acceso a catálogo completo │
│ • Crear hasta 3/10/25 cursos custom │
│ • Analytics y reportes │
│ • Soporte por email │
│ • 5GB/25GB/100GB storage para videos │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Enterprise (B2B) - Custom pricing │
│ ✓ Seats ilimitados │
│ ✓ Cursos custom ilimitados │
│ ✓ SSO/SAML │
│ ✓ API access │
│ ✓ Dedicated customer success manager │
│ ✓ Custom onboarding + white-glove service │
│ ✓ SLA 99.9% uptime │
│ ✓ Priority support (Slack connect) │
│ │
│ Precio: $3,000+/mes (negociable) │
└─────────────────────────────────────────────────────────────┘

Ventajas de este modelo:

  • ✅ Simple de entender para clientes
  • ✅ Predecible (ARR calculable)
  • ✅ Escala con el crecimiento del cliente
  • ✅ Competitivo vs Udemy Business ($30/seat/mes)

Opción B: Flat rate + overage (alternativa)

Sección titulada «Opción B: Flat rate + overage (alternativa)»
Teams: $499/mes base (incluye 20 seats)
+ $20/seat adicional por mes
Ejemplo:
- 30 empleados = $499 + (10 × $20) = $699/mes
- 75 empleados = $499 + (55 × $20) = $1,599/mes

Pros: Más flexible para empresas que crecen rápido Contras: Menos predecible para presupuestación

Recomendación: Opción A para MVP (más simple)

Strategy Canvas: TalentBricks vs Competencia

Sección titulada «Strategy Canvas: TalentBricks vs Competencia»
Factor | Udemy B | Coursera | LinkedIn | TalentBricks
──────────────────────────|─────────|──────────|──────────|─────────────
Precio (lower = better) | 3 | 2 | 4 | 5 ★
Catálogo público | 5 | 4 | 4 | 3
Contenido custom | 1 | 1 | 1 | 5 ★
Nicho Data/AI | 3 | 4 | 2 | 5 ★
Español nativo (LATAM) | 2 | 2 | 2 | 5 ★
Onboarding rápido | 3 | 3 | 3 | 5 ★
Analytics por equipo | 4 | 4 | 4 | 4
SSO/Enterprise features | 5 | 5 | 5 | 3
Mobile app | 5 | 5 | 5 | 2
Brand awareness | 5 | 5 | 5 | 1

Diferenciadores clave (★):

  1. Precio: 33% más barato que Udemy Business
  2. Contenido custom incluido: Competencia no lo ofrece (o es addon caro)
  3. Nicho vertical: Expertise en Data/AI (no generalistas)
  4. LATAM-first: Contenido en español de calidad, soporte local
  5. Speed to value: Self-service signup vs sales cycle de semanas

Desventajas vs competencia:

  • Catálogo más pequeño (enfocado vs amplio)
  • Menos brand awareness (startup vs giants)
  • Sin app móvil nativa (por ahora)

Estrategia: Competir en nicho vertical (Data/AI para empresas tech LATAM) donde somos más fuertes que generalistas.


// ============================================
// B2B / Corporate LMS Models
// ============================================
enum OrganizationRole {
OWNER // Administrador principal de la empresa
ADMIN // Admin de la organización (puede gestionar cursos y usuarios)
MANAGER // Puede ver analytics de su equipo
MEMBER // Empleado normal
}
model Organization {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
slug String @unique
domain String? // Validar emails @company.com
logoUrl String?
// Subscription & billing
subscriptionStatus String? // 'active', 'trial', 'cancelled'
subscriptionPlan String? // 'teams-10', 'teams-50', 'enterprise'
seats Int @default(10) // Número de licencias
usedSeats Int @default(0)
billingEmail String?
// Settings
allowSelfSignup Boolean @default(false) // Empleados pueden auto-inscribirse con email corporativo
ssoEnabled Boolean @default(false)
ssoProvider String? // 'saml', 'oidc'
members OrganizationMember[]
teams Team[]
courses Course[] // Cursos privados de la empresa
enrollments Enrollment[] // Inscripciones gestionadas
@@index([slug])
}
model OrganizationMember {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
organizationId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
userId String
role OrganizationRole @default(MEMBER)
teams TeamMember[]
@@unique([organizationId, userId])
@@index([organizationId])
@@index([userId])
}
model Team {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
organizationId String
name String
description String?
members TeamMember[]
assignedCourses TeamCourseAssignment[]
@@index([organizationId])
}
model TeamMember {
id String @id @default(uuid())
createdAt DateTime @default(now())
team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
teamId String
organizationMember OrganizationMember @relation(fields: [organizationMemberId], references: [id], onDelete: Cascade)
organizationMemberId String
isManager Boolean @default(false) // Manager del equipo
@@unique([teamId, organizationMemberId])
@@index([teamId])
}
model TeamCourseAssignment {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
teamId String
course Course @relation(fields: [courseId], references: [id], onDelete: Cascade)
courseId Int
isRequired Boolean @default(false) // Curso obligatorio
dueDate DateTime? // Fecha límite para completar
@@unique([teamId, courseId])
@@index([teamId])
@@index([courseId])
}
// En User model:
model User {
// ... campos existentes ...
organizationMemberships OrganizationMember[] // Nuevo
}
// En Course model:
model Course {
// ... campos existentes ...
// B2B fields
organizationId String? // null = curso público
organization Organization? @relation(fields: [organizationId], references: [id])
isPrivate Boolean @default(false) // Solo visible para la org
teamAssignments TeamCourseAssignment[]
@@index([organizationId])
}
// En Enrollment model:
model Enrollment {
// ... campos existentes ...
// B2B fields
organizationId String? // Inscripción por empresa
organization Organization? @relation(fields: [organizationId], references: [id])
assignedByTeam Boolean @default(false) // Asignado vs auto-inscrito
dueDate DateTime? // Fecha límite
@@index([organizationId])
}

Queries necesarias (solo lectura):

  • getMyOrganizations → Organizaciones donde soy miembro
  • getOrganizationMembers → Lista miembros con roles, equipos, progreso
  • getOrganizationCourses → Cursos propios + públicos accesibles
  • getTeamProgress → Analytics de completación por equipo
  • getOrganizationAnalytics → Métricas agregadas (admins only)

Actions necesarias (escritura):

  • createOrganization → Crear nueva organización (trial automático)
  • inviteUserToOrganization → Enviar invitación por email
  • createTeam → Crear equipo dentro de org
  • addMemberToTeam → Agregar miembro a equipo
  • assignCourseToTeam → Asignar curso + auto-enroll miembros
  • updateMemberRole → Cambiar rol (OWNER → ADMIN → MANAGER → MEMBER)
  • importUsersFromCSV → Importación masiva de empleados

Consideraciones de arquitectura:

  • Todas las operaciones validan permisos basados en rol (OWNER/ADMIN/MANAGER/MEMBER)
  • Row-level security: usuarios solo ven datos de sus organizaciones
  • Auto-enrollment cuando se asigna curso a equipo
  • Límite de seats por plan (validar antes de invitar)
  • Audit log para acciones sensibles (opcional Fase 2)

Rutas de gestión de organización:

  • /org/:slug → Dashboard principal de la organización
  • /org/:slug/members → Gestión de miembros y roles
  • /org/:slug/teams → Gestión de equipos
  • /org/:slug/courses → Catálogo de cursos (propios + públicos)
  • /org/:slug/analytics → Analytics y reportes (admins)
  • /org/:slug/settings → Configuración (SSO, billing, etc.)

Rutas de equipo:

  • /team/:teamId → Dashboard del equipo
  • /team/:teamId/progress → Progreso detallado de miembros

Rutas de marketing B2B:

  • /teams → Landing page para empresas
  • /teams/pricing → Pricing específico B2B
  • /teams/demo → Request demo form

Vista de equipo:

  • Lista de miembros con foto, nombre, rol
  • Progreso por curso (%) con barra visual
  • Quizzes: aprobados ✅ / fallados ❌ / pendientes ⏳
  • Última actividad (fecha)
  • Filtros: por equipo, por curso, por estado

Analytics:

  • Gráfico de completación semanal (ApexCharts)
  • Tiempo promedio por curso
  • Cursos más/menos completados
  • Empleados top performers vs rezagados
  • Exportar a CSV

Notificaciones:

  • Alertas cuando alguien falla quiz 3+ veces
  • Recordatorios de cursos con deadline próximo
  • Certificados generados

model Enrollment {
// ... campos existentes ...
isRequired Boolean @default(false)
dueDate DateTime?
completionReminders DateTime[] // Fechas de recordatorios enviados
}

Lógica:

  1. Manager asigna curso a equipo con isRequired: true y dueDate
  2. Sistema crea Enrollment automático para cada miembro
  3. Email de notificación a empleados
  4. Recordatorios automáticos (7 días antes, 3 días antes, día de)
  5. Dashboard muestra empleados con cursos vencidos en rojo
app/src/organization/operations.ts
export const importUsersFromCSV: ImportUsersFromCSV = async (
{ organizationId, csvData },
context
) => {
// Parse CSV: name, email, role, team
// Validar emails
// Crear usuarios si no existen
// Crear OrganizationMember
// Agregar a equipos
// Enviar invitaciones
};

Formato CSV:

name,email,role,team
Juan Pérez,juan@empresa.com,MEMBER,Ventas
María García,maria@empresa.com,MANAGER,Ventas

Integración con Wasp Auth:

app/main.wasp
app TalentBricksAI {
auth: {
userEntity: User,
methods: {
email: {},
google: {},
github: {},
saml: { // Nuevo
configFn: import { getSAMLConfig } from "@src/auth/saml"
}
}
}
}

Providers soportados:

  • Okta
  • Azure AD
  • Google Workspace
  • OneLogin

Esfuerzo: 2-3 semanas + testing con clientes enterprise


  • Free: 3 cursos gratis
  • Pro ($29/mes): Acceso a todos los cursos
  • Annual ($290/año): -20% descuento
  • Teams 10 ($199/mes): Hasta 10 empleados, cursos ilimitados
  • Teams 50 ($899/mes): Hasta 50 empleados + analytics básicos
  • Teams 100 ($1,699/mes): Hasta 100 empleados + analytics avanzados
  • Enterprise (Custom pricing):
    • Seats ilimitados
    • SSO/SAML
    • Soporte prioritario
    • Onboarding personalizado
    • Cursos custom a la medida
    • Dedicated success manager

Implementación técnica:

// Stripe products
const PLANS = {
"teams-10": { seats: 10, price: 19900 }, // $199.00
"teams-50": { seats: 50, price: 89900 }, // $899.00
"teams-100": { seats: 100, price: 169900 }, // $1,699.00
enterprise: { seats: -1, price: null }, // Custom
};

TareaTiempo estimadoPrioridad
Schema DB (modelos Organization, Team, etc.)3-4 días🔴 Crítica
Migrations + seed data1 día🔴 Crítica
Operaciones backend (queries/actions)1 semana🔴 Crítica
UI: Organization dashboard1 semana🔴 Crítica
UI: Team management3-4 días🔴 Crítica
UI: Invite users + roles2-3 días🔴 Crítica
Cursos privados (organizationId)2 días🔴 Crítica
Stripe: planes Teams2-3 días🟡 Alta
Testing E2E2-3 días🟡 Alta
Documentación2 días🟡 Alta

TOTAL FASE 1: 4-6 semanas (1 dev full-time)

TareaTiempo estimado
Analytics queries (progreso, quizzes)3 días
UI: Dashboard con gráficos4 días
Exportar a CSV1 día
Notificaciones para managers2 días
TareaTiempo estimado
Asignación forzosa + deadlines1 semana
Recordatorios automáticos2-3 días
Bulk user import (CSV)3-4 días
SSO/SAML setup2-3 semanas

  1. Entrevistas con clientes potenciales (2-3 empresas):

    • Talento Para Ti (Laura/Winny caso de uso)
    • 2-3 empresas medianas (50-200 empleados)
    • Validar: pricing, features must-have, dealbreakers
  2. Landing page de Teams (1 semana):

    • /teams con propuesta de valor
    • Formulario “Request Demo”
    • Validar interés antes de implementar
  1. Beta privado (5-10 empresas):

    • 3 meses gratis
    • Feedback directo
    • Iterar rápido
  2. Landing page completa:

    • Casos de uso por industria
    • Testimonios de beta testers
    • Demo interactivo
  3. Marketing:

    • LinkedIn Ads (B2B)
    • Cold outreach a HR/L&D managers
    • Partnerships con consultoras de capacitación

  • ✅ 5+ empresas en plan Teams
  • ✅ 200+ empleados usando la plataforma
  • ✅ NPS > 40 (clientes B2B)
  • ✅ <5% churn mensual
  • ✅ $5k+ MRR de planes Teams
  • ✅ 20+ empresas
  • ✅ 1,000+ empleados
  • ✅ 1-2 clientes Enterprise
  • ✅ $20k+ MRR
  • ✅ 50+ empresas
  • ✅ 5,000+ empleados
  • ✅ 5+ clientes Enterprise
  • ✅ $50k+ MRR
  • ✅ Break-even en B2B

RiesgoImpactoProbabilidadMitigación
Complejidad técnica subestimadaAltoMediaFase 1 super enfocada (solo multi-tenancy básico)
Pricing muy bajo/altoAltoAltaValidar con 5+ empresas antes de fijar
Canibalizacion B2CMedioBajaMessaging claro: Teams ≠ Individual
Feature creepAltoAltaRoadmap estricto: MVP → Feedback → Iterar
Competencia (Udemy Business, etc.)AltoAltaDiferenciador: cursos custom + industria específica

  1. Decisión estratégica: ¿Misma marca o nueva?
  2. Validación con Talento Para Ti: Entrevista con Laura/Winny
    • ¿Cuántos empleados capacitarían?
    • ¿Qué cursos necesitan? (productos, ventas, procesos)
    • ¿Budget aproximado?
    • ¿Qué features son must-have vs nice-to-have?
  1. Landing page /teams (1 semana)

    • Propuesta de valor
    • Casos de uso
    • Formulario demo
  2. Entrevistas con 2-3 empresas más (1 semana)

    • Validar pricing
    • Priorizar features
  1. Implementar Fase 1 - MVP Multi-Tenancy (4-6 semanas)
    • Schema DB
    • Operations
    • UI básica


Preguntas clave para resolver:

  1. ✅ ¿Viabilidad técnica? → SÍ, 90% del código ya existe
  2. ⏳ ¿Misma marca o nueva? → Recomendación: Misma marca
  3. ⏳ ¿Pricing? → Pendiente de validar
  4. ⏳ ¿MVP en cuánto tiempo? → 4-6 semanas
  5. ⏳ ¿Primer cliente beta? → Talento Para Ti (Laura/Winny)

Flujo del Admin de Empresa (Organization Owner/Admin)

Sección titulada «Flujo del Admin de Empresa (Organization Owner/Admin)»
1. Crear organización → Formulario simple:
✓ Nombre de la empresa
✓ Slug (ej: talento-para-ti)
✓ Logo (opcional)
✓ Dominio corporativo (ej: @talento.com) - para auto-signup
2. Seleccionar plan → Pricing page:
✓ Teams 10 / Teams 50 / Teams 100 / Enterprise
✓ Trial 14 días gratis (no requiere tarjeta)
✓ Upgrade anytime
3. Invitar equipo → Tres opciones:
✓ Invitar por email (uno a uno)
✓ Importar CSV masivo
✓ Link de auto-registro (si dominio verificado)
4. Tour guiado (onboarding wizard):
✓ Crear primer equipo
✓ Asignar primer curso (público o crear custom)
✓ Ver dashboard de progreso

Layout:

┌─────────────────────────────────────────────────────────────┐
│ [Logo] TalentBricks Talento Para Ti ▼ [Mi perfil] │
├─────────────────────────────────────────────────────────────┤
│ Sidebar: │
│ 📊 Dashboard │
│ 👥 Miembros (25/50) │
│ 👫 Equipos (3) │
│ 📚 Cursos (12 asignados) │
│ 📈 Analytics │
│ ⚙️ Configuración │
│ 💳 Billing │
├─────────────────────────────────────────────────────────────┤
│ Main Content: │
│ │
│ Resumen General │
│ ┌─────────────┬─────────────┬─────────────┬─────────────┐ │
│ │ 25 Usuarios │ 12 Cursos │ 87% Compl. │ 45 Certifs. │ │
│ └─────────────┴─────────────┴─────────────┴─────────────┘ │
│ │
│ Actividad Reciente (últimos 7 días) │
│ [Gráfico de barras - Apex Charts] │
│ │
│ Cursos con mayor progreso ↗ │
│ ✅ Fundamentos de Data Engineering 95% (19/20) │
│ ⏳ Python para Análisis de Datos 60% (12/20) │
│ ❌ Machine Learning Básico 30% (6/20) │
│ │
│ Alertas y Notificaciones │
│ ⚠️ 3 empleados con cursos vencidos │
│ ⚠️ Juan Pérez ha fallado quiz 3 veces │
│ ✅ María completó certificación │
└─────────────────────────────────────────────────────────────┘

Features clave:

  • Switch rápido entre organizaciones (si el usuario pertenece a varias)
  • Acceso directo a su cuenta personal (cursos individuales)
  • Quick actions: “Invitar usuario”, “Crear equipo”, “Asignar curso”

3. Gestión de miembros (/org/:slug/members)

Sección titulada «3. Gestión de miembros (/org/:slug/members)»

Tabla interactiva:

interface MemberRow {
avatar: string;
name: string;
email: string;
role: "OWNER" | "ADMIN" | "MANAGER" | "MEMBER";
teams: string[]; // ["Ventas", "Operaciones"]
coursesAssigned: number;
coursesCompleted: number;
lastActive: Date;
actions: ["Editar rol", "Ver progreso", "Remover"];
}

Filtros:

  • Por rol
  • Por equipo
  • Por estado de cursos (completados / en progreso / vencidos)
  • Búsqueda por nombre/email

Bulk actions:

  • Asignar curso a múltiples usuarios
  • Cambiar equipo
  • Enviar recordatorio
  • Exportar a CSV

Vista principal:

Equipo: Ventas (12 miembros)
Cursos asignados:
┌───────────────────────────────────┬──────────┬────────────┐
│ Curso │ Progreso │ Deadline │
├───────────────────────────────────┼──────────┼────────────┤
│ Técnicas de Venta Consultiva │ 75% │ 15 Feb │
│ CRM y Gestión de Clientes │ 45% │ 28 Feb │
│ Productos TalentBricks │ 90% │ 10 Feb ✅ │
└───────────────────────────────────┴──────────┴────────────┘
Progreso individual:
┌──────────────┬───────────┬──────────┬─────────────┐
│ Miembro │ Curso 1 │ Curso 2 │ Curso 3 │
├──────────────┼───────────┼──────────┼─────────────┤
│ Juan Pérez │ 100% ✅ │ 60% ⏳ │ 95% ⏳ │
│ María García │ 80% ⏳ │ 100% ✅ │ 100% ✅ │
│ Carlos López │ 30% ⚠️ │ 20% ⚠️ │ 50% ⏳ │
└──────────────┴───────────┴──────────┴─────────────┘
⚠️ Carlos López está rezagado - última actividad hace 8 días
[Botón: Enviar recordatorio]

Permisos del Manager:

  • ✅ Ver progreso de su equipo
  • ✅ Asignar cursos a su equipo
  • ✅ Enviar recordatorios
  • ✅ Exportar reportes
  • ❌ No puede cambiar roles
  • ❌ No puede ver otros equipos
  • ❌ No puede gestionar billing

Vista del empleado (/dashboard o /my-learning)

Sección titulada «Vista del empleado (/dashboard o /my-learning)»

Experiencia híbrida B2B + B2C:

Mis Cursos
Tabs:
[Asignados por mi empresa] [Cursos públicos] [Completados]
━━━ Asignados por mi empresa (3) ━━━
┌─────────────────────────────────────────────────┐
│ 🔴 OBLIGATORIO - Vence en 5 días │
│ │
│ Productos y Servicios de TalentBricks │
│ Asignado por: Equipo Ventas │
│ │
│ Progreso: ████████░░ 80% (8/10 lecciones) │
│ Quiz: ❌ 2/3 intentos usados │
│ │
│ [Continuar curso →] │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ ⏳ Opcional - Vence en 20 días │
│ │
│ CRM y Gestión de Clientes │
│ Asignado por: María García (Manager) │
│ │
│ Progreso: ████░░░░░░ 40% (4/10 lecciones) │
│ │
│ [Continuar curso →] │
└─────────────────────────────────────────────────┘
━━━ Cursos públicos (explorables) ━━━
[Catálogo completo de cursos TalentBricks...]

Notificaciones destacadas:

  • 🔴 Curso obligatorio vence en 5 días
  • ⚠️ Quiz fallado - 1 intento restante
  • ✅ ¡Certificado disponible! [Descargar]
  • 📧 Recordatorio de tu manager

Beneficio clave: El empleado puede tomar cursos de la empresa Y cursos personales en la misma plataforma (upsell opportunity).


¿Cómo las empresas suben sus propios entrenamientos?

Sección titulada «¿Cómo las empresas suben sus propios entrenamientos?»

Flujo para Admin de Empresa:

1. /org/:slug/courses → [+ Crear curso custom]
2. Formulario similar al admin público:
✓ Título
✓ Descripción
✓ Categoría
✓ Dificultad
✓ Visibilidad: "Solo mi organización" 🔒
3. Agregar lecciones:
✓ Título de lección
✓ Contenido:
- Video (upload a S3 o YouTube URL)
- Texto enriquecido (TipTap editor)
- PDFs descargables
- Links externos
4. Agregar quiz (opcional):
✓ Misma interfaz que admin público
✓ Configurar % aprobación
✓ Intentos permitidos
5. Publicar curso:
✓ Preview
✓ Asignar a equipos
✓ Marcar como obligatorio

Validación de videos:

// Permitir múltiples fuentes de video
type VideoSource =
| { type: "youtube"; url: string }
| { type: "s3"; key: string } // Upload directo a S3
| { type: "vimeo"; url: string }
| { type: "wistia"; url: string }; // Popular en B2B

Límites por plan:

const LIMITS = {
"teams-10": {
customCourses: 3,
videoStorage: 5 * 1024 * 1024 * 1024, // 5 GB
},
"teams-50": {
customCourses: 10,
videoStorage: 25 * 1024 * 1024 * 1024, // 25 GB
},
"teams-100": {
customCourses: 25,
videoStorage: 100 * 1024 * 1024 * 1024, // 100 GB
},
enterprise: {
customCourses: -1, // Ilimitado
videoStorage: -1, // Ilimitado
},
};

Para clientes Enterprise:

  1. Kickoff call con customer success manager
  2. Cliente envía materiales (PPTs, videos, documentos)
  3. TalentBricks convierte a curso estructurado
  4. Review y ajustes
  5. Publicación

Pricing: $2,500 - $5,000 por curso custom (one-time fee)


// Permitir a empresas recibir eventos
enum WebhookEvent {
USER_ENROLLED = 'user.enrolled',
USER_COMPLETED_LESSON = 'user.completed_lesson',
USER_COMPLETED_COURSE = 'user.completed_course',
USER_PASSED_QUIZ = 'user.passed_quiz',
USER_FAILED_QUIZ = 'user.failed_quiz',
CERTIFICATE_ISSUED = 'certificate.issued',
}
// Endpoint de la empresa recibe:
{
event: 'user.completed_course',
organizationId: 'org_123',
data: {
userId: 'user_456',
courseId: 789,
completedAt: '2026-02-20T10:30:00Z',
certificateUrl: 'https://...',
}
}

Use case: Sincronizar con HRIS interno, actualizar records de capacitación.

Notificaciones automáticas:

🎉 María García completó "Fundamentos de Data Engineering"
📊 Progreso del equipo Ventas: 87% (+5% esta semana)
⚠️ 3 empleados tienen cursos vencidos

Bot commands:

/talentbricks stats team Ventas
/talentbricks remind @juan curso-data-engineering
/talentbricks leaderboard

Integraciones:

  • BambooHR
  • Workday
  • ADP
  • SAP SuccessFactors

Sync bidireccional:

  • Importar empleados automáticamente
  • Sincronizar roles y departamentos
  • Exportar certificaciones al perfil del empleado

Features:

  • Agregar deadlines de cursos al calendario
  • Recordatorios automáticos
  • Bloquear tiempo para estudiar

Providers soportados:

  • Okta
  • Azure AD (Microsoft Entra)
  • Google Workspace
  • OneLogin
  • Auth0

Implementación técnica:

app/src/auth/saml.ts
import { SAMLConfig } from "wasp/server";
export async function getSAMLConfig(organizationId: string): Promise<SAMLConfig> {
const org = await prisma.organization.findUnique({
where: { id: organizationId },
select: { ssoProvider, ssoMetadataUrl, ssoCertificate },
});
if (!org?.ssoEnabled) {
throw new Error("SSO not enabled for this organization");
}
return {
entryPoint: org.ssoMetadataUrl,
cert: org.ssoCertificate,
issuer: `talentbricks-${organizationId}`,
};
}

¿Qué es? Certificación de que TalentBricks maneja datos de forma segura.

Requerido para: Vender a empresas >500 empleados (banking, healthcare, etc.)

Esfuerzo:

  • Contratar auditor (Vanta, Drata, etc.)
  • Implementar controles de seguridad
  • 3-6 meses de evidencia
  • ~$20k-$50k costo inicial

Timing: Solo si cerramos 2+ deals Enterprise (>$50k/año cada uno)

2. GDPR Compliance (Ya implementado parcialmente)

Sección titulada «2. GDPR Compliance (Ya implementado parcialmente)»

Checklist:

  • ✅ Consentimiento explícito (privacy policy)
  • ✅ Right to deletion (delete account)
  • ⏳ Data export (agregar endpoint /api/export-my-data)
  • ⏳ Data Processing Agreement (DPA) para B2B
  • ⏳ Cookie banner y gestión de cookies

Features necesarias:

// Audit log para acciones sensibles
model AuditLog {
id String @id @default(uuid())
createdAt DateTime @default(now())
organizationId String
organization Organization @relation(fields: [organizationId], references: [id])
userId String
user User @relation(fields: [userId], references: [id])
action String // "deleted_user", "changed_role", "exported_data"
targetType String // "User", "Course", "Organization"
targetId String
metadata Json? // Detalles adicionales
ipAddress String?
userAgent String?
@@index([organizationId])
@@index([userId])
}

Encriptación:

  • ✅ SSL/TLS en tránsito (HTTPS)
  • ✅ Passwords hasheados (bcrypt via Wasp)
  • ⏳ Datos sensibles encriptados en DB (PII, videos privados)
  • ⏳ S3 buckets con encriptación server-side (AES-256)

Access control:

  • ✅ Row-level security (RLS) - ya verificamos userId en queries
  • ⏳ Agregar verificación de organizationId en todas las operaciones B2B
  • ⏳ Rate limiting (prevenir DDoS)

Estrategia:

  • PostgreSQL automated backups (Railway/Fly.io)
  • Retention: 7 días (prod), 3 días (staging)
  • S3 versioning para videos
  • RTO (Recovery Time Objective): <4 horas
  • RPO (Recovery Point Objective): <1 hora

FeatureTalentBricksUdemy BusinessCourseraLinkedIn Learning360Learning
Precio por empleado/año$240 - $420$360$400$300$480
Cursos públicos✅ Data/AI✅ General✅ Tech✅ Business⚠️ Limitado
Cursos custom
Quizzes/evaluación⚠️ Básico
Certificados✅ Universidad⚠️ Básico
Analytics por equipo
SSO/SAML⏳ Enterprise
Móvil (app)⏳ PWA
Español nativo⚠️ Subtítulos⚠️ Subtítulos⚠️ Subtítulos
Soporte LATAM

Diferenciador: No competir con todo el mercado, dominar un vertical.

Mensajes de marketing:

“El LMS especializado en Data Engineering y AI para empresas tech de LATAM”

Target market:

  • Consultoras de tecnología (100-500 empleados)
  • Software houses
  • Startups tech en crecimiento
  • Equipos de data/analytics en empresas grandes

Ventaja única: Híbrido.

  • Udemy/Coursera: Solo catálogo público (no custom)
  • 360Learning: Solo custom (catálogo público muy limitado)
  • TalentBricks: Lo mejor de ambos mundos

Use case ganador:

Empresa puede:
1. Crear curso "Productos de [Empresa]" (custom)
2. Asignar "Python para Data Science" (catálogo público)
3. Agregar "SQL Avanzado" (catálogo público)
→ Solución completa sin contratar dos plataformas

TalentBricks Teams 10:

  • $199/mes ÷ 10 empleados = $19.90 por empleado/mes = $240/año

Udemy Business:

  • $30 por empleado/mes = $360/año

Diferencia: 33% más barato + contenido custom incluido.

Pain point del mercado:

  • Coursera/LinkedIn Learning: Todo en inglés (o subtítulos mal traducidos)
  • Empresas LATAM necesitan contenido en español de calidad

TalentBricks:

  • ✅ Interfaz ES/EN nativa
  • ✅ Cursos en español (voz humana, no subtítulos)
  • ✅ Soporte timezone LATAM (no India/Filipinas)
  • ✅ Facturación en moneda local (opcional: MXN, COP, etc.)

Onboarding:

  • Udemy Business: 2-3 semanas (enterprise sales cycle)
  • TalentBricks: Self-service signup + 14 días trial = usar en <1 hora

1. Segmento Primary: Tech companies 50-200 empleados

Sección titulada «1. Segmento Primary: Tech companies 50-200 empleados»

Perfil:

  • Software houses, consultoras tech
  • Tienen equipos de data/engineering
  • Presupuesto training: $10k-$50k/año
  • Decision maker: CTO o VP Engineering

Canales:

  • LinkedIn Ads (target: CTOs, Engineering Managers)
  • Partnerships con aceleradoras (500 Startups, Y Combinator LATAM)
  • Eventos tech (conferencias, meetups)

Mensaje:

“Capacita a tu equipo de data engineering en 1/3 del tiempo con TalentBricks Teams”

2. Segmento Secondary: Empresas tradicionales digitalizándose

Sección titulada «2. Segmento Secondary: Empresas tradicionales digitalizándose»

Perfil:

  • Retail, bancos, seguros con transformación digital
  • 200-1000 empleados
  • Necesitan upskilling en data/AI
  • Decision maker: CHRO o Head of L&D

Canales:

  • Cold outreach a HR
  • Partnerships con consultoras de transformación digital
  • Webinars educativos

Mensaje:

“Prepara a tu equipo para la era del dato: Python, SQL, AI desde cero”

1. Landing /teams → Formulario "Empezar trial 14 días"
2. Email de bienvenida + onboarding wizard
3. Trial 14 días (sin tarjeta)
4. Día 7: Email "¿Necesitas ayuda?"
5. Día 12: Email "Trial termina en 2 días - ¿Listo para upgrade?"
6. Conversión → Stripe self-checkout

Métricas:

  • Trial → Paid conversion target: >20%
  • Time to first value: <24 horas
1. Demo request → Form capture
2. Sales call (30 min) - Discovery
3. Custom proposal + pricing
4. Pilot con 10-20 usuarios (1 mes)
5. Negotiation + contratos
6. Onboarding dedicado
7. Quarterly business reviews (QBR)

Ciclo de venta: 1-3 meses

Deal size: $20k-$100k/año

Blog topics (SEO + thought leadership):

  1. “Cómo capacitar vendedores con quizzes interactivos”
  2. “LMS vs plataformas de cursos: ¿Cuál necesita tu empresa?”
  3. “Caso de éxito: Cómo [Empresa] redujo tiempo de onboarding 50%”
  4. “Guía: Crear tu primer curso corporativo en 1 hora”
  5. “ROI de capacitación: Cálculo y métricas clave”

Lead magnets:

  • eBook: “Guía definitiva de L&D para empresas tech”
  • Template: “Checklist de onboarding técnico”
  • Calculator: “ROI de capacitación corporativa”

Asunciones:

  • Lanzamiento: Marzo 2026
  • Marketing budget: $2k/mes (LinkedIn Ads + contenido)
  • CAC (Customer Acquisition Cost): $800 por cliente
  • Churn: 5% mensual (promedio B2B SaaS)

Proyección:

MesNuevos clientesTotal clientesEmpleadosMRRCostosProfit
12 (beta)230$400$500-$100
338150$1,600$800$800
6522450$4,800$1,200$3,600
128501,200$12,000$2,000$10,000

ARR (Annual Recurring Revenue) en 12 meses: $144k

Break-even: Mes 8

Con 1-2 clientes Enterprise:

| Mes 6 | 25 clientes Teams + 1 Enterprise | $8,500 MRR | | Mes 12 | 60 clientes Teams + 2 Enterprise | $22,000 MRR |

ARR en 12 meses: $264k


Antes de implementar Fase 1, validar:

  • Entrevista con Talento Para Ti (Laura/Winny)
  • 3+ entrevistas con empresas objetivo
  • Landing page /teams con 20+ form submissions
  • Pricing validado (5+ empresas dicen “sí pagaría X”)
  • Wasp actualizado a última versión estable
  • S3 configurado para videos custom (staging + prod)
  • Stripe configurado para planes Teams
  • Emails transaccionales (invitaciones, recordatorios)
  • Terms of Service actualizados (B2B addendum)
  • Privacy Policy actualizado (multi-tenancy)
  • Data Processing Agreement (DPA template)
  • Contrato Enterprise (template)
  • Guía de onboarding para admins
  • Video tutorial: “Crea tu primera organización”
  • FAQ B2B
  • API docs (webhooks)


SÍ, si:

  • ✅ Validamos demanda con 2-3 empresas (incluida Talento Para Ti)
  • ✅ Al menos 1 empresa se compromete a trial de 14 días
  • ✅ Presupuesto confirmado: $200-1000/mes por cliente
  • ✅ Podemos dedicar 4-6 semanas a implementar MVP

NO (o posponer), si:

  • ❌ No hay interés real de empresas
  • ❌ Pricing es inviable (<$100/mes no vale la pena)
  • ❌ No podemos dedicar recursos por 6+ semanas
  • ❌ B2C actual está creciendo muy rápido (mejor enfocarnos ahí primero)
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ SEMANA 1 │ │ SEMANAS 2-3 │ │ SEMANAS 4-7 │ │ MES 3-6 │
│ │ │ │ │ │ │ │
│ Validación │→ │ Landing / │→ │ MVP Fase 1 │→ │ Iteración │
│ │ │ teams │ │ │ │ │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
✓ Entrevistar ✓ Diseñar ✓ Multi-tenancy ✓ Dashboard
Talento Para Ti landing page DB schema managers
✓ 2-3 empresas ✓ Pricing page ✓ Operations ✓ Analytics
más ✓ Demo form ✓ UI básica ✓ Features Fase 2
✓ Validar pricing ✓ Deploy ✓ Onboarding ✓ Beta con 5-10
✓ Decidir GO/ ✓ Ads LinkedIn ✓ Stripe Teams empresas
NO-GO campaña ✓ Testing E2E
✓ Docs
DecisiónOpción A (Recomendado)Opción B (Alternativa)
MarcaMisma (TalentBricks Teams)Nueva (TalentBricks Enterprise)
PricingSeat-based ($19-30/seat)Flat rate + overage
Target inicialEmpresas tech 50-200 empleadosCualquier industria
MVP scopeSolo multi-tenancy básicoMulti-tenancy + analytics
Go-to-marketSelf-service + EnterpriseSolo Enterprise sales

Recomendación: Columna A (más rápido, menos riesgo)

MétricaMVP (3 meses)6 meses12 meses
Clientes B2B5-815-2040-60
Empleados usando150-300700-10002500-4000
MRR B2B$1.5-3k$8-15k$30-50k
ARR potencial$18-36k$96-180k$360-600k
Break-evenMes 8-10Mes 6
  • Validación de mercado: 3+ entrevistas antes de implementar
  • Pricing validado: 2+ empresas dicen “sí pagaría $X”
  • Landing /teams live: Captura emails para early access
  • MVP super enfocado: Solo Fase 1, nada más
  • Trial generoso: 14 días gratis (sin tarjeta)
  • Escape hatch: Si no funciona en 6 meses, feature flag off