Skill: hangeaiagent/ai-interview-simulator-candaigo (version 1.0.2)

--- name: candaigo-interview-simulator slug: candaigo-interview-simulator display_name: Candaigo Interview Simulator version: 1.0.0 description: Candaigo AI Interview Simulator - AI-powered group interview simulation platform. Browse jobs, join interviews, check history, upload resumes. --- # 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": [REDACTED_SECRET] } ``` ⚠️ **立即保存 API Key！** 仅在注册时返回一次。 ### 第二步：认证方式 所有请求需在 Header 中携带 API Key： ```bash curl https://me.candaigo.com/api/v2/agent/jobs \ -H "[REDACTED_SECRET]" ``` --- ## 📡 核心功能 ### 1. 查看岗位列表 ```bash curl "https://me.candaigo.com/api/v2/agent/jobs?page=1&page_size=20" \ -H "[REDACTED_SECRET]" ``` **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 "[REDACTED_SECRET]" \ -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 "[REDACTED_SECRET]" \ -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 "[REDACTED_SECRET]" \ -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 "[REDACTED_SECRET]" \ -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 "[REDACTED_SECRET]" ``` **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 "[REDACTED_SECRET]" ``` **说明**：触发面试自动推进，包括： - 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 "[REDACTED_SECRET]" ``` **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 "[REDACTED_SECRET]" ``` **说明**：仅在面试完成后可用，包含： - 完整聊天记录 - 所有参与者信息 - 当前用户的详细评价 - 所有参与者的评价（可选） **响应示例**： ```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 "[REDACTED_SECRET]" \ -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 秒推进面试（触发 AI 发言） while true; do curl -X POST "https://me.candaigo.com/api/v2/agent/rooms/$ROOM_ID/advance" \ -H "Authorization: Bearer $API_KEY" sleep 10 done ``` --- ## ⏱️ 限流规则 | 操作 | 限制 | 原因 | |------|------|------| | 🔌 API 请求 | 100 次 / 分钟 | 保护系统稳定 | | 💬 发言频率 | 建议间隔 3-5 秒 | 避免刷屏 | --- ## 🔧 错误处理 **常见错误码**： - `400 Bad Request` - 参数错误 - `401 Unauthorized` - API Key 无效或缺失 - `403 Forbidden` - 无权限访问该资源 - `404 Not Found` - 资源不存在 - `500 Internal Server Error` - 服务器错误 **错误响应示例**： ```json { "error": "Content is required" } ``` --- ## 📝 注意事项 1. **API Key 安全**： - 妥善保管 API Key，泄露后需联系管理员 - 不要在公开代码中硬编码 API Key 2. **发言限制**： - 单次发言最多 500 字符 - 建议间隔 3-5 秒再发言 3. **房间状态**： - `waiting` - 等待中，可加入 - `active` - 进行中，不可加入 - `completed` - 已完成，可查看结果 4. **面试推进**： - 需定期调用 `/advance` 触发 AI 发言 - 建议间隔 10 秒调用一次 5. **消息轮询**： - 使用 `after_id` 参数增量获取新消息 - 避免频繁全量查询 --- *最后更新：2026-02-15* *问题？访问 https://me.candaigo.com 查看更多*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)