项目:用SOLO制作的基于真实招聘数据的智能职业规划工具
链接:https://github.com/Ryan-shangzhi/career-planning-agent.git
技术栈:React + TypeScript 前端,FastAPI + SQLite 后端,Zustand 状态管理,React Router 路由
核心逻辑:真实JD数据 → 问卷采集用户背景 → 生成岗位能力差距分析 → 输出个性化学习路径与行动计划
开发周期:项目创建至4月29日完成基础搭建;4月30日至5月9日进行功能深化与体验优化
【SOLO辅助】独立打造数据驱动的智能职业规划工具
1. 摘要
当前职场环境变化频繁,我身边不少朋友对自身职业定位感到模糊,尤其准备转行或入行的新人,很难判断目标岗位的真实能力要求。我基于真实数据做了这款职业规划工具,用户填写现状和目标后,系统分析生成岗位能力差距分析与可执行的行动计划,让职业规划从"凭感觉"变成"看数据"
2. 背景
我是一名产品经理,工作中习惯了把模糊的需求拆解成可执行的路径。但帮身边朋友做职业规划时,发现网上的攻略要么笼统、要么来源不明,很难给出让人信服的具体建议。于是我决定用SOLO做一款工具,从JD中提取岗位技能需求,结合用户现状生成个性化的差距分析和行动计划,让职业规划也能像做产品一样有据可依
3. 实践过程
3.1 任务拆解
Solo帮我把项目分为四个主要模块逐步推进。首先是前端页面架构,用React构建三个核心页面(首页引导、问卷采集、分析结果展示),用Zustand管理状态,用React Router处理页面跳转。其次是后端API与数据库,用FastAPI提供RESTful接口,用SQLite存储招聘数据和用户分析结果。再次是数据爬取模块,用Playwright模拟浏览器抓取真实JD数据。最后是分析逻辑层,实现岗位能力匹配、差距量化评估、学习路径生成等核心算法
3.2 solo能力运用
在整个开发过程中,我主要用SOLO完成了以下工作:前端组件的快速搭建和样式调优,尤其是Tailwind CSS的类名选择和响应式布局实现;后端API接口设计和FastAPI路由编写;数据分析逻辑的代码实现,包括技能提取算法、能力匹配计算、学习路径生成等;Bug排查和代码优化,特别是当出现逻辑错误或数据异常时,solo帮助我快速定位问题根源;数据库查询语句的编写和优化
3.3 关键操作节点
节点一:确定前后端技术方案
项目起步时,我需要决定前端状态管理和后端架构。向solo描述了项目需求后,它建议我使用Zustand管理前端状态,这个选择后来证明非常合适,API响应数据可以直接映射到store中,组件获取数据非常便捷
节点二:获取真实JD信息
爬取招聘数据时,网站返回了异常内容。这里我求助了社区的一位前辈,分析问题后,建议我使用Playwright替代requests,实现浏览器级别的自动化操作,成功解决了信息获取问题
节点三:JD详情无法正常显示
用户反馈点击职位卡片无法展开查看完整JD描述。Solo帮我排查发现是前端渲染逻辑和后端数据结构的字段命名不一致导致,修复后实现了正常交互
节点四:薪资显示异常
薪资数字缺少"K"单位,零薪资显示为"0K"。Solo协助定位到渲染逻辑中的格式化问题,统一修改后薪资展示恢复正常
节点五:不同岗位显示相同技能列表
用户反馈所有岗位都显示Angular、TypeScript等前端技能。Solo帮我追踪了整个数据链路,发现后端虽然正确计算了marketSkills,但前端Survey页面在调用setAnalysis时遗漏了这个字段,导致数据没有传递到最终渲染层。修复后岗位族技能推荐终于按预期工作
3.4 踩过的坑
薪资数据显示异常
现象:薪资数字缺少"K"单位,零薪资显示为"0K",前后端交互时数值类型不一致。排查后发现渲染层没有做格式化处理,且前后端使用了不同的字段命名规范。解决方法是统一使用camelCase命名,并在渲染层添加条件判断,空薪资显示"面议",正常薪资自动附加"K"单位
能力地图出现噪点
现象:能力地图显示了一些用户没有输入但系统自动推断出的技能。排查发现是算法在缺少数据时会做低置信度的推断并展示。解决方法是在渲染逻辑中增加过滤条件,只显示用户明确输入的技能,提升模块的可信度
市场薪资数据误导
现象:当某个岗位的样本数据很少时,薪资分析结果出现极端值或明显不合理。排查发现是数据不足时算法没有做降级处理。解决方法是为样本量设置最低阈值,不足时显示"样本数据有限"提示,并展示薪资趋势而非精确数值
岗位技能推荐同质化
现象:所有岗位类型都显示相同的前端技能列表(Angular、性能优化等)。排查发现后端正确计算了不同岗位族的marketSkills,但前端在数据传递时遗漏了该字段,导致组件一直使用硬编码的fallback数组。解决方法是在Survey页面的setAnalysis调用中补充marketSkills字段传递
4. 成果展示
工具最终产出了三个核心页面和多个功能模块
首页是职业规划顾问的引导界面,底部放置醒目的"开始规划"按钮,引导用户进入问卷流程
问卷调查页采用多步骤表单设计,依次收集用户的职业背景(当前岗位或身份)、工作经验年限、已掌握的核心技能(后续会支持多选和手动输入)、目标岗位或公司。表单设计简洁,每一步聚焦一个主题,降低填写负担
分析结果页是整个工具的核心展示区,包含多个模块:
目标岗位匹配结果(显示匹配度最高的5-8个职位,部分可展开查看完整JD)
竞争分析(展示岗位供需情况、典型竞争者画像、用户优劣势)
差距分析(对比用户现状与目标要求,列出各项软硬能力的差距程度和补足难度)
行动计划与学习路径页按时间维度展示短期、中期、长期三个阶段的具体建议。每个阶段包含核心学习技能(带优先级评分)、推荐学习资源(书籍、课程、实战项目)、预估学习周期和难度评估(该部分后续会继续优化增加实用度)
能力地图模块以可视化方式展示用户当前技能与目标岗位所需技能的对比,清晰标注已掌握、需提升、需新增的技能
市场薪资分析模块展示目标岗位的薪资分布,包括不同经验水平的薪资范围、市场中位数、高薪岗位特征等数据
目标岗位常见技能模块根据用户选择的岗位族,动态展示该岗位在招聘市场中的高频技能需求,帮助用户了解哪些技能是真正的硬通货
5.效果与总结
5.1 效率变化
在SOLO辅助下,这个全栈项目的开发效率比传统方式提升了约2-3倍。具体来说:页面组件开发从原来可能需要逐行编写,缩短到描述需求后快速生成并迭代调整;后端API的开发调试周期大幅缩短,SOLO可以直接生成接口代码并协助排查接口问题;Bug定位时间从可能需要几小时缩短到几十分钟,solo帮助我快速追踪数据链路并定位问题根源;复杂的数据分析逻辑(技能匹配、能力差距量化、学习路径排序)通过与solo反复讨论和迭代实现,避免了自己从零推导算法的巨大工作量
5.2 可复用的方法
经过这个项目,我总结出一套SOLO辅助开发的工作流程。第一步明确需求和边界,向solo描述清楚要做什么、做到什么程度,避免后续大量返工。第二步小步快跑式迭代,不要试图一次性完成所有功能,而是拆分成小模块逐个实现和验证。第三步数据链路优先,在开始写渲染逻辑前,先确保后端API返回的数据结构正确,数据通路打通后再做界面美化。第四步带着问题调试,遇到Bug时向solo描述现象,让solo协助追踪数据链路或逻辑流程,而不是自己盲目猜测。第五步用户视角验证,开发完成后用真实数据测试例,关注用户实际使用时的体验而非技术上的完美
结言:
项目目前处于基本功能完善、细节持续打磨的阶段。通过收集真实数据作为样本,结合用户现状生成个性化的差距分析和行动计划,形成了完整的数据驱动职业规划闭环,为职场新人或转行者提供了基于真实市场数据的职业规划参考,后续会加强学习路径的优化,新增标签选择器等功能更新
非常感谢能得到前辈们的指点以及本次使用SOLO尝试从0-1制作的机会,过程中如有不合理的地方,欢迎前辈们给出建议和使用体验






