一、立项背景和目标 — 讲了求职者面临的海投回复率低、信息分散、缺乏量化评估三个痛点,以及 AI 职选如何解决这些问题。
二、软件功能与核心功能模块 — 分五个模块说明:
- 数据采集模块(公司详情页/职位详情页/列表页三种采集方式)
- 数据管理模块(暗色主题后台、批量更新、CSV 导出)
- AI 对话模块(多模型、流式输出、语音输入、文件上传)
- AI 数据分析模块(行业分析、薪资分析、报告生成)
- 简历优化与概率评估模块(四步流程、三维度评分)
三、业务流程与功能路径 — 分四个流程描述:
- 采集业务流程(从打开网页到数据存储的完整路径)
- AI 分析业务流程(勾选→分析→出报告)
- AI 对话业务流程(配置模型→提问→流式回复)
- 简历优化业务流程(输入简历→选目标→AI优化→概率评分)
一、整体架构与设计思路
基于 Chrome Extension Manifest V3,四层结构:表现层(popup 和 options 面板)、逻辑层(background Service Worker)、采集层(注入自包含抓取函数)、存储层(Chrome Storage API)。三个设计原则:自包含、容错优先、本地优先。
前端原生 HTML/CSS,业务逻辑原生 JavaScript ES6+,AI 接口兼容 OpenAI 格式 SSE 流式请求。
我独立负责全部开发,核心代码约 9000 行,7473 行 options.js 和 1292 行 popup.js,从搭建到上线一人完成。
二、遇到的难点与解决方案
页面结构频繁变化:多级选择器兜底(精确选择器到正则匹配五级),配合 URL 感知算法按页面类型解析标题。
动态加载采集不全:500ms 轮询检测关键元素,最多 30 次,配合 scrollIntoView 触发加载,超时返回已获取部分,成功率从 60% 提升到 95% 以上。
Service Worker 导出限制:Base64 编码 CSV 为 Data URL,通过 chrome.downloads.download 触发下载,加 UTF-8 BOM 解决中文乱码。
executeScript 闭包陷阱:所有辅助函数定义在注入函数体内确保闭包可用。
多模型流式输出兼容:抽象统一流式请求层,兼容多种响应结构,非流式接口自动降级。