目录

  1. 项目概述
  2. 项目背景
  3. 市场分析
  4. 产品定位
  5. 用户画像
  6. 核心业务流程
  7. 功能架构图
  8. 功能模块设计
  9. 数据库设计
  10. 系统架构设计
  11. 页面设计
  12. API 设计
  13. AI Agent 工作流
  14. 商业模式

1. 项目概述

岗好懂「AI 求职操作系统(AI Career OS)」。

平台围绕校招与社招求职者的真实痛点,提供从 简历上传解析 → 用户画像构建 → JD 智能解析 → 匹配度检测 → 简历定向优化 → 岗位投递管理 → 面试流程跟踪 → 技能学习追踪 → 对话式报告追问 → Agent 持续跟进 的完整闭环服务。

区别于传统「一次性工具」,职图星途通过对话式交互、数据沉淀与 Agent 持续跟进,成为用户求职路上的长期智能伙伴。

核心愿景

让每一位求职者都能被 AI 精准理解,让每一次投递都更有把握,让每一段成长都被记录和推动。

产品 Slogan

「上传简历,AI 帮你走完求职全流程。」


2. 项目背景

2.1 行业背景

  • 校招竞争激烈:2026 届高校毕业生预计超 1200 万,热门岗位简历淘汰率超 90%
  • AI 重塑招聘:企业广泛使用 ATS(申请追踪系统)自动筛选简历,关键词匹配成为第一道门槛
  • 信息严重不对称:求职者看到的 JD 往往经过 HR 包装,真实技能需求被隐藏或模糊化
  • 官网投递体验极差:校招季求职者需在 50+ 家企业官网重复填写基本信息、教育经历、项目经验,耗时且易错
  • 求职过程缺乏反馈:投递后石沉大海,求职者不知道问题出在简历、技能还是面试表现
  • 成长无规划:求职是短期行为,但职业成长是长期过程,缺少持续跟踪和动态调整工具

2.2 用户核心痛点

痛点 具体表现 职图星途解决方案
简历不会写 经历描述空洞,缺乏岗位关键词,ATS 筛选通过率极低 AI 简历解析 + 定向优化 + 匹配度检测
JD 看不懂 JD 描述模糊,真实技能需求被隐藏 AI 深度解析 JD,揭示隐藏需求与技能权重
官网填到崩溃 校招需在数十家企业官网重复填写相同信息 一键复制填充内容(简化版)+ 简历版本管理
面试没方向 不知道会被问什么,缺乏真实场景演练 基于画像+JD 的个性化 AI 模拟面试
报告看不懂 拿到测评报告或面试反馈后,不知如何针对性改进 对话式报告追问,AI 实时解答
投递无管理 投了几十家公司,记不住进度,错过截止时间 岗位投递管理中心(Job Tracker)
成长没规划 不知道缺什么技能,学习碎片化 技能学习追踪 + Agent 动态规划

3. 市场分析

3.1 竞品分析

竞品 核心功能 主要不足 职图星途差异化
超级简历 简历模板 + 排版 无 AI 分析能力,无岗位定向优化,无投递管理 AI 深度解析 JD + 定向改写 + 求职 CRM
牛客网 题库 + 面经社区 模拟面试体验生硬,无个性化,无投递跟踪 基于简历+JD 的个性化 AI 面试 + 全流程管理
Boss 直聘 岗位匹配 + 沟通 仅解决「人找岗位」,不解决「人如何成为符合岗位的人」 从「匹配」到「成长」的完整闭环
Notion / Excel 手动记录投递进度 无 AI 能力,纯手动维护,易遗漏 AI 自动关联岗位、提醒截止、追踪学习
ChatGPT 通用问答 无求职专用工作流,无数据沉淀,无持续跟进 垂直场景深度 + 数据沉淀 + Agent 陪伴

3.2 市场规模

中国在线求职服务市场规模预计 2026 年突破 500 亿元,AI 求职工具细分市场年增长率超过 35%。「AI 全流程求职陪伴」赛道尚处蓝海,具备显著的先发优势窗口。

3.3 差异化壁垒

  1. 闭环数据中心:所有环节(画像、JD、优化、投递、面试、学习)数据共享,形成可复用的求职资产。
  2. 逐条 Diff 修改:类 Git 的「原文 vs AI 建议 vs 修改理由」对比,产品价值显著高于一键黑盒。
  3. Job Tracker(AI 求职 CRM):将分散的投递、面试、学习统一沉淀,是市面上同类产品缺失的最值钱模块。
  4. 求职驾驶舱 Dashboard:首页一屏掌控全局,从单点工具升级为 OS 级产品。

4. 产品定位

4.1 产品定位

AI 驱动的一站式求职操作系统(AI Career OS)

从「投递简历」升级为「AI 陪伴式职业成长」;从「优化一份简历」升级为「运营整段求职」。

4.2 核心价值主张

价值维度 具体体现
降低信息差 AI 深度解析 JD,揭示岗位真实技能需求与隐藏要求
提升通过率 基于岗位定向优化简历,提升 ATS 筛选通过率
节省重复劳动 一键复制校招官网填充内容,减少重复填写时间
面试有备无患 基于简历+JD 生成个性化面试题,多轮对话演练
报告可追问 对任何分析结果、评分报告进行对话式追问,直到理解透彻
投递可管理 统一管理所有投递岗位,跟踪面试进度,提醒截止时间
成长可持续 Agent 持续跟踪学习进度,动态调整规划,陪伴整个求职周期

4.3 产品形态

  • Web 端:核心功能平台,支持简历上传、JD 解析、报告查看、对话追问、投递管理
  • 对话式界面:所有报告均支持「点击追问」,用户可对任意结论提出疑问,AI 实时解答
  • 求职驾驶舱(Dashboard):首页集中展示投递、面试、学习、Offer 等核心数据,一目了然
  • Agent 持续跟进:用户授权后,Agent 定期推送学习提醒、岗位更新、进度回顾、截止提醒

5. 用户画像

5.1 核心用户群体

用户类型 占比 核心场景 核心痛点
应届毕业生 40% 秋招/春招集中投递 简历同质化严重、不了解岗位真实要求、官网填写耗时
校招求职者 30% 批量投递多家企业官网 每家企业官网格式不同,重复填写信息效率极低,投递进度混乱
转行人员 15% 跨行业/跨岗位求职 过往经历与目标岗位不匹配,不知如何改写简历
在职跳槽者 15% 精准匹配高薪岗位 不清楚自身与目标岗位的技能差距,面试准备无方向

5.2 用户故事(User Story)

用户故事 1:应届毕业生小 A

小 A 是计算机专业应届生,正在准备秋招。他投了 30 家公司,但只收到 3 个面试邀请。他不知道问题出在哪里——是简历写得不好?还是技能不匹配?还是投递的岗位不对?

使用职图星途后:

  1. 上传简历,AI 自动解析并生成画像
  2. 粘贴目标岗位 JD,AI 解析出真实技能需求
  3. 匹配度检测显示:技能匹配 65%,项目匹配 70%,关键词匹配 55%
  4. AI 简历优化:一键生成定向版本,ATS 评分从 62 提升到 85
  5. 模拟面试:基于该岗位生成 5 道个性化题目,发现 Redis 集群是薄弱点
  6. 学习规划:生成 3 周 Redis 学习路线
  7. 投递管理:记录所有投递岗位,跟踪面试进度,提醒截止时间
  8. Agent 跟进:每天推送学习提醒,每周回顾匹配度变化

用户故事 2:转行人员小 B

小 B 从传统行业转行互联网,有 2 年工作经验但技术栈不匹配。他不知道如何把过往经历「翻译」成互联网岗位能看懂的语言。

使用职图星途后:

  1. 上传简历,AI 识别出可迁移技能(项目管理、数据分析、团队协作)
  2. 选择目标岗位(产品经理),AI 解析出该岗位对「传统行业经验」的潜在价值
  3. 简历优化:将「负责生产流程优化」改写为「通过数据分析优化业务流程,效率提升 30%」
  4. 模拟面试:重点考察「转行动机」和「产品思维」
  5. 学习规划:补充产品方法论、Axure、数据分析工具

6. 核心业务流程

6.1 整体业务流程

注册/登录
    ↓
上传简历(PDF / Word / 图片)
    ↓
AI 自动解析(OCR + LLM 结构化抽取)
    ↓
生成用户画像(个人信息、教育、技能、项目、经历等)
    ↓
用户确认/修改画像
    ↓
进入「求职驾驶舱(Dashboard)」首页
    ↓
可选择功能入口:
    ├─ 解析岗位 JD
    ├─ 优化我的简历
    ├─ 模拟面试
    ├─ 查看匹配报告
    ├─ 管理我的投递
    ├─ 学习进度追踪
    └─ 与 Agent 对话

6.2 核心使用流程(以「投递某岗位」为例)

用户上传简历 → 生成画像
    ↓
用户粘贴目标岗位 JD
    ↓
AI 解析 JD,生成岗位画像报告
    ↓
生成「岗位 vs 用户」匹配评分报告
    ↓
AI 简历优化(一键优化 / 逐条对比修改)
    ↓
生成 AI 修改报告(ATS 评分变化、关键词补充、优化项统计)
    ↓
重新计算 JD 匹配度(优化前后对比)
    ↓
用户确认优化内容
    ↓
导出简历(PDF / Word / Markdown / 纯文本,默认 PDF)
    ↓
一键复制官网填充内容(简化版)
    ↓
记录岗位到「投递管理中心」(状态:待投递)
    ↓
用户完成投递后,更新状态为「已投递」
    ↓
模拟面试(基于该岗位 JD)
    ↓
查看面试报告,对话追问改进点
    ↓
生成学习路线(补齐技能差距)
    ↓
Agent 持续跟踪提醒
    ↓
面试流程更新(一面 → 二面 → HR 面 → Offer)
    ↓
学习进度更新 → 重新计算匹配度 → 循环优化

6.3 对话式追问交互流程

用户查看任意报告(JD 解析 / 匹配评分 / 面试报告 / 学习规划)
    ↓
用户点击报告中任意段落/结论旁的「追问」按钮
    ↓
弹出对话浮窗,显示该段落上下文
    ↓
用户输入问题
    ↓
后端组装 Prompt:
    ├─ 报告完整内容(System Context)
    ├─ 用户点击的段落定位
    ├─ 用户问题
    └─ 知识库检索结果(相关技能文档、面经)
    ↓
LLM 生成回答
    ↓
返回前端,展示在对话浮窗中
    ↓
用户可继续追问(保持同一会话上下文)
    ↓
对话记录保存到数据库,Agent 可后续引用

7. 功能架构图

                              用户层
                                 │
                    ┌────────────┴────────────┐
                    │      求职驾驶舱          │
                    │    (Dashboard 首页)     │
                    │  投递统计 | 面试进度 |    │
                    │  学习完成度 | Offer 追踪   │
                    └────────────┬────────────┘
                                 │
        ┌────────────────────────┼────────────────────────┐
        │                        │                        │
   ┌────▼────┐            ┌─────▼─────┐           ┌─────▼─────┐
   │  简历中心  │            │  岗位中心   │           │  成长中心   │
   └────┬────┘            └─────┬─────┘           └─────┬─────┘
        │                        │                        │
   ┌────▼────┐            ┌─────▼─────┐           ┌─────▼─────┐
   │ 上传简历  │            │ 粘贴 JD   │           │ 模拟面试   │
   │ AI 解析   │            │ AI 解析   │           │ 面试报告   │
   │ 画像构建  │            │ 匹配检测   │           │ 报告追问   │
   │ 版本管理  │            │ 简历优化   │           │ 学习规划   │
   └────┬────┘            │ 修改报告   │           │ 进度追踪   │
        │                 │ 导出简历   │           │ Agent 对话  │
        │                 └─────┬─────┘           └───────────┘
        │                       │
        └───────────┬───────────┘
                    │
            ┌───────▼───────┐
            │  投递管理中心    │
            │  (Job Tracker) │
            │                │
            │ 待投递岗位      │
            │ 已投递岗位      │
            │ 面试中岗位      │
            │ Offer 岗位      │
            │ 淘汰岗位        │
            │ 截止提醒        │
            │ 学习进度关联    │
            └───────────────┘

8. 功能模块设计

8.1 AI 用户画像构建(Resume Parser + Profile Builder)

功能描述

用户首次进入平台后,核心入口为「上传简历」。支持多种格式,AI 自动识别内容并构建完整用户画像,大幅降低首次填写成本。

支持格式
格式 MVP V1.5 说明
PDF 主要格式,使用 PyMuPDF 解析
Word(doc/docx) 使用 python-docx 解析
图片(jpg/png/webp) 使用 OCR(PaddleOCR)识别后 LLM 解析
在线简历截图 同图片处理流程
超级简历导出文件 - 后续版本支持
Boss 直聘导出简历 - 后续版本支持
AI 解析流程
用户上传文件
    ↓
判断文件类型
    ↓
    ├─ PDF → PyMuPDF 提取文本
    ├─ Word → python-docx 提取文本
    └─ 图片 → OCR 识别文本
        ↓
LLM 结构化抽取
    ↓
生成结构化用户画像
    ↓
用户确认/修改
    ↓
保存画像,进入平台
AI 自动识别内容
字段 识别方式 用户确认
个人信息 LLM 抽取 ✅ 必须确认
教育经历 LLM 抽取 ✅ 必须确认
技能列表 LLM 抽取 + 标准化 ✅ 必须确认
项目经历 LLM 抽取 ✅ 必须确认
实习经历 LLM 抽取 ✅ 必须确认
校园经历 LLM 抽取 ⚪ 可选确认
获奖证书 LLM 抽取 ⚪ 可选确认
专业技能 LLM 抽取 ✅ 必须确认
GitHub / 博客 / 作品集 正则提取 URL ⚪ 可选确认
语言能力 LLM 抽取 ⚪ 可选确认
求职意向 LLM 推断 ✅ 必须确认
技能标准化

建立技能同义词库,将不同表述统一:

"Vue.js" = "Vue" = "Vue3" = "Vue 3"
"React.js" = "React" = "ReactJS"
"MySQL" = "mysql" = "MySQL 数据库"
"Docker" = "docker" = "容器化"
简历版本管理

支持用户保存多个简历版本:

简历版本:
├── 原始简历(V1)
├── 通用版简历(V2)
├── 腾讯后端定向版(V3)
├── 阿里后端定向版(V4)
└── 字节后端定向版(V5)

每个版本独立存储,可随时切换、对比、导出。

交互设计
  1. 上传页面:拖拽上传区域,支持多格式,显示解析进度条
  2. 解析结果页:分块展示 AI 提取的信息,每块可编辑、删除、新增
  3. 可信度标识:AI 识别可信度低的字段标黄提醒,高可信度标绿
  4. 一键补全:对缺失字段,AI 通过对话引导用户补充

8.2 AI JD 解析(Job Description Analyzer)

功能描述

用户粘贴或上传目标岗位 JD,AI 自动进行深度解析,输出结构化岗位画像。

解析维度
岗位画像:
├── 基础信息
│   ├── 岗位名称
│   ├── 所属部门
│   ├── 工作地点
│   └── 薪资范围(如 JD 未明确,基于市场数据推测)
├── 技能要求
│   ├── 硬性技能(必须掌握)
│   ├── 软性技能(加分项)
│   └── 技能权重分布(百分比)
├── 经验要求
│   ├── 工作年限
│   ├── 学历要求
│   └── 项目经验类型
├── 隐藏需求(AI 推断)
│   ├── 团队技术栈偏好
│   ├── 业务方向暗示
│   └── 成长空间评估
└── 竞争力评估
    ├── 岗位热度(投递人数预估)
    └── 薪资竞争力(同岗位市场对比)
输出示例
岗位:后端开发工程师(校招)
公司:某互联网大厂

技能权重:
├─ Java / Python      ████████░░  80%  [硬性要求]
├─ 数据库(MySQL/Redis) ██████░░░░  60%  [硬性要求]
├─ 分布式系统         █████░░░░░  50%  [加分项]
├─ 消息队列           ████░░░░░░  40%  [加分项]
└─ 容器化(Docker/K8s) ███░░░░░░░  30%  [加分项]

隐藏需求推断:
• 团队可能使用微服务架构(JD 多次提到"高并发""分布式")
• 业务偏向电商/支付方向(提到"交易""订单")
• 校招看重基础扎实,项目经验可放宽

竞争力评估:
• 岗位热度:🔥🔥🔥🔥  高(预计投递量 5000+)
• 建议匹配度达到 75% 以上再投递
技术实现
  • 关键词提取:LLM + 规则引擎混合提取技能关键词
  • 权重计算:基于 JD 中关键词出现频率、位置(标题/要求/加分项)计算权重
  • 隐藏需求推断:基于行业知识库 + LLM 推理,识别 JD 中未明说但隐含的要求

8.3 JD 匹配度检测(Match Score Engine)

功能描述

对比用户画像与目标岗位 JD,从多个维度计算匹配度,生成可视化差距分析报告。

评分维度
维度 权重 说明
技能匹配 35% 用户技能 vs 岗位硬性技能要求
项目匹配 25% 用户项目经历 vs 岗位项目经验要求
关键词匹配 20% 简历关键词 vs JD 高频关键词(ATS 视角)
学历匹配 10% 用户学历 vs 岗位要求
经验匹配 10% 用户工作/实习年限 vs 岗位要求
输出示例
┌─────────────────────────────────────┐
│  岗位匹配度报告                       │
│                                     │
│  综合评分:72 / 100                  │
│  ████████░░░░░░░░░░                 │
│                                     │
│  各维度得分:                        │
│  技能匹配    ████████░░  80%        │
│  项目匹配    ██████░░░░  65%        │
│  关键词匹配  █████░░░░░  55%        │
│  学历匹配    █████████░  95%        │
│  经验匹配    ███████░░░  75%        │
│                                     │
│  优势:                              │
│  ✅ Python 基础扎实                  │
│  ✅ 学历符合要求                     │
│                                     │
│  不足:                              │
│  ❌ 缺少 Redis 集群经验              │
│  ❌ 项目描述缺少关键词(FastAPI)    │
│  ❌ 无分布式项目经历                 │
│                                     │
│  建议:                              │
│  • 补充 Redis 集群学习(预计 2 周)  │
│  • 优化项目描述,增加技术关键词      │
│  • 学习分布式系统基础概念            │
└─────────────────────────────────────┘
交互设计
  • 雷达图对比:用户能力雷达图 vs 岗位要求雷达图,重叠区域一目了然
  • 差距列表:按优先级排序的不足项,每项可点击「追问」了解详情
  • 投递建议:匹配度 < 60% 提示「建议先提升技能」;60-80% 提示「可投递,建议优化简历」;> 80% 提示「高度匹配,建议立即投递」

8.4 AI 简历定向优化(Resume Optimizer)

功能描述

基于用户画像和目标岗位 JD,AI 生成定向优化后的简历内容。提供两种优化模式,满足不同场景需求。

优化前准备
上传 JD
    ↓
AI 解析 JD
    ↓
AI 计算当前匹配度(优化前基准)
    ↓
用户选择优化模式
    ├─ ① 一键优化
    └─ ② 逐条修改
       ↓
    生成新简历
       ↓
    重新计算 JD 匹配度
       ↓
    生成修改报告
       ↓
    导出 PDF
模式一:一键优化(One-Click Optimize)

适用场景:海投、校招、时间紧迫

AI 自动执行

  1. 改写项目描述(STAR 法则强化)
  2. 调整经历排序(最匹配岗位的经历前置)
  3. 增加岗位关键词(自然融入 JD 高频词)
  4. 调整技能模块(突出岗位要求的技能)
  5. 优化自我评价(对齐岗位需求)
  6. 量化表达(将模糊描述改为具体数据)

交互:用户点击「立即生成」,10 秒内获得优化版本。

模式二:逐条对比修改(Diff Mode)

适用场景:精准投递、重要岗位、用户希望掌控每个修改点

页面设计

┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│     原文        │  │    AI 建议      │  │    修改理由     │
│                 │  │                 │  │                 │
│ 会 Python       │  │ 熟练使用 Python │  │ JD 中 Python    │
│                 │  │ 完成 RESTful    │  │ 权重 80%,建议  │
│                 │  │ API 开发,熟悉  │  │ 突出框架经验    │
│                 │  │ FastAPI 框架    │  │                 │
└─────────────────┘  └─────────────────┘  └─────────────────┘

                      [ ✅ 接受 ]  [ ❌ 拒绝 ]  [ 🔄 重新生成 ]

┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│  负责后端开发    │  │ 基于 FastAPI    │  │ 增加技术栈细节  │
│                 │  │ + MySQL 设计    │  │ 和量化成果,    │
│                 │  │ 核心模块 API,  │  │ 符合 STAR 法则  │
│                 │  │ QPS 提升 40%    │  │                 │
└─────────────────┘  └─────────────────┘  └─────────────────┘

                      [ ✅ 接受 ]  [ ❌ 拒绝 ]  [ 🔄 重新生成 ]

交互设计

  • 三栏布局:原文 | AI 建议 | 修改理由
  • 每行修改独立操作:接受 / 拒绝 / 重新生成
  • 修改理由清晰说明:基于 JD 的哪个要求、为什么这样改
  • 类似 Git Diff 的体验,用户有完全掌控感
AI 修改报告

优化完成后,不直接下载,而是生成详细修改报告:

┌─────────────────────────────────────┐
│  AI 修改报告                         │
│                                     │
│  本次优化概况:                      │
│                                     │
│  增加关键词:                        │
│  ✅ FastAPI                          │
│  ✅ Docker                           │
│  ✅ Redis                            │
│  ✅ 分布式系统                        │
│                                     │
│  优化项目描述:3 项                  │
│  删除无关内容:2 项                  │
│  新增 STAR 描述:4 处                │
│  调整经历顺序:1 处                  │
│                                     │
│  ATS 评分变化:                      │
│  优化前:68 分                      │
│  优化后:89 分                      │
│  提升:+21 分                       │
│                                     │
│  JD 匹配度变化:                     │
│  优化前:72%                        │
│  优化后:91%                        │
│  提升:+19%                        │
│                                     │
│  [查看优化后简历]  [导出 PDF]       │
└─────────────────────────────────────┘
优化策略
  1. 关键词对齐:将 JD 中的高频技能关键词自然融入简历描述
  2. STAR 法则强化:将平淡的描述改写为「情境-任务-行动-结果」结构
  3. 量化表达:将模糊描述改为具体数据(如"提升性能"→"QPS 从 100 提升到 500")
  4. 优势前置:将最匹配岗位要求的经历放在前面,弱化不相关内容
  5. 岗位语言适配:根据目标公司/行业的用语习惯调整表达方式

8.5 简历导出(Resume Export)

支持格式
格式 MVP 默认 说明
PDF ✅ 默认 高质量排版,可直接用于官网、Boss、牛客上传
Word(docx) - 便于后续手动修改
Markdown - 便于技术岗位展示
纯文本 - 便于粘贴到官网表单
PDF 导出特性
  • 专业排版模板(简洁/技术/商务三种风格)
  • 自动分页优化
  • 支持中文完美显示
  • 文件大小优化(< 500KB)

8.6 岗位投递管理中心(Job Tracker)

功能定位

帮助用户统一管理所有求职岗位,形成「AI 求职 CRM」。这是整个产品最值钱的功能模块之一,将平台从「单点工具」升级为「全流程操作系统」。

核心能力
投递管理中心:
├── 岗位记录
│   ├── 公司名、岗位名、JD
│   ├── 投递渠道(官网 / Boss / 牛客 / 内推)
│   ├── 投递截止时间
│   ├── 当前状态(待投递 / 已投递 / 面试中 / Offer / 淘汰)
│   └── 匹配度分数
├── 面试流程跟踪
│   ├── 面试轮次(一面 / 二面 / 三面 / HR 面)
│   ├── 每轮时间、形式、面试官
│   ├── 每轮反馈记录
│   └── 下一轮提醒
├── 待投岗位管理
│   ├── 未投原因记录(缺少技能 / 等待内推 / 简历未改 / 薪资太低等)
│   ├── 缺少技能自动关联学习规划
│   └── 截止提醒
├── 学习进度关联
│   ├── 每个岗位关联需要补齐的技能
│   ├── 学习完成度可视化
│   └── 完成后自动提升匹配度
└── 数据统计
    ├── 投递总数、面试率、Offer 率
    ├── 各状态岗位分布
    └── 近期截止岗位提醒
页面设计

列表视图

┌─────────────────────────────────────────────────────────────────────┐
│  我的岗位(Job Tracker)                                            │
├─────────────────────────────────────────────────────────────────────┤
│  [全部] [待投递 5] [已投递 12] [面试中 3] [Offer 1] [淘汰 8]       │
├─────────────────────────────────────────────────────────────────────┤
│  岗位名称          公司      匹配度   状态      截止日期    AI 建议  │
│  ─────────────────────────────────────────────────────────────────  │
│  后端开发工程师     腾讯      89%    待投递    09-15      建议立即投递│
│  Java 开发工程师    阿里      61%    待投递    09-10      缺 Redis   │
│  AI 应用工程师      美团      95%    二面      09-20      准备三面   │
│  后端开发工程师     字节      78%    已投递    09-18      等待反馈   │
│  ...                                                               │
└─────────────────────────────────────────────────────────────────────┘

详情视图

┌─────────────────────────────────────────────────────────────────────┐
│  腾讯 · 后端开发工程师(校招)                                      │
│  匹配度:89%  │  状态:待投递  │  截止:2026-09-15                  │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  JD 摘要                                                            │
│  [查看完整 JD 解析报告]                                             │
│                                                                     │
│  面试流程                                                           │
│  ○ 简历筛选 → ○ 一面 → ○ 二面 → ○ HR 面 → ○ Offer                │
│  [更新状态]                                                         │
│                                                                     │
│  投递记录                                                           │
│  投递渠道:官网                                                     │
│  投递时间:-                                                        │
│  HR 联系人:-                                                       │
│  备注:-                                                            │
│                                                                     │
│  关联学习                                                           │
│  缺少技能:Redis 集群(50%)、Docker(20%)                        │
│  [查看学习规划]                                                     │
│                                                                     │
│  AI 建议                                                            │
│  • 匹配度 89%,建议立即投递                                         │
│  • 简历已优化(腾讯定向版 V3)                                      │
│  • 距离截止还有 10 天                                               │
│                                                                     │
│  [立即投递]  [查看优化简历]  [模拟面试]  [删除]                    │
└─────────────────────────────────────────────────────────────────────┘
待投岗位原因管理

用户标记岗位为「待投递」时,需选择/填写原因:

原因类型 系统动作
缺少技能:XXX 自动关联学习规划,生成补齐路线
等待内推 记录内推联系人,到期提醒
简历还没改 跳转到简历优化流程
薪资太低 标记低优先级,后续可重新评估
其他 用户自定义备注
截止时间提醒
  • 7 天提醒:系统推送「某岗位将在 7 天后截止,建议尽快投递」
  • 3 天提醒:系统推送「某岗位将在 3 天后截止,当前匹配度 XX%」
  • 1 天提醒:系统推送「某岗位明天截止,是否立即投递?」
  • 已截止:岗位灰色显示,标记为「已截止」

8.7 面试流程管理(Interview Tracker)

功能描述

与投递管理中心联动,跟踪每个岗位的面试进度,记录每轮反馈。

面试轮次
标准流程:
简历筛选 → 一面(技术)→ 二面(技术/项目)→ 三面(主管)→ HR 面 → Offer

校招简化流程:
简历筛选 → 笔试 → 一面 → 二面 → HR 面 → Offer
功能特性
  • 状态更新:用户手动更新每轮状态,系统记录时间轴
  • 反馈记录:每轮面试后记录反馈(如「Redis 问得不好」「HashMap 不会」)
  • AI 建议:基于反馈,Agent 自动生成复习建议(如「建议今晚复习 Redis 持久化机制」)
  • 面试准备:距离下一轮面试前 1 天,自动推送模拟面试和相关知识点复习

8.8 技能学习追踪(Learning Tracker)

功能描述

基于匹配度差距分析,自动生成学习路线,并跟踪学习进度。

学习规划生成
输入:当前能力画像 + 目标岗位 JD
    ↓
AI 分析差距技能
    ↓
按优先级排序(岗位权重高 + 用户基础好 → 优先)
    ↓
生成阶段性学习计划
    ↓
推荐学习资源(文档、视频、项目、书籍)
示例输出
目标岗位:腾讯后端开发工程师
当前匹配度:72% → 目标:90%

学习路线(预计 4 周):

第 1 周:Redis 进阶
├── 目标:掌握 Redis Cluster、缓存策略
├── 资源:
│   ├── 《Redis 设计与实现》第 17 章
│   ├── 动手搭建 3 主 3 从集群
│   └── 牛客网 Redis 面试题 20 道
└── 里程碑:完成集群搭建 + 通过 10 道面试题
    进度:█████░░░░░ 50%

第 2 周:Docker 容器化
├── 目标:掌握 Dockerfile、Compose、基础运维
├── 资源:
│   ├── Docker 官方文档
│   └── 实战:将现有项目容器化部署
└── 里程碑:完成 1 个项目容器化
    进度:██░░░░░░░░ 20%

第 3 周:分布式系统基础
├── 目标:理解 CAP、BASE、一致性哈希
├── 资源:
│   ├── 《分布式系统概念与设计》
│   └── 面经:分布式系统设计题 10 道
└── 里程碑:能讲清楚 3 个分布式概念
    进度:░░░░░░░░░░ 0%

第 4 周:项目优化
├── 目标:将分布式和缓存融入项目描述
├── 资源:
│   └── AI 简历优化工具
└── 里程碑:生成新版项目描述,匹配度提升 15%+
    进度:░░░░░░░░░░ 0%
进度追踪
  • 技能进度条:每个技能独立进度条,用户完成学习后手动打卡
  • 里程碑系统:每个阶段设置明确里程碑,完成后解锁下一阶段
  • 匹配度动态更新:每完成一个技能学习,系统自动重新计算匹配度
  • Agent 提醒:未按时完成学习时,Agent 主动推送提醒

8.9 AI 模拟面试(AI Interview)

功能描述

基于用户画像(技能、项目、经历)和目标岗位 JD,AI 生成高度个性化的模拟面试。支持多轮对话,面试结束后生成详细评分报告。

面试流程
1. 从投递管理中心选择岗位(或手动粘贴 JD)
        ↓
2. AI 生成面试题(5-10 题,混合类型)
        ↓
3. 用户回答(文字输入)
        ↓
4. AI 追问(根据回答深度决定是否追问)
        ↓
5. 单题评分 + 点评
        ↓
6. 全部完成后生成综合报告
        ↓
7. 用户可对话追问报告内容
题目类型
类型 占比 说明
技术基础题 30% 针对 JD 要求的硬性技能
项目深挖题 30% 基于用户项目经历,追问技术细节和决策思路
场景设计题 20% 给定业务场景,要求设计方案
行为面试题 15% 考察沟通、协作、抗压能力
开放思考题 5% 考察技术视野和学习能力
评分维度
维度 权重 说明
内容准确性 30% 技术点是否正确、全面
表达逻辑性 25% 回答结构是否清晰、有层次
项目理解深度 25% 对项目细节的理解和反思深度
沟通流畅度 20% 语言是否流畅、专业术语使用是否准确
输出:面试报告
┌─────────────────────────────────────┐
│  模拟面试报告                         │
│  岗位:腾讯后端开发工程师             │
│  时长:25 分钟                       │
│                                     │
│  综合评分:78 / 100                  │
│                                     │
│  各题得分:                          │
│  Q1 技术基础    85  ✅ 扎实          │
│  Q2 项目深挖    72  ⚠️ 细节不足      │
│  Q3 场景设计    65  ❌ 缺考虑并发    │
│  Q4 行为面试    90  ✅ 表达优秀      │
│  Q5 开放思考    80  ✅ 有见解        │
│                                     │
│  核心建议:                          │
│  • 项目经历需补充性能优化细节        │
│  • 场景设计题需考虑高并发和容错      │
│  • 建议复习 Redis 持久化机制         │
│                                     │
│  [追问:Q3 的正确思路是什么?]       │
└─────────────────────────────────────┘

8.10 对话式报告追问(Report Q&A)

功能描述

平台所有分析报告(JD 解析报告、匹配评分报告、面试报告、学习规划报告)均支持对话式追问。用户可对报告中的任意结论提出疑问,AI 基于报告上下文实时解答。

追问场景示例

场景 1:对 JD 解析报告追问

报告:该岗位要求熟悉分布式系统
用户追问:「分布式系统具体指什么?我需要学到什么程度?」
AI 回答:「根据 JD 上下文,这里的分布式系统主要指:
1. 了解 CAP 理论和 BASE 理论
2. 熟悉至少一种分布式缓存(Redis Cluster)
3. 了解分布式事务解决方案(如 TCC、Saga)
建议掌握程度:能结合项目讲清楚选型理由和遇到的问题」

场景 2:对匹配评分报告追问

报告:你的 Redis 技能与岗位要求差距较大
用户追问:「我学过 Redis 基础,为什么还是差距大?」
AI 回答:「岗位要求中 Redis 权重 40%,且多次提到'集群'、'高可用'。
你目前掌握的是单机版使用,而岗位需要:
• Redis Cluster 搭建与运维
• 缓存穿透/击穿/雪崩的解决方案
• 分布式锁的实现
建议优先补充第 2 点,面试高频考点」

场景 3:对面试报告追问

报告:Q3 场景设计题得分 65,缺少并发考虑
用户追问:「那道题目正确的思路应该是什么?」
AI 回答:「题目要求设计一个秒杀系统,正确思路应包含:
1. 前端:限流(验证码、按钮防抖)
2. 网关:Nginx 限流 + 黑名单
3. 应用层:Redis 预减库存 + 异步下单
4. 数据库:乐观锁防止超卖
你的回答只提到了第 4 点,缺少前三层的防护设计。
建议复习《高并发系统设计》相关章节」
技术实现
  • 报告上下文注入:将当前报告的完整内容作为 System Prompt 的一部分
  • 引用定位:用户点击报告中的任意段落即可发起追问,AI 自动定位到相关上下文
  • 多轮记忆:同一报告内的追问保持对话上下文,支持连续深入探讨
  • 知识库增强:结合求职知识库(技术文档、面经、学习资源)给出专业解答

8.11 求职驾驶舱(Dashboard)

功能定位

首页核心模块,集中展示用户求职全生命周期的关键数据,将平台从「单点 AI 工具」升级为「AI 求职操作系统」。

展示内容
┌─────────────────────────────────────────────────────────────────────┐
│                    求职驾驶舱(Dashboard)                           │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐    │
│  │ 目标岗位 │ │ 已优化  │ │ 已投递  │ │ 面试中  │ │  Offer  │    │
│  │   15    │ │   8     │ │   12    │ │   3     │ │   1     │    │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘    │
│                                                                     │
│  ┌─────────────────────────┐  ┌─────────────────────────────┐    │
│  │  匹配度变化趋势          │  │  技能学习完成度              │    │
│  │                         │  │                             │    │
│  │  腾讯后端  89% ──────   │  │  Redis    █████░░░░  50%  │    │
│  │  阿里 Java  61% ──      │  │  Docker   ██░░░░░░░  20%  │    │
│  │  美团 AI    95% ─────── │  │  FastAPI  █████████  90%  │    │
│  │  字节后端   78% ─────   │  │  K8s      ░░░░░░░░░   0%  │    │
│  │                         │  │                             │    │
│  └─────────────────────────┘  └─────────────────────────────┘    │
│                                                                     │
│  ┌─────────────────────────┐  ┌─────────────────────────────┐    │
│  │  最近截止岗位            │  │  面试通过率                  │    │
│  │                         │  │                             │    │
│  │  ⚠️ 腾讯后端  3天后截止  │  │  投递 → 面试:25%          │    │
│  │  ⚠️ 阿里 Java  5天后截止 │  │  一面 → 二面:67%          │    │
│  │  ✅ 美团 AI    已投递    │  │  二面 → Offer:50%         │    │
│  │                         │  │                             │    │
│  └─────────────────────────┘  └─────────────────────────────┘    │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐  │
│  │  Agent 动态                                                │  │
│  │  「早上好!今天有 2 个岗位即将截止,Redis 学习进度 50%,   │  │
│  │   建议今天完成 Redis 集群搭建。」                           │  │
│  └─────────────────────────────────────────────────────────────┘  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘
数据指标
指标 说明
目标岗位数量 用户已解析 JD 的岗位总数
已优化简历数量 用户已生成优化版本的简历数
已投递岗位 投递管理中心中状态为「已投递」的数量
面试中岗位 状态为「面试中」的数量
Offer 数量 状态为「Offer」的数量
匹配度变化趋势 各目标岗位优化前后的匹配度对比
技能学习完成度 各差距技能的学习进度条
最近截止岗位 按截止时间排序的待投递岗位提醒
面试通过率 投递→面试、一面→二面、二面→Offer 的转化率
Agent 动态 今日任务提醒、学习建议、截止预警

8.12 AI 职业成长 Agent(Career Agent)

功能描述

Agent 持续跟踪用户的求职状态和能力成长,动态调整规划,主动推送提醒和建议。

Agent 能力
Career Agent:
├── 状态跟踪
│   ├── 记录每次简历优化记录
│   ├── 记录每次模拟面试结果
│   ├── 跟踪学习进度(用户标记完成)
│   ├── 记录投递结果(用户反馈)
│   └── 记录面试反馈
├── 动态评估
│   ├── 定期重新计算岗位匹配度
│   ├── 识别能力成长(对比历史画像)
│   └── 发现新的技能差距
├── 主动推送
│   ├── 学习任务提醒("本周该复习 Redis 集群了")
│   ├── 岗位机会推送("某大厂新开了目标岗位,匹配度 85%")
│   ├── 截止提醒("腾讯后端岗位 3 天后截止,建议立即投递")
│   ├── 面试准备提醒("你明天有面试,建议复习以下知识点")
│   └── 进度回顾("本周你完成了 3 项学习任务,匹配度提升 5%")
└── 规划调整
    ├── 根据学习进度调整后续计划
    ├── 根据面试反馈调整重点方向
    └── 根据投递结果优化目标岗位选择
交互示例
Agent 每日晨报:

早上好!今天是 2026-08-15,你的求职进度:

📋 本周任务:
✅ 完成 Redis 集群学习(已打卡)
⏳ 复习 MySQL 索引优化(还剩 2 天)
⏳ 模拟面试 1 次(建议今天完成)

📈 能力成长:
• 本周匹配度提升:72% → 78%(+6%)
• 新增掌握技能:Redis Cluster、分布式锁

⚠️ 截止提醒:
• 腾讯后端岗位将在 3 天后截止(09-15)
• 当前匹配度 89%,简历已优化(腾讯定向版 V3)

💡 今日建议:
• 建议今天完成简历投递
• 需要我帮你一键复制官网填充内容吗?

【用户回复】"帮我复制填充内容"
【Agent】"好的,已生成腾讯校招官网填充内容,已复制到剪贴板。"

9. 数据库设计

9.1 数据库选型

  • 结构化数据:MySQL 8.0
    • 稳定可靠,JSON 字段支持半结构化数据
    • 全文检索支持
    • 事务支持,保证数据一致性
  • 向量数据:Chroma(纯 Python,本地文件存储)
    • 零配置,pip 安装即可
    • 数据存本地文件,无需额外数据库服务
    • 支持相似度搜索和元数据过滤

9.2 ER 图

┌─────────────┐       ┌─────────────────┐       ┌─────────────────┐
│    users    │       │  user_profiles  │       │ resume_versions │
├─────────────┤       ├─────────────────┤       ├─────────────────┤
│ id (PK)     │◄──────│ id (PK)         │       │ id (PK)         │
│ username    │  1:1  │ user_id (FK)    │       │ user_id (FK)    │
│ email       │       │ education (JSON)│       │ resume_name     │
│ password    │       │ skills (JSON)   │       │ resume_path     │
│ phone       │       │ projects (JSON) │       │ resume_type     │
│ created_at  │       │ experiences(JSON)│      │ parsed_json     │
└─────────────┘       │ preferences(JSON)│      │ version         │
                      │ career_goal      │      │ created_at      │
                      └─────────────────┘      └─────────────────┘

┌─────────────────┐       ┌─────────────────┐       ┌─────────────────┐
│job_descriptions │       │  match_results  │       │resume_optimizations│
├─────────────────┤       ├─────────────────┤       ├─────────────────┤
│ id (PK)         │       │ id (PK)         │       │ id (PK)         │
│ user_id (FK)    │◄──────│ user_id (FK)    │       │ user_id (FK)    │
│ title           │       │ profile_id (FK) │       │ profile_id (FK) │
│ company         │       │ jd_id (FK)      │◄─────│ jd_id (FK)      │
│ raw_text        │       │ overall_score   │       │ original_content│
│ parsed_result   │       │ skill_score     │       │ optimized_content│
│ required_skills │       │ project_score   │       │ changes (JSON)  │
│ skill_weights   │       │ gap_analysis    │       │ ats_score_before│
│ hidden_needs    │       │ advantages      │       │ ats_score_after │
│ competitiveness  │      │ disadvantages   │       │ match_score_before│
└─────────────────┘       └─────────────────┘       │ match_score_after│
                                                    │ optimize_mode   │
                                                    │ user_confirmed  │
                                                    │ exported_at     │
                                                    └─────────────────┘

┌─────────────────┐       ┌─────────────────┐       ┌─────────────────┐
│interview_sessions│      │   report_qa     │       │  learning_plans │
├─────────────────┤       ├─────────────────┤       ├─────────────────┤
│ id (PK)         │       │ id (PK)         │       │ id (PK)         │
│ user_id (FK)    │       │ user_id (FK)    │       │ user_id (FK)    │
│ profile_id (FK) │       │ report_type     │       │ profile_id (FK) │
│ jd_id (FK)      │       │ report_id       │       │ target_jd_id(FK)│
│ questions (JSON)│       │ question        │       │ plan_content    │
│ answers (JSON)  │       │ answer          │       │ milestones (JSON)│
│ scores (JSON)   │       │ context_snapshot│       │ status          │
│ overall_score   │       │ parent_id (FK)  │       │ created_at      │
│ overall_feedback│       │ created_at      │       └─────────────────┘
│ status          │       └─────────────────┘
└─────────────────┘

┌─────────────────┐       ┌─────────────────┐       ┌─────────────────┐
│  job_tracker    │       │ website_fill_   │       │  agent_memories │
│                 │       │  templates      │       │                 │
├─────────────────┤       ├─────────────────┤       ├─────────────────┤
│ id (PK)         │       │ id (PK)         │       │ id (PK)         │
│ user_id (FK)    │       │ company_name    │       │ user_id (FK)    │
│ company         │       │ website_domain  │       │ memory_type     │
│ position        │       │ field_mapping   │       │ content         │
│ jd_id (FK)      │◄─────│ template_content│       │ related_report  │
│ status          │       │ is_popular      │       │ context (JSON)  │
│ apply_deadline  │       │ created_at      │       │ is_read         │
│ apply_time      │       └─────────────────┘       │ created_at      │
│ interview_round │                                   └─────────────────┘
│ interview_feedback│
│ reason_not_apply│
│ missing_skills  │
│ learning_progress│
│ match_score     │
│ notes           │
│ next_action     │
└─────────────────┘

9.3 核心表结构

-- 用户表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    phone VARCHAR(20),
    target_city VARCHAR(50),
    expected_salary_min INT,
    expected_salary_max INT,
    career_status ENUM('preparing', 'applying', 'interviewing', 'offered') DEFAULT 'preparing',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- 用户画像表
CREATE TABLE user_profiles (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL UNIQUE,
    education JSON COMMENT '教育背景数组',
    skills JSON COMMENT '技能列表 [{name, level, proof}, ...]',
    projects JSON COMMENT '项目经历数组',
    experiences JSON COMMENT '实习/工作经历数组',
    preferences JSON COMMENT '职业偏好',
    career_goal TEXT COMMENT '长期职业规划',
    resume_file_path VARCHAR(500) COMMENT '上传的简历文件路径',
    parsed_resume JSON COMMENT 'AI 解析后的简历结构化数据',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- 简历版本管理表
CREATE TABLE resume_versions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    resume_name VARCHAR(100) NOT NULL COMMENT '简历名称(如"腾讯定向版")',
    resume_path VARCHAR(500) NOT NULL,
    resume_type ENUM('pdf', 'doc', 'docx', 'image') NOT NULL,
    parsed_json JSON COMMENT 'AI 解析结果',
    version INT DEFAULT 1,
    is_default BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- 岗位描述表
CREATE TABLE job_descriptions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    title VARCHAR(200) NOT NULL,
    company VARCHAR(200),
    raw_text TEXT COMMENT '原始 JD 文本',
    parsed_result JSON COMMENT '解析结果',
    required_skills JSON COMMENT '硬性技能列表',
    bonus_skills JSON COMMENT '加分技能列表',
    skill_weights JSON COMMENT '技能权重分布',
    hidden_needs TEXT COMMENT 'AI 推断的隐藏需求',
    competitiveness JSON COMMENT '竞争力评估',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- 匹配结果表
CREATE TABLE match_results (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    profile_id INT NOT NULL,
    jd_id INT NOT NULL,
    overall_score INT COMMENT '综合评分 0-100',
    skill_score INT COMMENT '技能匹配分',
    project_score INT COMMENT '项目匹配分',
    keyword_score INT COMMENT '关键词匹配分',
    education_score INT COMMENT '学历匹配分',
    experience_score INT COMMENT '经验匹配分',
    gap_analysis JSON COMMENT '差距分析',
    advantages JSON COMMENT '优势列表',
    disadvantages JSON COMMENT '不足列表',
    suggestions TEXT COMMENT '综合建议',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (jd_id) REFERENCES job_descriptions(id)
);

-- 简历优化记录表
CREATE TABLE resume_optimizations (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    profile_id INT NOT NULL,
    jd_id INT NOT NULL,
    original_content TEXT COMMENT '原始简历内容',
    optimized_content TEXT COMMENT '优化后内容',
    changes JSON COMMENT '修改点记录',
    ats_score_before INT COMMENT '优化前 ATS 评分',
    ats_score_after INT COMMENT '优化后 ATS 评分',
    match_score_before INT COMMENT '优化前匹配度',
    match_score_after INT COMMENT '优化后匹配度',
    optimize_mode ENUM('one_click', 'diff') NOT NULL,
    user_confirmed BOOLEAN DEFAULT FALSE,
    exported_at TIMESTAMP NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (jd_id) REFERENCES job_descriptions(id)
);

-- 面试会话表
CREATE TABLE interview_sessions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    profile_id INT NOT NULL,
    jd_id INT NOT NULL,
    questions JSON COMMENT '题目列表',
    answers JSON COMMENT '用户回答',
    scores JSON COMMENT '各题评分',
    overall_score INT COMMENT '综合评分',
    overall_feedback TEXT COMMENT '综合反馈',
    weak_points JSON COMMENT '薄弱点列表',
    improvement_plan TEXT COMMENT '改进建议',
    status ENUM('ongoing', 'completed') DEFAULT 'ongoing',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    completed_at TIMESTAMP NULL,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- 报告追问记录表
CREATE TABLE report_qa (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    report_type ENUM('jd', 'match', 'interview', 'learning') NOT NULL,
    report_id INT NOT NULL,
    question TEXT NOT NULL,
    answer TEXT NOT NULL,
    context_snapshot JSON COMMENT '追问时的报告上下文快照',
    parent_id INT NULL COMMENT '支持追问链',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (parent_id) REFERENCES report_qa(id)
);

-- 学习规划表
CREATE TABLE learning_plans (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    profile_id INT NOT NULL,
    target_jd_id INT COMMENT '目标岗位',
    plan_content JSON COMMENT '规划内容',
    milestones JSON COMMENT '里程碑',
    status ENUM('active', 'completed', 'abandoned') DEFAULT 'active',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- 投递管理表(Job Tracker)
CREATE TABLE job_tracker (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    company VARCHAR(200) NOT NULL COMMENT '公司名称',
    position VARCHAR(200) NOT NULL COMMENT '岗位名称',
    jd_id INT COMMENT '关联的 JD ID',
    jd_text TEXT COMMENT 'JD 文本(冗余存储)',
    status ENUM('pending', 'applied', 'screening', 'interview', 'offer', 'rejected', 'expired') DEFAULT 'pending',
    apply_deadline DATE COMMENT '投递截止时间',
    apply_time TIMESTAMP NULL COMMENT '实际投递时间',
    apply_channel ENUM('website', 'boss', 'niuke', 'referral', 'email', 'other') COMMENT '投递渠道',
    interview_round INT DEFAULT 0 COMMENT '当前面试轮次',
    interview_feedback JSON COMMENT '每轮面试反馈',
    reason_not_apply VARCHAR(200) COMMENT '未投原因',
    missing_skills JSON COMMENT '缺少技能列表',
    learning_progress JSON COMMENT '学习进度',
    match_score INT COMMENT '匹配度分数',
    notes TEXT COMMENT '用户备注',
    next_action VARCHAR(200) COMMENT '下一步行动',
    reminder_sent BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (jd_id) REFERENCES job_descriptions(id)
);

-- 官网填充模板表
CREATE TABLE website_fill_templates (
    id INT PRIMARY KEY AUTO_INCREMENT,
    company_name VARCHAR(100) NOT NULL,
    website_domain VARCHAR(200),
    field_mapping JSON COMMENT '字段映射规则',
    template_content TEXT COMMENT '填充模板内容',
    is_popular BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Agent 记忆表
CREATE TABLE agent_memories (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    memory_type ENUM('learning', 'milestone', 'reminder', 'feedback', 'interaction') NOT NULL,
    content TEXT NOT NULL,
    related_report_type VARCHAR(50),
    related_report_id INT,
    context JSON,
    is_read BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

10. 系统架构设计

10.1 整体架构

┌─────────────────────────────────────────────────────────────────────┐
│                        用户层                                        │
│              浏览器 / 移动端(响应式 Web)                            │
└─────────────────────────┬───────────────────────────────────────────┘
                          │ HTTPS
┌─────────────────────────▼───────────────────────────────────────────┐
│                      接入层                                          │
│              Nginx(反向代理 + 静态资源托管)                         │
└─────────────────────────┬───────────────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────────────┐
│                      前端层                                          │
│         Vue3 + Vite + JavaScript + Element Plus                     │
│         Axios(API 请求)+ ECharts(数据可视化)                      │
└─────────────────────────┬───────────────────────────────────────────┘
                          │ RESTful API + JWT
┌─────────────────────────▼───────────────────────────────────────────┐
│                      网关层                                          │
│    FastAPI + Pydantic(参数校验)+ 统一异常处理                       │
│    JWT 认证 + 请求限流 + CORS                                        │
└─────────────────────────┬───────────────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────────────┐
│                      服务层                                          │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│  │ 简历解析  │ │ 画像构建  │ │ JD 解析   │ │ 匹配评分  │ │ 简历优化  │ │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│  │ 导出简历  │ │ 投递管理  │ │ 面试管理  │ │ 学习追踪  │ │ 模拟面试  │ │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐                          │
│  │ 报告追问  │ │ 驾驶舱    │ │ Agent    │                          │
│  └──────────┘ └──────────┘ └──────────┘                          │
└─────────────────────────┬───────────────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────────────┐
│                      AI 层                                           │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  LLM Gateway(多模型统一封装)                                │   │
│  │  - DeepSeek-V3(主力,中文理解好,性价比高)                   │   │
│  │  - GPT-4(备用,复杂推理场景)                                │   │
│  └─────────────────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  Prompt 模板引擎(Jinja2 动态渲染)                           │   │
│  └─────────────────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  向量检索(Chroma)                                           │   │
│  └─────────────────────────────────────────────────────────────┘   │
└─────────────────────────┬───────────────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────────────┐
│                      数据层                                          │
│  ┌──────────────────────┐  ┌──────────────────────┐                 │
│  │   MySQL 8.0          │  │  Chroma(本地文件)   │                 │
│  │ (结构化数据存储)    │  │ (向量数据存储)      │                 │
│  └──────────────────────┘  └──────────────────────┘                 │
└─────────────────────────────────────────────────────────────────────┘

10.2 核心数据流

用户上传简历(PDF/Word/图片)
    ↓
OCR / 文档解析 → 提取文本
    ↓
LLM 结构化抽取 → 生成用户画像
    ↓
保存到 MySQL(users + user_profiles + resume_versions)
    ↓
用户粘贴目标岗位 JD
    ↓
LLM 解析 JD → 提取技能要求、权重、隐藏需求
    ↓
保存到 MySQL(job_descriptions)
    ↓
匹配度计算(用户画像 vs 岗位画像)
    ↓
生成匹配报告 → 保存到 MySQL(match_results)
    ↓
用户选择优化模式(一键 / 逐条)
    ↓
LLM 生成优化内容
    ↓
保存优化记录(resume_optimizations)
    ↓
生成 AI 修改报告(ATS 评分变化、关键词补充)
    ↓
用户确认 → 导出简历(PDF 默认)
    ↓
记录岗位到投递管理中心(job_tracker,状态:待投递)
    ↓
用户完成投递 → 更新状态为「已投递」
    ↓
模拟面试 → 保存到 interview_sessions
    ↓
生成学习规划 → 保存到 learning_plans
    ↓
Agent 持续跟踪 → 保存到 agent_memories
    ↓
循环:学习进度更新 → 重新计算匹配度 → 优化简历 → 投递

10.3 技术选型

层级 技术选型 选型理由
后端框架 FastAPI + Python 3.11 异步高性能、自动 API 文档、类型提示、开发效率高
前端框架 Vue3 + Vite + JavaScript 组合式 API、响应式系统、构建速度快、生态成熟
UI 组件库 Element Plus + Tailwind CSS 企业级组件丰富、主题定制灵活、中文文档完善
数据库 MySQL 8.0 稳定可靠,JSON 字段支持半结构化数据,全文检索
向量检索 Chroma 纯 Python、零配置、数据存本地文件、无需额外服务
缓存 Python 内存缓存 / 本地 JSON 轻量级,后续可平滑替换为 Redis
文档解析 PyMuPDF + python-docx + PaddleOCR PDF/Word 精准提取、图片 OCR 识别
AI/LLM DeepSeek API + LangChain 中文理解好、性价比高、LangChain 工具链成熟
Embedding BGE-small-zh 轻量级、中文效果好、可本地运行
可视化 ECharts 功能强大、中文文档完善、Vue 集成简单
部署 云服务器 + Nginx + Gunicorn 轻量级部署,运维成本低

11. 页面设计

11.1 页面结构

┌─────────────────────────────────────────────────────────────────────┐
│  导航栏                                                             │
│  [Logo]  [驾驶舱] [JD解析] [简历优化] [模拟面试] [投递管理] [学习] [Agent] │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│                      【页面内容区域】                                │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

11.2 核心页面清单

页面 路径 功能
登录/注册 /auth 用户认证
简历上传 /resume/upload 上传简历,AI 解析
画像确认 /profile 查看/编辑用户画像
驾驶舱 /dashboard 首页,展示核心数据
JD 解析 /jd/parse 粘贴 JD,查看解析报告
匹配报告 /match/:jd_id 查看匹配度分析
简历优化 /optimize/:jd_id 一键/逐条优化简历
修改报告 /optimize/report/:id 查看 AI 修改报告
模拟面试 /interview/:jd_id 进行模拟面试
面试报告 /interview/report/:id 查看面试评分报告
投递管理 /tracker 管理所有投递岗位
岗位详情 /tracker/:id 查看单个岗位详情
学习规划 /learning 查看学习路线和进度
Agent 对话 /agent 与 Career Agent 对话
设置 /settings 个人信息、偏好设置

12. API 设计

12.1 核心接口列表

方法 路径 说明
POST /api/auth/register 用户注册
POST /api/auth/login 用户登录
GET /api/auth/me 获取当前用户
POST /api/resume/upload 上传简历
GET /api/resume/versions 获取简历版本列表
GET /api/profile 获取用户画像
PUT /api/profile 更新用户画像
POST /api/jd/parse 解析岗位 JD
GET /api/jd/:id 获取 JD 详情
POST /api/match/calculate 计算匹配度
GET /api/match/:id 获取匹配报告
POST /api/optimize/one-click 一键优化简历
POST /api/optimize/diff 逐条优化简历
GET /api/optimize/report/:id 获取优化报告
POST /api/optimize/confirm 确认优化内容
POST /api/export/pdf 导出 PDF 简历
POST /api/interview/start 开始模拟面试
POST /api/interview/answer 提交面试回答
GET /api/interview/report/:id 获取面试报告
POST /api/qa/ask 报告追问
GET /api/tracker 获取投递列表
POST /api/tracker 添加投递记录
PUT /api/tracker/:id 更新投递状态
DELETE /api/tracker/:id 删除投递记录
GET /api/learning/plan 获取学习规划
POST /api/learning/milestone 完成里程碑
GET /api/agent/messages 获取 Agent 消息
POST /api/agent/chat 与 Agent 对话
GET /api/dashboard 获取驾驶舱数据

13. AI Agent 工作流

13.1 Agent 架构

                         用户输入
                             │
              ┌──────────────┼──────────────┐
              │              │              │
        ┌─────▼─────┐ ┌────▼────┐ ┌─────▼─────┐
        │ 意图识别   │ │ 上下文   │ │ 知识检索   │
        │ (Intent)   │ │ (Context)│ │ (RAG)     │
        └─────┬─────┘ └────┬────┘ └─────┬─────┘
              │            │            │
              └────────────┼────────────┘
                           │
                    ┌──────▼──────┐
                    │  LLM 推理    │
                    │ (DeepSeek)   │
                    └──────┬──────┘
                           │
              ┌────────────┼────────────┐
              │            │            │
        ┌─────▼─────┐ ┌────▼────┐ ┌─────▼─────┐
        │ 生成回答   │ │ 执行动作  │ │ 更新记忆   │
        │ (Response) │ │ (Action) │ │ (Memory)  │
        └────────────┘ └─────────┘ └───────────┘

13.2 Agent 记忆机制

记忆分层:
├── 短期记忆(对话上下文)
│   └── 存储:当前会话的最近 10 轮对话
│   └── 用途:报告追问、面试对话、Agent 聊天
├── 中期记忆(用户状态)
│   └── 存储:MySQL agent_memories 表
│   └── 内容:学习进度、面试结果、投递记录、Agent 推送历史
├── 长期记忆(用户画像)
│   └── 存储:MySQL user_profiles 表
│   └── 内容:技能、项目、经历、偏好、职业规划
└── 知识记忆(领域知识)
    └── 存储:Chroma 向量库
    └── 内容:技能文档、面试题库、学习资源、行业报告

13.3 Agent 触发器

触发条件 触发时机 Agent 动作
每日晨报 每天 9:00 推送今日任务、学习提醒、截止预警
截止提醒 截止前 7/3/1 天 推送岗位截止提醒,建议立即投递
面试准备 面试前 1 天 推送模拟面试和相关知识点复习
学习完成 用户标记完成 更新匹配度,生成新的学习建议
匹配度变化 每周 生成匹配度变化报告,调整目标岗位
新岗位推送 用户设置目标公司后 推送目标公司新开岗位

14. 商业模式

14.1 C 端免费增值模式

功能 免费版 付费版(会员)
简历上传解析 ✅ 完整功能 ✅ 完整功能
用户画像构建 ✅ 完整功能 ✅ 完整功能
JD 解析 ✅ 每日 3 次 ✅ 无限次
匹配评分 ✅ 基础评分 ✅ 深度分析 + 竞争力评估
简历优化 ✅ 每日 1 次 ✅ 无限次 + 多版本管理
官网填充 ✅ 基础模板 ✅ 热门企业模板 + Chrome 插件
模拟面试 ✅ 每日 1 轮(3 题) ✅ 无限轮次 + 详细报告
报告追问 ✅ 每报告 3 次 ✅ 无限追问
投递管理 ✅ 完整功能 ✅ 完整功能
学习规划 ✅ 基础 3 个月计划 ✅ 动态调整 + 资源推荐
Agent 跟进 ✅ 基础提醒 ✅ 深度跟进 + 岗位推送
驾驶舱 ✅ 基础数据 ✅ 完整数据 + 趋势分析

会员定价建议

  • 月卡:¥29.9
  • 季卡:¥69.9
  • 年卡:¥199

14.2 B 端拓展(V2.0)

  • 高校就业中心:批量简历诊断、就业数据看板、AI 就业指导
  • 招聘机构:候选人能力画像、岗位匹配推荐、人才库管理
  • 企业 HR:简历智能筛选、面试问题生成、候选人评估报告

附录

A. 项目目录结构

zhituxingtu/
├── backend/                    # FastAPI 后端
│   ├── app/
│   │   ├── api/               # API 路由
│   │   │   ├── auth.py        # 认证
│   │   │   ├── resume.py      # 简历解析
│   │   │   ├── profile.py     # 用户画像
│   │   │   ├── jd.py          # JD 解析
│   │   │   ├── match.py       # 匹配评分
│   │   │   ├── optimize.py    # 简历优化
│   │   │   ├── interview.py   # 模拟面试
│   │   │   ├── tracker.py     # 投递管理
│   │   │   ├── learning.py    # 学习规划
│   │   │   ├── qa.py          # 报告追问
│   │   │   ├── agent.py       # Agent 对话
│   │   │   └── dashboard.py   # 驾驶舱
│   │   ├── core/              # 配置、安全、日志
│   │   ├── models/            # SQLAlchemy 模型
│   │   ├── services/          # 业务逻辑
│   │   ├── agents/            # LangChain Agent
│   │   ├── prompts/           # Prompt 模板
│   │   └── utils/             # 工具函数
│   ├── tests/
│   ├── alembic/               # 数据库迁移
│   ├── requirements.txt
│   └── main.py
├── frontend/                   # Vue3 前端
│   ├── src/
│   │   ├── views/             # 页面视图
│   │   ├── components/        # 公共组件
│   │   ├── api/               # 后端接口封装
│   │   ├── stores/            # Pinia 状态管理
│   │   └── utils/
│   ├── package.json
│   └── vite.config.js
├── chroma_data/                # Chroma 向量数据
├── docs/                       # 设计文档
├── README.md
└── docker-compose.yml

B. Python 依赖(requirements.txt)

# Web 框架
fastapi==0.111.0
uvicorn[standard]==0.30.0
python-multipart==0.0.9

# 数据库
sqlalchemy==2.0.31
pymysql==1.1.1
alembic==1.13.2

# 文档解析
pymupdf==1.24.7
python-docx==1.1.2
paddleocr==2.7.0

# AI / LLM
langchain==0.2.0
langchain-openai==0.1.0
openai==1.35.0

# 向量检索
chromadb==0.5.0
sentence-transformers==3.0.0

# 工具
pydantic==2.8.0
python-jose[cryptography]==3.3.0
passlib[bcrypt]==1.7.4
httpx==0.27.0
jinja2==3.1.0

# 开发
pytest==8.2.0

C. 前端依赖(package.json 核心)

{
  "dependencies": {
    "vue": "^3.4.0",
    "vue-router": "^4.3.0",
    "pinia": "^2.1.0",
    "axios": "^1.7.0",
    "element-plus": "^2.7.0",
    "echarts": "^5.5.0",
    "vue-echarts": "^6.7.0"
  },
  "devDependencies": {
    "vite": "^5.3.0",
    "@vitejs/plugin-vue": "^5.0.0",
    "tailwindcss": "^3.4.0"
  }
}
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐