Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
La plataforma de empleo y servicios 100% gratuita de Latinoamérica. Encontrá tu próximo trabajo, publicá tu vacante sin costo, explora servicios y contrata freelancers de forma fácil y sencilla.
Translation pending
BusinessGitHub @khaledbalcazarOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Plataforma de empleo destinada al publico paraguayi
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Plataforma de empleo 100% gratuita para Paraguay. Mobile-first para candidatos, optimizada para escritorio del lado empresa.
Stack: Next.js (App Router) · Tailwind CSS · Supabase (PostgreSQL + Auth) · Vercel
npm install
npm run dev
# → http://localhost:3000
Creá el proyecto: entrá a supabase.com, creá un
proyecto nuevo (región recomendada: sa-east-1, São Paulo — la más cercana
a Paraguay).
Ejecutá el esquema: en el Dashboard → SQL Editor, pegá y ejecutá el
contenido de supabase/schema.sql. Crea todas las
tablas, triggers (moderación automática con 3 denuncias), políticas RLS y
las vistas de BI.
(Opcional) Datos de prueba: ejecutá supabase/seed.sql.
Crea 3 cuentas de prueba (contraseña worka2026):
[email protected] — empresa verificada con 2 vacantes[email protected] — candidata con una postulación[email protected] — acceso al backoffice /adminVariables de entorno: copiá .env.local.example a .env.local y
completá con los valores de Dashboard → Settings → API:
NEXT_PUBLIC_SUPABASE_URL=https://TU-PROYECTO.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
Google Auth (opcional): Dashboard → Authentication → Providers → Google. Necesitás un OAuth Client en Google Cloud Console con la redirect URI que te muestra Supabase. Sin esto, el ingreso por email/contraseña funciona igual.
Storage para CVs (próximo paso): creá un bucket privado cvs y aplicá
las políticas comentadas al final de schema.sql.
Correo (opcional): sin RESEND_API_KEY no sale ningún correo y los
avisos quedan solo dentro de la campanita. Con la clave puesta:
RESEND_API_KEY=re_...
EMAIL_FROM=Worka <[email protected]> # el dominio debe estar verificado en Resend
El cupo del proveedor lo comparte todo lo que manda Worka (invitaciones a entrevistas, avisos de postulación, Evaluar y el resumen semanal de vacantes). Los valores por defecto son los del plan gratuito de Resend:
| Variable | Por defecto | Para qué |
|---|---|---|
EMAIL_CAP_DIA | 100 | Tope diario del plan |
EMAIL_CAP_MES | 3000 | Tope mensual del plan |
EMAIL_RESERVA | 30 | Envíos del día que el resumen semanal NO toca, para que una invitación a entrevista nunca choque contra el cupo |
UNSUBSCRIBE_SECRET | service role key | Firma los enlaces de baja. Conviene una propia: rotar la service key invalidaría los enlaces de correos ya enviados |
Al pasar a un plan pago alcanza con subir EMAIL_CAP_DIA y EMAIL_CAP_MES
en Vercel; no hay nada que cambiar en el código.
Reiniciá el dev server. La app detecta las variables y pasa a modo live.
app/
(candidato)/ # Lado candidato (mobile-first): feed, detalle, postulaciones, perfil
empresa/ # Lado empresa (desktop-first): panel, vacantes, kanban, perfil
admin/ # Backoffice de moderación (rol admin)
onboarding/ # Alta de candidato con parsing de CV
actions.ts # Server Actions (postular, denunciar, publicar, moderar…)
components/ # UI compartida
lib/
data.ts # Capa de datos (Supabase o mock según configuración)
supabase/ # Clientes browser/server
mock-data.ts # Datos del modo demostración
supabase/
schema.sql # Esquema completo: tablas, triggers, RLS, vistas BI
seed.sql # Datos de prueba
pdf-parse o
llamada a un modelo ligero).applications (campo whatsapp_notified ya previsto).sign_up_completed,
job_applied, cv_uploaded_pdf, job_reported).expires_at) y calcular el sello
"Responde rápido" (promedio de reviewed_at - applied_at < 72 h).