Skip to content

KitsuneKode/kyma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

268 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kyma

Kyma logo

Live Site License: MIT Realtime Stack Backend

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

Why teams use Kyma

  • 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

Product capabilities

  • 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

Product preview

Screenshots captured from the live site at kyma.kitsunelabs.xyz.

Kyma marketing homepage with hero and product preview

Homepage — voice-first tutor screening positioning and interactive product demo.

Kyma live interview transcript with teaching simulation

Candidate flow — AI-led interview transcript with mid-interview teaching simulation.

Kyma recruiter review workspace with rubric scores

Recruiter dashboard — structured review with transcript sync, rubric scores, and recommendation.

Regenerate screenshots after UI changes: bun run readme:capture

Solutions (SEO landing pages)

Public persona pages for programmatic SEO and audience-specific positioning:

Demo and access

  • Public site: https://kyma.kitsunelabs.xyz
  • Candidates start an auth-gated mock interview from the candidate portal (/candidate), which provisions an invite via createMockInterview. There is no unauthenticated public demo token.

Product walkthrough media

  • Demo video: coming soon
  • Screenshots: public/readme-hero.png, public/readme-candidate.png, public/readme-recruiter.png (captured from production via bun run readme:capture)

Icon and brand assets

  • 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 with bun 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)

Self-hosting

Kyma can be self-hosted for teams that want infrastructure control.

Requirements

  • Bun runtime
  • Convex project/deployment
  • LiveKit server credentials
  • Optional Clerk (admin auth)

Quick start

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 dev

For active backend/schema work, dev:stack already runs convex:dev. Optional agent worker:

For org-first auth cutover verification:

bun run verify:auth-org-rbac

Bootstrap Clerk permissions and Convex JWT template:

bun run clerk:setup-auth

Auth entry points:

  • Candidates: /sign-in/candidate or /sign-up/candidate
  • Recruiters: /sign-in/recruiter or /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:once

To run the interviewer worker:

bun run agent:dev

Environment variables

Set these in .env.local:

  • NEXT_PUBLIC_CONVEX_URL
  • NEXT_PUBLIC_LIVEKIT_URL
  • LIVEKIT_API_KEY
  • LIVEKIT_API_SECRET

Optional/advanced:

  • LIVEKIT_AGENT_NAME
  • LIVEKIT_AGENT_STT_MODEL
  • LIVEKIT_AGENT_LLM_MODEL
  • LIVEKIT_AGENT_TTS_MODEL
  • KYMA_REVIEW_CHAT_MODEL (enables model-backed recruiter chat)

For Clerk-backed admin:

  • NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
  • CLERK_SECRET_KEY
  • CLERK_FRONTEND_API_URL or CLERK_JWT_ISSUER_DOMAIN

BYOK and model routing status

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.

Docs

Contributing

PRs are welcome. Please read CONTRIBUTING.md for workflow and quality checks.

About

Voice-first AI screening platform for tutor and communication-heavy hiring workflows.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages