Kyma is a voice-first screening platform for tutor and communication-heavy roles.
You send a candidate a link, they join a short guided interview in-browser, and your team gets a structured review with transcript, evidence, and decision support.
Website: https://kyma.kitsunelabs.xyz
- Faster first-pass screening without sacrificing quality
- Consistent evaluation across every candidate
- Evidence-based review with transcript-backed signals
- Human-in-the-loop decisions instead of blind auto-rejects
- Invite-driven candidate flow with realtime interview sessions
- Admin review workspace for sessions, notes, and outcomes
- Report copilot grounded in saved evidence and transcript context
- Policy controls for duration, resume behavior, and attempts
Screenshots captured from the live site at kyma.kitsunelabs.xyz.
Homepage — voice-first tutor screening positioning and interactive product demo.
Candidate flow — AI-led interview transcript with mid-interview teaching simulation.
Recruiter dashboard — structured review with transcript sync, rubric scores, and recommendation.
Regenerate screenshots after UI changes: bun run readme:capture
Public persona pages for programmatic SEO and audience-specific positioning:
- /for/education-teams
- /for/tutor-recruiters
- /for/online-learning-companies
- /for/communication-heavy-roles
- Hub: /for
- Public site: https://kyma.kitsunelabs.xyz
- Candidates start an auth-gated mock interview from the candidate portal
(
/candidate), which provisions an invite viacreateMockInterview. There is no unauthenticated public demo token.
- Demo video: coming soon
- Screenshots:
public/readme-hero.png,public/readme-candidate.png,public/readme-recruiter.png(captured from production viabun run readme:capture)
- Primary mark (SVG):
public/brand/kyma-mark.svg - Wordmark (SVG):
public/brand/kyma-logo.svg - Social preview (SVG source):
public/brand/og-image.svg - Raster exports:
public/kyma-mark.png,public/og-image.png(regenerate withbun run brand:export) - Favicon set:
app/icon.svg,public/favicon.ico,public/favicon-16x16.png,public/favicon-32x32.png,public/favicon-48x48.png - Touch/app icons:
public/apple-touch-icon.png,public/android-chrome-192x192.png,public/android-chrome-512x512.png - Dynamic social cards:
app/opengraph-image.tsx,app/twitter-image.tsx
If you want public trial access, the clean approach is:
- create a dedicated demo workspace in production
- generate invite links for that workspace
- optionally create a low-privilege recruiter demo account (never hard-code credentials in this repo)
Kyma can be self-hosted for teams that want infrastructure control.
- Bun runtime
- Convex project/deployment
- LiveKit server credentials
- Optional Clerk (admin auth)
bun install
bun run convex:sync-env # when using Clerk + Convex auth locally
bun run dev:stack # Convex + Next.js (recommended)For web-only UI work without Convex reactivity:
bun run convex:once
bun run devFor active backend/schema work, dev:stack already runs convex:dev. Optional agent worker:
For org-first auth cutover verification:
bun run verify:auth-org-rbacBootstrap Clerk permissions and Convex JWT template:
bun run clerk:setup-authAuth entry points:
- Candidates:
/sign-in/candidateor/sign-up/candidate - Recruiters:
/sign-in/recruiteror/sign-up/recruiter
Auth onboarding stuck after signup? Finish the session-token JSON step from bun run clerk:setup-auth, then see .docs/auth-org-rbac-cutover-checklist.md (KYMA_AUTH_DEBUG=1 helps).
If Convex schema validation fails with missing orgId during local cutover:
bun run db:cutover:org-rbac:dev
bun run convex:onceTo run the interviewer worker:
bun run agent:devSet these in .env.local:
NEXT_PUBLIC_CONVEX_URLNEXT_PUBLIC_LIVEKIT_URLLIVEKIT_API_KEYLIVEKIT_API_SECRET
Optional/advanced:
LIVEKIT_AGENT_NAMELIVEKIT_AGENT_STT_MODELLIVEKIT_AGENT_LLM_MODELLIVEKIT_AGENT_TTS_MODELKYMA_REVIEW_CHAT_MODEL(enables model-backed recruiter chat)
For Clerk-backed admin:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYCLERK_FRONTEND_API_URLorCLERK_JWT_ISSUER_DOMAIN
Current state (honest):
- Live interview agent model selection: works via environment variables (
LIVEKIT_AGENT_*_MODEL). - Recruiter report chat model selection: works via
KYMA_REVIEW_CHAT_MODEL. - True BYOK (per-workspace encrypted customer keys): not fully implemented yet; boundaries are scaffolded and documented, but not production-complete.
See TODO.md for implementation priorities.
- Product/business write-up: WRITE_UP.md
- Contribution guide: CONTRIBUTING.md
- License: LICENSE
- Engineering priorities: TODO.md
PRs are welcome. Please read CONTRIBUTING.md for workflow and quality checks.


