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
Get your CV scored free with AI — no account needed. HRInno also runs recruitment, time & attendance, absences, and performance for growing teams.
BusinessTypeScript · PLpgSQLGitHub @GregS83-HUOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
HRInno is a multi-tenant HR platform built with Next.js 15 (App Router) and Supabase (Postgres,
Auth, Storage). Each company is a tenant scoped by company_id/RLS. Core modules: recruitment
(job postings, AI-assisted CV scoring and candidate interview generation), an AI wellbeing
chatbot (PERMA-based happiness check-ins), time & attendance, absences (including medical
certificate upload with OCR extraction), and performance management (goals and pulse
check-ins). Access to plan-gated modules is enforced server-side per request, not just hidden in
the UI.Read the full README ↗HRInno is a multi-tenant HR platform built with Next.js 15 (App Router) and Supabase (Postgres,
Auth, Storage). Each company is a tenant scoped by company_id/RLS. Core modules: recruitment
(job postings, AI-assisted CV scoring and candidate interview generation), an AI wellbeing
chatbot (PERMA-based happiness check-ins), time & attendance, absences (including medical
certificate upload with OCR extraction), and performance management (goals and pulse
check-ins). Access to plan-gated modules is enforced server-side per request, not just hidden in
the UI. Billing runs through Stripe; plan limits and feature flags live in the forfait table
and are read live on every check, not cached at deploy time.
For product-level details (target audience, pricing, roadmap, known limitations), see
docs/product-brief.md. For how the plan-gating layer, the
onboarding gate, and the data retention job actually work, see
ARCHITECTURE.md.
npm install
npm run dev
Open http://localhost:3000.
You'll need a .env.local with the environment variables listed below, pointing at a Supabase
project with this app's schema and RLS policies applied. npm run lint runs ESLint;
npx tsc --noEmit type-checks the project.
Names only — see your team's secrets manager for values. Grouped by what they configure:
Supabase
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYApp URLs
NEXT_PUBLIC_SITE_URLNEXT_PUBLIC_APP_ORIGINNEXT_PUBLIC_APP_URLAI / OCR providers
OPENROUTER_API_KEYOCRSPACE_API_KEYStripe (billing)
STRIPE_SECRET_KEYSTRIPE_SECRET_KEY_TEST (optional — the webhook route accepts both live and test-mode events if set)STRIPE_WEBHOOK_SECRETSTRIPE_WEBHOOK_SECRET_TEST (optional, pairs with the above)NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYRESEND_API_KEYSecurity / misc
ENCRYPTION_KEY (encrypts per-company SMTP credentials at rest — see lib/encryption.ts)IP_SALT (hashes visitor IPs for the anonymous happiness-session flow)CRON_SECRET (authenticates Vercel Cron requests to the scheduled jobs — see ARCHITECTURE.md)CALENDLY_ONBOARDING_URL (booking link sent in onboarding emails)VERCEL_URL and VERCEL_OIDC_TOKEN are provisioned automatically by Vercel and don't need to be
set locally.