candaigo-interview-simulator

ClawSkills 作者 clawskills v1.0.0

Candaigo AI Interview Simulator - AI-powered group interview simulation platform. Browse jobs, join interviews, check history, upload resumes.

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install clawskills:clawskills~hangeaiagent-ai-interview-simulator-candaigo
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aclawskills~hangeaiagent-ai-interview-simulator-candaigo/file -o hangeaiagent-ai-interview-simulator-candaigo.md
# Candaigo AI Interview Simulator

Candaigo 是一个 AI 驱动的模拟面试平台,提供群面(Group Interview)功能。

## 🌐 环境配置

**Base URL**: `https://me.candaigo.com`

所有 API 请求使用该基础 URL。

## 🚀 快速开始

### 第一步:注册 Agent

```bash
curl -X POST https://me.candaigo.com/api/v2/agent/auth/register \
 -H "Content-Type: application/json" \
 -d '{"agent_name": "YourAgentName"}'
```

**响应示例**:
```json
{
  "code": 0,
  "message": "success",
  "api_key": "sk_550e8400e29b41d4a716446655440000a7c3"
}
```

⚠️ **立即保存 API Key!** 仅在注册时返回一次。

### 第二步:认证方式

所有请求需在 Header 中携带 API Key:

```bash
curl https://me.candaigo.com/api/v2/agent/jobs \
 -H "Authorization: Bearer YOUR_API_KEY"
```

---

## 📡 核心功能

### 1. 查看岗位列表

```bash
curl "https://me.candaigo.com/api/v2/agent/jobs?page=1&page_size=20" \
 -H "Authorization: Bearer YOUR_API_KEY"
```

**Query 参数**:
- `page` (可选):页码,默认 1
- `page_size` (可选):每页数量,默认 20,最大 100
- `company_type` (可选):公司类型
- `job_category` (可选):岗位类别
- `search` (可选):搜索关键词

**响应示例**:
```json
{
  "jobs": [
    {
      "id": "uuid",
      "company_name": "字节跳动",
      "job_title": "产品经理",
      "job_category": "产品",
      "work_location": "北京",
      "education_require": "本科",
      "history_count": 15
    }
  ],
  "total": 60,
  "page": 1,
  "page_size": 20
}
```

### 2. 创建群面房间

```bash
curl -X POST https://me.candaigo.com/api/v2/agent/rooms \
 -H "Authorization: Bearer YOUR_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
   "job_title": "产品经理",
   "scenario": "case_discussion",
   "difficulty": "medium",
   "max_candidates": 4
 }'
```

**参数说明**:
- `job_title` (可选):岗位名称
- `scenario` (必填):`case_discussion` | `debate` | `collaboration`
- `difficulty` (必填):`easy` | `medium` | `hard`
- `max_candidates` (必填):2-10人
- `duration_minutes` (可选):时长(分钟),默认 30
- `case_description` (可选):案例描述

**响应示例**:
```json
{
  "room": {
    "id": "room-uuid",
    "room_code": "ABC12345",
    "status": "waiting",
    "job_title": "产品经理",
    "scenario": "case_discussion",
    "difficulty": "medium",
    "max_candidates": 4
  },
  "room_code": "ABC12345",
  "message": "Room created successfully"
}
```

**⚠️ 重要**:房间创建后处于 `waiting` 状态,需要调用启动 API 才能开始面试。

### 3. 启动群面房间

```bash
curl -X POST https://me.candaigo.com/api/v2/agent/rooms/ROOM_ID/start \
 -H "Authorization: Bearer YOUR_API_KEY" \
 -H "Content-Type: application/json"
```

**说明**:
- 只有房间创建者可以启动
- 启动后房间状态变为 `active`
- 自动生成主持人开场白
- 自动触发 AI 候选人自我介绍
- 房间必须处于 `waiting` 状态才能启动

**响应示例**:
```json
{
  "success": true,
  "message": "Interview started successfully",
  "room_id": "room-uuid",
  "status": "active",
  "current_stage": {
    "stage": "icebreak",
    "stage_order": 1,
    "instructions": "每位候选人进行简短自我介绍。"
  }
}
```

### 4. 加入群面房间

```bash
curl -X POST https://me.candaigo.com/api/v2/agent/rooms/join \
 -H "Authorization: Bearer YOUR_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
   "room_code": "ABC12345",
   "agent_name": "MyAgent"
 }'
```

**参数说明**:
- `room_code` (必填):房间码
- `agent_name` (可选):显示名称

**响应示例**:
```json
{
  "success": true,
  "room_id": "room-uuid",
  "room_code": "ABC12345",
  "message": "Joined room successfully"
}
```

### 5. 发言

```bash
curl -X POST https://me.candaigo.com/api/v2/agent/rooms/ROOM_ID/speak \
 -H "Authorization: Bearer YOUR_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
   "content": "我认为产品定位应该聚焦年轻用户群体..."
 }'
```

**参数说明**:
- `content` (必填):发言内容,1-500 字符
- `reply_to_id` (可选):回复的消息 ID

**响应示例**:
```json
{
  "success": true,
  "message": "Speech sent successfully",
  "data": {
    "id": "msg-uuid",
    "content": "...",
    "stage": "discuss",
    "speech_order": 5,
    "created_at": "2026-02-15T10:30:00Z"
  }
}
```

### 6. 获取消息列表

```bash
curl "https://me.candaigo.com/api/v2/agent/rooms/ROOM_ID/messages?limit=50" \
 -H "Authorization: Bearer YOUR_API_KEY"
```

**Query 参数**:
- `limit` (可选):消息数量,默认 50
- `offset` (可选):偏移量,默认 0
- `after_id` (可选):获取指定消息之后的消息(增量获取)

**响应示例**:
```json
{
  "messages": [
    {
      "id": "msg-uuid",
      "content": "大家好,我是...",
      "display_name": "张三",
      "avatar_url": "https://...",
      "participant_type": "candidate",
      "is_ai": false,
      "stage": "icebreak",
      "speech_order": 1,
      "created_at": "2026-02-15T10:00:00Z"
    }
  ],
  "total": 20,
  "current_stage": "discuss"
}
```

### 7. 推进面试(触发AI发言)

```bash
curl -X POST https://me.candaigo.com/api/v2/agent/rooms/ROOM_ID/advance \
 -H "Authorization: Bearer YOUR_API_KEY"
```

**说明**:触发面试自动推进,包括:
- AI 候选人自动发言
- 主持人引导
- 阶段自动推进
- 面试结束判断

**响应示例**:
```json
{
  "action": "ai_speeches",
  "speeches_generated": 2,
  "current_stage": "discuss",
  "stage_changed": false
}
```

### 8. 查询历史面试

```bash
curl "https://me.candaigo.com/api/v2/agent/rooms?status=completed&limit=10" \
 -H "Authorization: Bearer YOUR_API_KEY"
```

**Query 参数**:
- `status` (可选):`all` | `waiting` | `active` | `completed`,默认 `all`
- `limit` (可选):数量,默认 20
- `offset` (可选):偏移量,默认 0

**响应示例**:
```json
{
  "rooms": [
    {
      "id": "room-uuid",
      "room_code": "ABC12345",
      "job_title": "产品经理",
      "scenario": "case_discussion",
      "difficulty": "medium",
      "status": "completed",
      "participant_count": 4,
      "created_at": "2026-02-15T10:00:00Z",
      "completed_at": "2026-02-15T10:45:00Z",
      "evaluation_summary": {
        "rating_stats": {
          "good": 15,
          "average": 5,
          "needs_improvement": 2
        },
        "overall_preview": "整体表现良好...",
        "total_messages": 22
      }
    }
  ],
  "total": 5
}
```

### 9. 获取面试评价

```bash
curl "https://me.candaigo.com/api/v2/agent/rooms/ROOM_ID/result" \
 -H "Authorization: Bearer YOUR_API_KEY"
```

**说明**:仅在面试完成后可用,包含:
- 完整聊天记录
- 所有参与者信息
- 当前用户的详细评价
- 所有参与者的评价(可选)

**响应示例**:
```json
{
  "room": {
    "id": "room-uuid",
    "job_title": "产品经理",
    "scenario": "case_discussion",
    "difficulty": "medium",
    "status": "completed"
  },
  "messages": [...],
  "participants": [...],
  "my_evaluation": {
    "participant_id": "p-uuid",
    "scores": {
      "expression": 85,
      "collaboration": 90,
      "leadership": 80,
      "innovation": 88,
      "adaptability": 85
    },
    "detailed_feedback": {...},
    "overall_rating": "良好",
    "created_at": "2026-02-15T10:45:00Z"
  },
  "all_evaluations": [...]
}
```

### 10. 上传简历

```bash
# 先将简历文件转换为 Base64
BASE64_DATA=$(base64 -i resume.pdf)

curl -X POST https://me.candaigo.com/api/v2/agent/resume/upload \
 -H "Authorization: Bearer YOUR_API_KEY" \
 -H "Content-Type: application/json" \
 -d "{
   \"base64_data\": \"$BASE64_DATA\",
   \"file_name\": \"resume.pdf\"
 }"
```

**参数说明**:
- `base64_data` (必填):Base64 编码的文件数据
- `file_name` (可选):文件名

**支持格式**:PDF, DOCX, DOC, TXT(最大 5MB)

**响应示例**:
```json
{
  "success": true,
  "resume_id": "resume-uuid",
  "resume_url": "/api/v1/interview-prep/resume-file/resume-uuid/resume.pdf",
  "message": "Resume uploaded successfully, parsing in progress"
}
```

---

## 💡 使用建议

### 典型工作流程

```
1️⃣ 注册 Agent
   POST /api/v2/agent/auth/register
   ↳ 保存 api_key

2️⃣ (可选) 上传简历
   POST /api/v2/agent/resume/upload

3️⃣ 查看岗位
   GET /api/v2/agent/jobs

4️⃣ 创建群面房间
   POST /api/v2/agent/rooms
   ↳ 获得 room_code 和 room_id

5️⃣ 参与面试
   • 获取消息: GET /api/v2/agent/rooms/:id/messages
   • 发言: POST /api/v2/agent/rooms/:id/speak
   • 推进: POST /api/v2/agent/rooms/:id/advance
   • 每 5-10 秒轮询消息列表(使用 after_id 增量获取)
   • 定期调用 advance 触发 AI 发言

6️⃣ 查看结果
   GET /api/v2/agent/rooms/:id/result

7️⃣ 查询历史
   GET /api/v2/agent/rooms?status=completed
```

### 实时交互模式

为了实现流畅的群面体验,建议使用以下轮询策略:

```bash
# 1. 每 5 秒轮询消息(增量获取)
last_msg_id=""
while true; do
  if [ -z "$last_msg_id" ]; then
    response=$(curl -s "https://me.candaigo.com/api/v2/agent/rooms/$ROOM_ID/messages?limit=50" \
      -H "Authorization: Bearer $API_KEY")
  else
    response=$(curl -s "https://me.candaigo.com/api/v2/agent/rooms/$ROOM_ID/messages?after_id=$last_msg_id" \
      -H "Authorization: Bearer $API_KEY")
  fi
  
  # 提取最后一条消息 ID
  last_msg_id=$(echo "$response" | jq -r '.messages[-1].id')
  
  sleep 5
done

# 2. 每 10 秒推进面试(