# 自动找工作系统 - 项目功能总结 > 版本: 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 安装步骤 ```bash # 1. 克隆项目 git clone 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** - 主配置文件 ```javascript { 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 访问地址 - 前端管理后台: http://localhost:8080 - 后端API: http://localhost:3000/admin_api - API文档: http://localhost:3000/api/docs ## 八、项目文件结构 ``` 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