Saltar al contenido
Sobre Proceso Proyectos Contacto Hablemos
Recursos humanos / Marketplace laboral / emple.app

emple.app - Marketplace laboral

Plataforma laboral para el mercado paraguayo que conecta profesionales, empresas y reclutadores. Marketplace con perfiles, vacantes, postulaciones, mensajería, contratos y CV.

Next.js 15 React 19 TypeScript Prisma PostgreSQL Better Auth Tailwind CSS shadcn/ui DigitalOcean Spaces Vitest Playwright
emple.app - Marketplace laboral

El contexto

emple.app es una plataforma laboral pensada para el mercado paraguayo. Su propósito es conectar a profesionales, empresas y reclutadores en un solo marketplace donde se pueden publicar vacantes, construir perfiles, gestionar postulaciones, mantener conversaciones, generar contratos y administrar CVs.

El proyecto nace de la observación de que muchos procesos de selección en la región todavía corren por WhatsApp, correos sueltos y planillas. Eso genera fricción para el candidato, poca trazabilidad para el reclutador y una mala experiencia de marca para la empresa contratante.

El desafío

Construir un marketplace laboral usable implica resolver varios flujos distintos que conviven en la misma plataforma:

  • Tres actores con necesidades distintas: el profesional quiere visibilidad y un CV fácil de mantener; el reclutador quiere filtrar y gestionar pipelines; la empresa quiere control de sucursales y vacantes.
  • Autenticación y roles robustos: Better Auth sobre el modelo propio Usuario, con flujos de sesión seguros y multiempresa por cookies activas.
  • Datos que no se pueden perder: postulaciones, mensajes, contratos y estados de vacantes deben ser trazables y auditables.
  • Operación en español: el modelo de dominio mantiene nombres en español (Usuario, Empresa, Vacante, Postulacion) para que el código refleje el negocio real.
  • Testing real: la lógica de negocio amerita unitarios, integración y e2e para evitar que un cambio en el pipeline rompa una postulación.

La solución

emple.app está construido con Next.js 15 App Router, React 19 y TypeScript estricto. La base de datos es PostgreSQL 16 con Prisma 5.22 como ORM, y la autenticación corre sobre Better Auth adaptado al modelo propio de usuarios.

La interfaz usa Tailwind CSS 4 y componentes estilo shadcn/ui, con el diseño y el copy en español rioplatense de Paraguay. El almacenamiento de archivos va a DigitalOcean Spaces compatible con S3.

El modelo de dominio cubre:

  • Usuario, PerfilProfesional, Empresa y Sucursal para modelar identidad y organización.
  • Vacante y Postulacion para el flujo de oferta y aplicación.
  • Contrato, Mensaje, Notificacion y ReporteUsuario para operación y comunicación.

El testing corre con Vitest, Testing Library y Playwright, con bases .env.local y .env.test separadas para evitar tocar producción por accidente. La regla de oro del proyecto es: si el comando toca Prisma, se usa un script con sufijo :local, :test o :prod.

Las rutas destacadas incluyen /explorar para vacantes, /talento para el directorio de profesionales, /perfil/cv para el CV, /empresa para el área de reclutador y /panel/vacantes/nueva para publicar oportunidades.

Resultado

emple.app vive en emple.app y funciona como el punto de encuentro entre talento y empresas en Paraguay. La arquitectura permite escalar perfiles, vacantes y mensajes sin perder la trazabilidad de cada postulación.

Para Owncoding, el proyecto demuestra cómo se puede levantar un marketplace completo —con múltiples roles, flujos de mensajería y contratos— sobre una base moderna de Next.js, Prisma y PostgreSQL, manteniendo el modelo de negocio expresado en español desde la base de datos hasta la UI.