跳转到内容

邬嘉文:AI求职助手

🦄

作者:邬嘉文 AI求职助手

问题痛点

国内招聘网站都很难用。以猎聘为例

  1. 搜索15个关键字列出8000个职位。
  2. 假设浏览每个职位每次1分钟,用户需要3个月才看完。
  3. 看完后也不清楚自己胜任力和发展方向。

搜索15个关键字

职位数量

展示

8000

去重后

4000

筛选后(如剔除技术研发)

2000

GPT4推荐

600

详情

展示职位

8000个

单个职位浏览时间

1分钟

单个职位浏览次数

2次

总浏览时间

16000分钟

每天浏览时间

240分钟

每周浏览工作日

4天

查看全部岗位耗时

3~4个月

解决方案

🦄

通过GPT4了解自己的发展方向,通过DGE算法匹配相似岗位。

市场现状

信息收集

  1. 在猎聘网上搜索15个感兴趣的关键词,通过instant data scraper收集职位信息。
  1. 通过Python selenium库对URL逐一爬虫,收集招聘要求信息。

行情分析

  1. AI产品经理需求大,曾经XR,虚拟人等产品岗位遇冷。
  2. AI岗位集中在北京和上海,留在广州没太大机会。

个人定位

算法选型

  1. GPT算法有更强语义理解能力。
    1. 每个词由很长的上下文(context windows)及不同权重来定义。
    2. GPT语义能力能分辨什么是核心技能,什么是初略了解。

技能识别

  1. 将简历和10个岗位通过API发送给ChatGPT4,让它推荐其中3个岗位。
  • LLM有Context Length限制。单次请求过长的文本,推理能力会下降。所有每次请求10个岗位。
  • Moonshot推理能力也是不错的,但是json返回格式还没做,故用GPT4。
  1. 2000个岗位经过GPT筛选后,分为600个推荐岗位和1400个潜在岗位。再通过ChatGPT4对每个岗位招聘要求抽取技能(skill NER)。
  2. 找出推荐岗位和潜在岗位的技能差异,找出自己优劣势。

个人画像

  • 创新类产品经理
  • 非核心优势:技术、销售、数据、管理

核心技能

非核心技能

产品设计与开发:

  • 产品设计
  • 产品规划
  • 用户需求分析
  • 交互设计
  • 用户体验
  • 产品开发
  • 产品逻辑思维
  • 产品测试
  • 功能规划
  • 产品创新
  • 产品策划

人工智能与技术:

  • 人工智能
  • NLP (自然语言处理)
  • AIGC (人工智能生成内容)
  • AI技术
  • AI产品设计
  • AI产品规划
  • 大语言模型 (LLM)
  • 云计算

市场与用户研究:

  • 竞品分析
  • 用户调研
  • 市场分析
  • 市场需求分析
  • 用户需求洞察

沟通与协作:

  • 沟通能力
  • 跨部门协作
  • 跨团队协作
  • 执行力

分析工具与方法:

  • SPSS (统计分析软件)
  • 学习能力

创新与思维:

  • 创新思维
  • 用户思维
  • 审美

技术与开发:

  • 数据库
  • 技术规划
  • OpenCV
  • ERP
  • 产品经理
  • 需求文档
  • ASR (自动语音识别)
  • Mysql
  • Hadoop
  • Spark
  • 数据结构
  • 数据处理
  • 软件开发
  • Python
  • SQL

数据分析与人工智能:

  • 行业动态
  • 医疗知识图谱
  • 数据质量
  • 算法开发
  • 模式识别
  • Kafka
  • 数据洞察
  • 数据分析
  • 推荐算法

市场营销与销售:

  • 市场洞察
  • 市场营销
  • 市场调研
  • 功能设计
  • 自驱力
  • 协调能力
  • 资源协调

管理与沟通:

  • 管理
  • 产品生命周期管理
  • 生命周期管理
  • 需求管理
  • 英语

人岗匹配

算法选型

人岗匹配(Person-Job Fit)是一个经典匹配算法问题。主流计算方法:

匹配方式

实现过程

缺陷

基于岗位文本和简历文本匹配

  • 技能实体(skill NER提取)
  • 制作知识图谱
  • 设置不同的权重
  • 做embedding匹配召回
  • 开发量大

基于点击行为匹配

  • 基于近期点击行为推荐
  • 没点击行为数据

基于文本和点击行为的混合匹配

  • 招聘APP首页体验
  • 商业化作恶,大量重复岗位

这里我们选择基于文本相似性排序推荐。不同的是,利用最新的BGE模型,从向量空间来计算相似性,建立一个可用的Baseline。若需要工程化调优,再考虑NER,知识图谱,多路召回等策略。

相似性计算

  1. 使用DGE-M3模型,对简历和岗位做相似性匹配。
  • 算法推荐的岗位,红字是一些关键匹配点。
  • 算法不太推荐的岗位,蓝字是一些关键匹配点。

Python代码

import pandas as pd

from FlagEmbedding import BGEM3FlagModel

1. 读取cv.txt文件

with open('cv.txt', 'r', encoding='utf-8') as file:

cv_content = file.read()

2. 读取JobDetails2.xlsx文件所有字段

job_details = pd.read_excel('JobDetails2.xlsx')

3. 使用BGE-M3模型计算相似性

model = BGEM3FlagModel('BAAI/bge-m3', use_fp16=True)

cv_embedding = model.encode([cv_content], batch_size=1, max_length=8192)['dense_vecs']

计算cv与每个job_description的相似性

similarities = []

for job_description in job_details['job_description']:

job_embedding = model.encode([job_description])['dense_vecs']

similarity = cv_embedding @ job_embedding.T

similarities.append(similarity.item())

4. 将所有信息汇总保存为123.xlsx

job_details['similarity'] = similarities

job_details.to_excel('123.xlsx', index=False)

岗位投递

  • Github上有一个自动投简历的程序。它是利用招聘网站原生推荐流,算是比较准的。
  • 但自己不想这样乱投简历。根据上面的职业定位和推荐排序,可以3天内看完2000个岗位。

文章导读