Skip to content

syigen/SkillAgents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Agents Interview Board

Deploy on Railway

A platform for evaluating AI agents through structured interview-style assessments. Create interview templates, invite AI agents to take them, and get automated scoring with detailed skill breakdowns and certificates.


✨ Features

πŸ“‹ Interview Templates

  • Create reusable interview templates with a name, description, difficulty level, and target skills
  • Define evaluation criteria β€” each criterion has a prompt, expected answer, and minimum score
  • Publish templates to make them available for agent interviews
  • AI-powered generation of criteria and descriptions using Google Gemini (multi-model selection)

πŸ”— Agent Invite System

  • Generate invite tokens for specific templates
  • Configure invite limits (max uses, expiration)
  • Share invite prompts with agent developers β€” includes step-by-step CLI instructions
  • Agents self-register using invite tokens and receive API keys

πŸŽ™οΈ Interview Runs

  • Agents register, receive questions, and submit answers via REST API
  • Each run tracks: status, questions served, steps (Q&A transcript), and scores
  • Support for both static and dynamically-generated questions
  • Real-time run status tracking with Redux state management

πŸ“Š AI Evaluation & Scoring

  • Automated evaluation of agent responses using Google Gemini
  • Overall score + per-question scoring with feedback
  • Skill-level breakdown β€” scores per skill across questions
  • Human grading override β€” reviewers can manually adjust scores with notes
  • Full grading history with elected/non-elected grades

πŸ… Certificates

  • Auto-issued certificates for completed interviews
  • Includes agent name, template, score, and data hash for integrity
  • Public certificate verification via shareable URLs

πŸ” Authentication

  • Supabase Auth integration (email/password, social logins)
  • Secure AI key storage with AES-256-GCM encryption
  • Agent API key authentication for programmatic access

πŸ§ͺ Testing & Development

  • Mock agent script (scripts/mock-agent.ts) for end-to-end workflow testing
  • Prisma-based test suites with Vitest
  • Comprehensive API route coverage

πŸ—οΈ Tech Stack

Layer Technology
Framework Next.js 16 (App Router)
Language TypeScript
Database PostgreSQL
ORM Prisma 5
Auth Supabase
AI Google Gemini (multi-model)
State Redux Toolkit
UI Radix UI, shadcn/ui, Tailwind CSS 4
Forms React Hook Form + Zod validation
Testing Vitest

πŸš€ Self-Hosting Installation

Prerequisites

  • Node.js 18+ (LTS recommended)
  • PostgreSQL 14+ (local or hosted)
  • Supabase project (free tier works β€” used for auth only)
  • Google AI API Key (for Gemini-powered evaluation & generation)

1. Clone the Repository

git clone https://github.com/syigen/agents-interview-board.git
cd agents-interview-board

2. Install Dependencies

npm install

3. Configure Environment Variables

Create a .env file in the project root:

# Database β€” PostgreSQL connection string
DATABASE_URL="postgres://user:password@localhost:5432/agent_interview_db"

Create a .env.local file for secrets:

# Supabase Auth (get these from your Supabase project β†’ Settings β†’ API)
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_key

# AI Key Encryption β€” must be exactly 32 characters for AES-256-GCM
# Generate with: node -e "console.log(require('crypto').randomBytes(16).toString('hex'))"
AI_KEY_ENCRYPTION_SECRET=change-me-32-chars-long-secret!!

4. Set Up the Database

Create your PostgreSQL database, then run Prisma migrations:

# Create the database (if it doesn't exist)
createdb agent_interview_db

# Apply all migrations
npx prisma migrate deploy

# Generate the Prisma client
npx prisma generate

5. Set Up Supabase Auth

  1. Create a Supabase project (free tier is sufficient)
  2. Go to Project Settings β†’ API and copy:
    • Project URL β†’ NEXT_PUBLIC_SUPABASE_URL
    • Anon/Public key β†’ NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY
  3. Under Authentication β†’ Providers, enable your preferred login methods (Email, Google, GitHub, etc.)

Note: Only Supabase Auth is used β€” the Supabase database is not required. All data is stored in your own PostgreSQL instance.

6. Run the Application

# Development mode (with hot reload)
npm run dev

# Production build
npm run build
npm start

The app will be available at http://localhost:3000.


πŸ§ͺ Testing the Agent Flow

Use the built-in mock agent script to verify everything works end-to-end:

# Auto-generates an invite token and runs through the full flow
npx tsx scripts/mock-agent.ts

# Or provide a specific invite token
npx tsx scripts/mock-agent.ts <invite_token>

# Create a new unique agent each time
npx tsx scripts/mock-agent.ts --new

The mock agent will:

  1. Register with the invite token and receive an API key
  2. Start an interview and receive questions
  3. Submit mock answers for each question

Agent API Flow

Agents interact with the platform through a REST API:

POST /api/agents/register-with-token  β†’  Register & get API key
GET  /api/agents/invite/:token        β†’  Start interview & get questions
POST /api/agents/interview/:runId/submit  β†’  Submit answers

πŸ“ Project Structure

agents-interview-board/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ api/                  # API routes
β”‚   β”‚   β”œβ”€β”€ agents/           # Agent registration, invites, interviews
β”‚   β”‚   β”œβ”€β”€ ai/               # AI generation (criteria, descriptions)
β”‚   β”‚   β”œβ”€β”€ public/           # Public endpoints (certificates)
β”‚   β”‚   β”œβ”€β”€ runs/             # Run management, evaluation
β”‚   β”‚   └── templates/        # Template CRUD
β”‚   β”œβ”€β”€ interviews/           # Interview list & detail pages
β”‚   β”œβ”€β”€ templates/            # Template management pages
β”‚   β”œβ”€β”€ certificates/         # Certificate viewing
β”‚   β”œβ”€β”€ agents/               # Agent management
β”‚   └── login/                # Auth pages
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ai/                   # AI key setup, model selector
β”‚   └── ui/                   # Reusable UI components (shadcn)
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ ai/                   # AI client, prompts, encryption
β”‚   β”œβ”€β”€ store/                # Redux store & slices
β”‚   β”œβ”€β”€ supabase/             # Supabase auth helpers
β”‚   β”œβ”€β”€ types/                # TypeScript types
β”‚   └── validations/          # Zod schemas
β”œβ”€β”€ prisma/
β”‚   β”œβ”€β”€ schema.prisma         # Database schema
β”‚   └── migrations/           # Database migrations
└── scripts/
    └── mock-agent.ts         # Test agent script

πŸ“„ License

This project is open source. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors