AI Interview 是一个面向招聘团队的开源智能招聘管理系统。它把岗位发布、简历 AI 解析、候选人匹配评分、部门评审、AI 面试助手、在线笔试、Offer 管理、招聘漏斗和可视化工作流放进同一个产品里。
项目适合作为企业内部招聘中台的起点,也适合二次开发成 AI 面试、人才测评、招聘自动化或垂直行业人才管理产品。
招聘流程里最耗时间的部分,往往不是点击按钮,而是反复阅读、整理和同步信息:简历要读,岗位要对齐,面试题要准备,面试反馈要汇总,候选人状态要推进,管理者还要看到漏斗数据。
AI Interview 的设计目标是让 AI 进入这些真实工作环节:
- 从简历中提取候选人画像,而不是只保存附件。
- 结合岗位要求生成匹配评分、风险点和面试关注点。
- 根据候选人背景生成结构化面试题。
- 汇总面试官评分、文字评价和转写内容,生成 AI 综合面试分析。
- 通过模型配置、提示词配置和工作流编排,让团队可以持续调优招聘策略。
上传简历后,系统会生成候选人基本信息、技能标签、岗位匹配分、初筛建议、风险提醒和可追问方向。HR 可以基于 AI 建议继续推进、转岗、淘汰或发起部门评审。
面试评分页将候选人简历最大化展示在左侧,右侧提供 AI 生成的结构化题目、参考答案、评分标准和面试小组提交状态。面试官可以边看简历边评分,也可以上传录音并进入后续分析。
面试完成后,系统会汇总多位面试官评分、评价文本、面试题表现和综合建议,生成可追踪的候选人评估报告,帮助 HR 和用人部门减少信息丢失。
系统支持 OpenAI SDK 兼容接口,默认适配 DashScope,也可以连接 OpenAI 或企业内部模型网关。管理员可以在页面中维护模型、Base URL、API Key 和不同任务的提示词模板。
| 模块 | 能力 |
|---|---|
| 岗位管理 | 岗位创建、公开发布、JD 生成、岗位统计、公开职位页 |
| 简历管理 | 单个/批量上传、重复检查、PDF 预览、AI 解析、匹配评分、转岗重评 |
| AI 初筛 | 候选人画像、初筛建议、风险点、岗位匹配解释、人工确认闭环 |
| 协同评审 | 用人部门评审链接、技术评价、HR 综合决策、淘汰原因归档 |
| 面试管理 | 多轮面试、面试小组、AI 题目生成、评分标准、录音上传、转写与综合评价 |
| 在线笔试 | 算法题、选择题、问答题、公开答题链接、代码运行和 AI 评价 |
| Offer 管理 | Offer 模板、发送、接受/拒绝确认、状态流转 |
| 招聘仪表盘 | 招聘漏斗、岗位分析、面试官分析、时间线趋势 |
| 工作流引擎 | React Flow 可视化编排,内置 LLM、条件、邮件、HTTP 等节点 |
| 系统设置 | LLM 配置、邮件配置、提示词管理、用户与角色管理 |
- 前端:React 19、Vite、TypeScript、Ant Design、React Router、Recharts、React Flow
- 后端:FastAPI、SQLAlchemy、Alembic、Pydantic、JWT、Background Tasks
- 数据库:PostgreSQL 15
- AI:OpenAI SDK 兼容接口,支持 DashScope、OpenAI 或企业内部兼容模型网关
- 文档与部署:Docker Compose、Nginx、GitHub Actions
- Node.js 20+
- Python 3.11+
- Docker Desktop 或本地 PostgreSQL 15+
- FFmpeg(用于音频处理;Docker 镜像已内置)
cp .env.example .env
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env根据需要修改 backend/.env 中的 SECRET_KEY、DATABASE_URL、INITIAL_ADMIN_PASSWORD、OPENAI_API_KEY 和 OPENAI_BASE_URL。LLM 也可以登录后在“系统设置”页面配置。
docker compose up -d postgrescd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000后端 API 文档:http://localhost:8000/docs
cd frontend
npm install
npm run dev打开 http://localhost:5173。开发环境默认管理员为 admin@example.com / admin123,也可以通过 INITIAL_ADMIN_EMAIL 和 INITIAL_ADMIN_PASSWORD 自定义。
项目内置了演示数据、测试简历 PDF 和截图脚本,便于生成 README、博客或发布页素材。
# 1. 准备一个演示数据库
docker exec ai_interview_db sh -c "createdb -U postgres ai_interview_demo" || true
# 2. 写入岗位、候选人、AI 分析、面试、笔试、工作流等演示数据
cd backend
DATABASE_URL=postgresql://postgres:postgres@localhost:5433/ai_interview_demo python scripts/seed_demo_data.py
# 3. 生成真实感测试简历 PDF
cd ..
node scripts/generate-demo-resume-pdfs.mjs
# 4. 启动前后端后,重新截取全部宣传图
node scripts/capture-demo-screenshots.mjs截图会输出到 docs/assets/screenshots/。脚本默认使用 admin@example.com / admin123 登录本地应用,并覆盖生成仪表盘、简历 AI 分析、AI 面试评分、面试结果分析、模型配置、提示词配置等截图。
生产部署建议先修改根目录 .env,至少设置高强度 SECRET_KEY 和 INITIAL_ADMIN_PASSWORD。
docker compose -f docker-compose.prod.yml up --build -d默认访问地址为 http://localhost。前端 Nginx 会代理 /api 和 /uploads 到后端服务。
make db # 启动 PostgreSQL
make dev-backend # 启动 FastAPI
make dev-frontend # 启动 Vite
make test-backend # 运行后端测试
make build-frontend # 构建前端
make docker-prod # 构建并启动生产 Compose.
├── backend/ # FastAPI API、模型、服务、路由、Alembic 迁移
├── frontend/ # React + Vite 前端应用
├── docs/ # 宣传博客、产品图和架构图
├── scripts/ # 演示简历 PDF 与截图生成脚本
├── docker-compose.yml # 开发数据库
├── docker-compose.prod.yml # 生产编排
└── Makefile # 常用开发命令
| 变量 | 说明 |
|---|---|
DATABASE_URL |
后端数据库连接串 |
SECRET_KEY |
JWT 签名密钥,生产环境必须设置 |
INITIAL_ADMIN_EMAIL |
首次启动创建的管理员邮箱 |
INITIAL_ADMIN_PASSWORD |
首次启动创建的管理员密码 |
CORS_ORIGINS |
允许跨域来源,多个值用逗号分隔 |
OPENAI_API_KEY |
兼容 OpenAI SDK 的模型服务密钥 |
OPENAI_BASE_URL |
模型服务 Base URL |
LLM_PROVIDER |
模型提供方标识,默认 dashscope |
LLM_MODEL |
默认模型名 |
VITE_API_URL |
前端 API 地址,默认 /api |
cd backend && pytest
cd frontend && npm run buildGitHub Actions 会在推送和 Pull Request 时运行后端测试与前端构建。
- 生产环境务必修改
SECRET_KEY、管理员初始密码和数据库密码。 - 不要提交
.env、上传简历、音频、数据库文件或本地虚拟环境。 - 公开部署前建议接入 HTTPS、对象存储、日志审计和更细粒度的数据权限。
- AI 解析简历和面试内容时,请遵守候选人隐私、数据保留和本地法规要求。
- 多租户与组织隔离
- 更完整的权限策略和审计日志
- 简历解析队列的可观测性面板
- 更多招聘渠道集成
- 工作流节点插件市场
- 国际化和暗色模式
欢迎通过 Issue、Discussion 和 Pull Request 参与。开始前请阅读 CONTRIBUTING.md 和 SECURITY.md。
MIT











