Skip to content

Blackman99/eval-mate

Repository files navigation

AI Agent Administrator Interview Bot

An automated interview bot designed specifically for hiring AI Agent Administrators, currently running on Telegram.

Interviewers schedule interviews once — the bot handles everything else: research, question generation, conducting the interview, and delivering a structured evaluation report.

中文文档 · Landing Page

Features

  • Natural language scheduling — describe the interview in plain text (e.g. "Interview John @john tomorrow at 3pm, 45 minutes") and Claude extracts all fields automatically
  • Automated research — 2 hours before the interview, the bot searches for the latest AI Agent ecosystem updates and generates tailored questions
  • Fully automated interview — the candidate chats with the bot on Telegram; the bot asks questions, follows up dynamically, and adapts in real time
  • Smart evaluation report — after the interview, a structured report with per-dimension scores and a hire/no-hire recommendation is sent to the interviewer
  • Reminders & notifications — candidate is reminded 15 minutes before, and notified automatically when it's time to start
  • Smart self-introduction analysis — before the interview begins, the bot collects a self-introduction from the candidate, extracts tech stack and experience via AI, and dynamically adjusts question focus and depth

Interview Dimensions

Dimension Coverage
AI Fundamentals LLM principles, prompt engineering, RAG, hallucination mitigation, fine-tuning (LoRA, RLHF)
Agent Frameworks LangChain, AutoGen, CrewAI, Claude SDK, LlamaIndex hands-on experience
System Operations Deployment, monitoring, logging, incident response, disaster recovery
Business Communication Requirements analysis, cross-team collaboration, ROI evaluation, stakeholder reporting

Quick Start

Prerequisites

  • Node.js 20+
  • Telegram Bot Token (create one via @BotFather)
  • Anthropic API Key

Install

git clone https://github.com/Blackman99/eval-mate.git
cd eval-mate
npm install

Configure

cp .env.example .env.local

Edit .env.local:

TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_ADMIN_CHAT_ID=your_admin_chat_id_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here

# Optional
# ANTHROPIC_BASE_URL=https://api.anthropic.com
# DB_PATH=./interviews.db
# HTTPS_PROXY=http://127.0.0.1:7890

To get your TELEGRAM_ADMIN_CHAT_ID, message @userinfobot on Telegram.

Run

# Development (hot reload)
npm run dev

# Production
npm run build && npm start

Bot Commands

Interviewer

Command Description
/schedule Schedule an interview — supports natural language input
/status List all upcoming interviews
/cancel [id] Cancel an interview by ID

Scheduling examples:

/schedule John (@john), tomorrow at 3pm, 45 minutes
/schedule Book an interview with Jane @jane on March 15 at 14:30, one hour

The system will automatically collect research and generate questions 2 hours before the interview.

Candidate

  1. Send /start to the bot first — required so the bot can reach you proactively
  2. The bot will notify you when it's time for your interview
  3. You can also send /begin after the scheduled time to start immediately
  4. The bot will ask for a self-introduction first — your background helps tailor the questions
  5. Just reply in the chat to answer questions

Architecture

src/
├── bot.ts          # Telegram bot entry point — command & message routing
├── scheduler.ts    # Cron jobs: notifications, reminders, research triggers
├── researcher.ts   # Research & question generation (Claude + Web Search)
├── interviewer.ts  # Interview conductor & evaluation report generator
├── parser.ts       # Natural language parsing (extract scheduling info)
├── db.ts           # SQLite persistence (sql.js)
├── config.ts       # Environment variable config
└── types.ts        # TypeScript type definitions (InterviewPhase, CandidateProfile, etc.)

Stack:

  • grammY — Telegram Bot framework
  • Anthropic Claude — claude-opus-4-6 with extended thinking and web search
  • sql.js — pure JS SQLite, no native dependencies
  • node-cron — cron-based task scheduling
  • TypeScript + ESM

Interview Status Flow

pending → researching → ready → notified → intro → in_progress → completed
                                                                ↘ cancelled
Status Description
pending Scheduled, waiting for research (triggers 2 hours before)
researching Collecting research and generating questions
ready Questions ready, waiting for interview time
notified Candidate notified, waiting for them to start
intro Collecting candidate self-introduction and analyzing background
in_progress Interview in progress (questions tailored to candidate's profile)
completed Interview finished, report sent
cancelled Cancelled

Notes

  • Candidates must send /start to the bot before their interview — otherwise the bot cannot reach them proactively
  • Schedule at least 2 hours in advance to allow time for research and question generation
  • Proxy support: set HTTPS_PROXY or HTTP_PROXY if your environment requires it

About

The auto interviewer for AI agent Manager job

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors