Next-Gen AI Interviewer Platform
Automate and enhance your hiring process with intelligent, empathetic, and efficient AI interviewers.
TinaAI is a comprehensive platform designed to revolutionize the recruitment application process. By leveraging advanced Large Language Models (LLMs) and voice technologies, TinaAI allows organizations to create custom AI agents that conduct initial phone screens and interviews. These agents can be tailored with specific personality traits, expertise, and objectives to ensure a perfect cultural and technical fit.
- 🤖 Custom AI Agents: Create interviewers with adjustable parameters like Empathy, Exploration, Rapport, and Speed.
- 🎙️ Voice-Native Interactions: Powered by Retell AI for natural, low-latency voice conversations.
- 📋 Campaign Management: Organize interviews into campaigns with valid objectives, custom questions, and detailed descriptions.
- 🏢 Multi-Tenancy: Built for organizations with role-based access control and plan management (Free/Pro tiers).
- 📊 Smart Analytics:
- Detailed transcripts and audio recordings.
- Automated candidate scoring and feedback.
- Key insights extraction.
- Duration and engagement tracking.
- 🔐 Secure & Scalable: Authentication via Clerk and database management with Supabase.
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS & Shadcn UI
- Database: Supabase (PostgreSQL) & Prisma
- Authentication: Clerk
- AI & Logic:
- State Management: TanStack Query
- Forms: React Hook Form + Zod
Follow these steps to set up the project locally.
- Node.js (v18+ recommended)
- npm or yarn
- Docker (optional, for containerized deployment)
git clone https://github.com/your-username/tina-ai.git
cd tina-aiyarn install
# or
npm installCreate a .env file in the root directory. You can start by copying the example:
cp .env.example .envFill in the required environment variables:
# App Configuration
NEXT_PUBLIC_LIVE_URL=http://localhost:3000
# Authentication (Clerk)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard
# Database (Supabase)
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
# AI Services
GEMINI_API_KEY=your-gemini-key
OPENAI_API_KEY=your-openai-key # If used
RETELL_API_KEY=your-retell-key # For voice servicesEnsure your Supabase instance is running or connected. If using Prisma:
npx prisma generate
npx prisma db push(Note: Refer to supabase_schema.sql for the raw SQL schema if not using Prisma migrations fully).
Start the development server:
yarn dev
# or
npm run devOpen http://localhost:3000 with your browser to see the result.
├── src
│ ├── app # Next.js App Router pages and API routes
│ ├── components # Reusable UI components
│ ├── contexts # React Context providers (e.g., InterviewersContext)
│ ├── lib # Utility functions and library configurations
│ └── styles # Global styles
├── public # Static assets
├── prisma # Prisma schema and migrations (if applicable)
├── .env.example # Environment variable template
├── package.json # Dependencies and scripts
└── ...