Files
autoAiWorkSys/_doc/项目功能总结.md
张成 c43bf79e2d 1
2025-12-25 22:51:37 +08:00

15 KiB

自动找工作系统 - 项目功能总结

版本: v1.0 | 更新日期: 2025-12-25

一、项目概述

自动找工作系统(autoAiWorkSys)是一个基于AI的智能求职助手平台,通过自动化技术帮助求职者高效管理多个招聘平台账号、智能筛选匹配岗位、自动投递简历,并提供全流程的求职数据分析。系统集成Qwen 2.5 AI模型,实现简历智能分析、岗位匹配度评分、聊天内容生成等功能,大幅提升求职效率和成功率。

二、技术栈

前端技术

  • 框架: Vue 2.6.14 + Vuex 3.6.2 + Vue Router 3.5.3
  • UI组件: View Design (iView) 4.7.0
  • 构建工具: Webpack 5
  • 图表库: ECharts
  • HTTP客户端: 自定义 framework.http

后端技术

  • 运行时: Node.js
  • Web框架: Koa 2.16.3
  • ORM: Sequelize 5.22.5
  • 数据库: MySQL 8.0
  • 消息队列: MQTT (mqtt://192.144.167.231:1883)
  • AI模型: Qwen 2.5 (阿里云DashScope)
  • 缓存: Redis (规划中)
  • 存储: Ali OSS

核心框架

  • Node Core Framework: 自研框架,提供统一的API路由、数据库管理、日志管理

三、核心特性

  1. 多平台账号管理 - 支持Boss直聘、猎聘等多个招聘平台,统一管理账号和授权
  2. 智能简历分析 - AI评估简历竞争力(0-100分),提取技能标签,给出优势劣势和职业建议
  3. 自动岗位投递 - 基于技能匹配和AI评分自动筛选岗位并投递,支持每日上限和时间范围控制
  4. AI岗位匹配 - 多维度评分(技能、经验、薪资、公司质量),自动识别外包岗位
  5. 任务调度系统 - 优先级队列+MQTT通信,设备内串行、设备间并行执行
  6. 数据可视化统计 - 投递成功率、面试转化率、不同平台效果对比等多维度分析
  7. 设备实时监控 - 在线状态、健康度、错误信息、心跳检测
  8. 完整审计日志 - 任务执行、投递记录、聊天记录全链路追踪

四、功能模块一览

4.1 前端功能模块

模块 页面路径 主要功能
首页/仪表板 /home 设备选择、账户信息卡片、今日统计、当前任务列表、近7天趋势图
账号管理 /account/pla_account 账号列表、新增/编辑、授权管理、批量位置解析、停止任务
账号详情 /account/pla_account_detail 账号基本信息、任务历史、自动化配置、运行操作面板
简历管理 /account/resume_info 简历列表、查看详情、AI分析结果展示、删除
简历详情 /account/resume_info_detail 个人信息、教育背景、工作经验、期望信息、AI评分和建议
岗位管理 /work/job_postings 岗位列表、过滤查询、打招呼、查看详情
投递记录 /work/apply_records 投递状态追踪、反馈状态、面试/Offer信息
职位类型 /work/job_types 职位类型配置、技能关键词、排除关键词
任务管理 /task/task_status 任务列表、指令详情、取消/重试操作
聊天管理 /chat/chat_list 双面板聊天界面、会话列表、AI生成回复
聊天记录 /chat/chat_records 聊天历史记录、消息类型、发送状态
系统配置 /system/system_config 系统参数配置、AI服务配置、MQTT配置

4.2 后端API模块

模块 接口前缀 主要功能
账号管理 /admin_api/account 列表、详情、新增、更新、删除、授权、停止任务、位置解析
简历管理 /admin_api/resume 列表、详情、统计、删除、AI分析、按设备获取
岗位管理 /admin_api/job 列表、详情、统计、删除、打招呼
投递记录 /admin_api/apply 列表、详情、统计、删除
聊天记录 /admin_api/chat 列表、详情、统计、删除
设备监控 /admin_api/device 列表、概览、配置更新、错误重置
任务状态 /admin_api/task 列表、详情、统计、更新、删除
数据统计 /admin_api/dashboard 综合统计、投递转化率、平台对比、设备排名
系统配置 /admin_api/system 配置列表、新增、更新、删除

4.3 核心业务流程

┌─────────────────────┐
│  账号配置和授权      │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  获取在线简历(MQTT)  │ → AI分析 → 竞争力评分、技能提取、优劣势分析
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  创建自动投递任务    │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  搜索岗位(MQTT)      │ → 保存到job_postings表
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  岗位过滤和匹配      │ → 技能匹配+AI评分+外包识别
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  自动投递(MQTT)      │ → 记录apply_records
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  聊天和面试跟踪      │ → AI生成聊天内容
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  数据统计和分析      │
└─────────────────────┘

五、已实现功能清单

5.1 账号管理模块

  • 多平台账号绑定(Boss直聘、猎聘)
  • 账号状态管理(启用/禁用、在线/离线、登录状态)
  • 自动化开关(自动投递、自动聊天、自动活跃)
  • 授权管理(设置授权日期、天数、过期时间计算)
  • 职位类型配置(关联job_types)
  • 投递配置(时间范围、每日上限、薪资范围、关键词过滤)
  • 沟通配置(时间范围、是否沟通外包岗位)
  • 活跃配置(活跃间隔、活跃动作)
  • 位置解析(单个/批量,经纬度获取)
  • 停止任务(取消该账号所有运行中任务)

5.2 简历管理模块

  • 简历信息存储(个人信息、教育背景、工作经验、期望信息)
  • 简历获取(通过MQTT从设备获取在线简历)
  • AI竞争力评分(0-100分)
  • AI技能标签提取
  • AI优势劣势分析
  • AI职业建议生成
  • 简历与岗位匹配度计算
  • 简历统计(平均竞争力、工作年限分布、竞争力分布)
  • 按设备和平台查询简历

5.3 岗位管理模块

  • 岗位信息存储(基本信息、要求、描述、薪资、地点)
  • 岗位搜索(通过MQTT下发搜索指令)
  • 岗位列表获取(通过MQTT获取列表)
  • AI岗位匹配评分(技能、经验、薪资、公司质量)
  • 外包岗位识别(规则+AI双层识别)
  • 岗位过滤(技能关键词匹配、排除关键词检测)
  • 综合评分计算(多维度权重评分)
  • 岗位统计(总数、平均匹配度、外包比例)
  • 打招呼功能(初次沟通)

5.4 自动投递模块

  • 自动投递任务创建和调度
  • 每日投递上限控制
  • 投递时间范围控制(工作日/周末)
  • 简历刷新检查(2小时内刷新)
  • 岗位过滤和排序
  • 投递指令下发(MQTT)
  • 投递状态追踪(待投递、投递中、成功、失败、重复)
  • 反馈状态管理(无反馈、已查看、感兴趣、不合适、面试邀约)
  • 投递统计(成功率、面试转化率、Offer转化率)

5.5 AI分析模块

  • Qwen 2.5模型集成(阿里云DashScope)
  • 简历智能分析
    • 技能标签提取
    • 竞争力评分(0-100)
    • 优势劣势分析
    • 职业发展建议
  • 岗位智能匹配
    • 技能匹配度(0-100)
    • 经验匹配度(0-100)
    • 薪资合理性(0-100)
    • 公司质量评分(0-100)
  • 外包岗位识别
  • 聊天内容生成(基础框架)

5.6 任务调度模块

  • 优先级任务队列(堆实现,O(log n)性能)
  • 并发控制(全局5设备,每设备1任务)
  • 设备内串行、设备间并行执行
  • 任务状态管理(待执行、执行中、成功、失败、超时、取消)
  • 指数退避重试机制(最多3次)
  • 任务超时检测(10分钟)
  • 错误分类(可重试/不可重试)
  • 任务恢复(启动时恢复未完成任务)
  • 任务统计(岗位搜索数、过滤数、投递数、聊天数)

5.7 设备监控模块

  • 设备状态追踪(在线/离线)
  • 心跳检测(通过MQTT)
  • 健康度评分
  • 错误信息记录
  • 最后心跳时间
  • 设备配置更新
  • 设备错误重置
  • 设备概览统计(在线数、离线数、健康度排名)

5.8 数据统计模块

  • 投递成功率统计
  • 面试转化率统计
  • Offer转化率统计
  • 不同平台数据对比
  • 设备活跃度排名
  • 简历竞争力分布
  • 岗位外包比例统计
  • 近7天趋势图(投递、搜索、聊天)
  • 今日统计(实时刷新)

5.9 聊天管理模块

  • 聊天记录存储
  • 聊天类型分类(打招呼、跟进、面试、回复)
  • 发送状态追踪
  • 回复检测和记录
  • 回复时长统计
  • 面试邀约识别
  • 情感分析(积极/中性/消极)
  • 效果评分
  • AI生成标记
  • 双面板聊天界面

5.10 其他功能

  • 用户邀请和推广系统
  • 公司信息库(上市公司数据)
  • 版本管理
  • 邮件服务集成
  • OSS存储集成
  • 地理位置服务(百度地图API)
  • Swagger API文档
  • 数据导出(CSV)

六、数据模型

6.1 核心表结构

表名 说明 关键字段
pla_account 平台账号表 sn_code, platform_type, is_online, auto_deliver, deliver_config
resume_info 简历信息表 resumeId, account_id, aiCompetitiveness, aiSkillTags, aiStrengths
job_postings 岗位信息表 jobId, platform, aiMatchScore, isOutsourcing, applyStatus
apply_records 投递记录表 resumeId, jobId, applyStatus, feedbackStatus, hasInterview, hasOffer
chat_records 聊天记录表 conversationId, chatType, isAiGenerated, hasReply, sentiment
task_status 任务状态表 taskType, status, priority, retryCount, progress
task_commands 任务指令表 taskId, commandType, commandData, response, executeTime
job_types 职位类型表 name, commonSkills, excludeKeywords, sortOrder
device_monitor 设备监控表 sn_code, is_online, health_score, last_heartbeat_time
company_info 公司信息表 company_name, is_listed, market_value, risk_level

6.2 表关联关系

pla_account (1) ──→ (N) resume_info
                          │
                          ├─→ (N) apply_records ←── (1) job_postings
                          │          │
                          │          └─→ (N) chat_records
                          │
                          └─→ (N) task_status ──→ (N) task_commands

pla_account (1) ──→ (1) job_types (职位类型配置)
pla_account (1) ──→ (N) device_monitor (设备监控)

七、快速开始

7.1 环境要求

  • Node.js >= 14.x
  • MySQL >= 8.0
  • Redis (可选,用于缓存)
  • MQTT Broker (已配置: mqtt://192.144.167.231:1883)

7.2 安装步骤

# 1. 克隆项目
git clone <repository-url>
cd autoAiWorkSys

# 2. 安装后端依赖
npm install

# 3. 安装前端依赖
cd admin
npm install

# 4. 配置数据库
# 编辑 config/config.js
# 设置MySQL连接信息

# 5. 初始化数据库
# 执行 _sql 目录下的SQL脚本

# 6. 启动后端服务
npm run dev

# 7. 启动前端服务(新终端)
cd admin
npm run dev

7.3 核心配置

config/config.js - 主配置文件

{
  db: {
    host: 'localhost',
    port: 3306,
    database: 'auto_job',
    username: 'root',
    password: 'your_password'
  },
  mqtt: {
    host: 'mqtt://192.144.167.231:1883',
    clientId: 'autoAiWorkSys_server'
  },
  ai: {
    apiKey: 'your_dashscope_api_key',
    model: 'qwen-turbo' // qwen-turbo/qwen-plus/qwen-max
  }
}

7.4 访问地址

八、项目文件结构

autoAiWorkSys/
├── admin/                    # 前端管理后台
│   ├── src/
│   │   ├── views/           # 页面组件
│   │   ├── api/             # API调用
│   │   ├── router/          # 路由配置
│   │   └── store/           # Vuex状态管理
│   └── package.json
│
├── api/                      # 后端服务
│   ├── controller_admin/    # 后台管理API
│   ├── middleware/          # 核心业务逻辑
│   │   ├── job/            # 岗位、简历、聊天管理
│   │   ├── schedule/       # 任务调度系统
│   │   └── mqtt/           # MQTT通信
│   ├── model/              # 数据库模型
│   ├── services/           # 业务服务层
│   └── utils/              # 工具函数
│
├── config/                 # 配置文件
├── framework/              # 核心框架
├── _doc/                   # 文档目录
├── _sql/                   # 数据库脚本
└── package.json

九、技术亮点

  1. 优先级队列 - 堆实现,O(log n)性能,比数组提升10-100倍
  2. 双层过滤 - 规则过滤+AI评分,平衡性能和准确性
  3. 智能重试 - 指数退避策略,区分可重试和不可重试错误
  4. MQTT通信 - 异步消息队列,高效的设备指令下发和响应
  5. AI多场景应用 - 简历分析、岗位匹配、聊天生成、外包识别
  6. 完整审计 - 任务、投递、聊天全链路追踪
  7. 模块化设计 - 清晰的分层架构,易于扩展和维护

十、性能指标

  • 任务调度延迟: < 100ms
  • 数据库查询: 95%在100ms内
  • MQTT消息延迟: < 50ms
  • 前端页面加载: < 2s
  • 并发支持: 最多5个设备同时执行

文档维护: 开发团队 最后更新: 2025-12-25 联系方式: 项目Issues