哈喽,大家好,
我是阿星👋🏻
最近看到好多同学在找工作给boss直聘发信息发信息太麻烦了,
而且千人一面不容易被回复,所以灵机一动做了个打招呼插件,一键个性化发送打招呼语👏🏻不超过1分钟。
一句话原理
首先我们先打开boss熟悉下产品逻辑。
要想实现个性化打招呼,我们需要的就是两次AI API请求。
1、第一次是请求大模型对我们的简历亮点记性你提炼总结(你自定义的话另说),
2、第二次是对大模型返回的履历亮点再加上岗位信息进一步生成打招呼语。
上传简历👉🏻提取亮点👉🏻AI撰写打招呼语👉🏻点击跳转到聊天页面直接粘贴
操作起来就是,用户进入到的页面一定是职位列表
然后系统会自动抓取JD到岗位描述,并通过大模型api来结合你的履历进行打招呼语生成。
开发注意事项
整个插件的开发非常简单,熟练同学20分钟就能做完。
小白同学来说,主要是网页页面元素的定位。
如果你找不准JD在整个网页的位置,F12检查元素即可。点右上角的箭头。
但是系统在抓取的时候,往往会抓取一部分css语言进来,所以我们会要求AI抓取这两个元素的时候进行清洗。详见文末详细提示词。下面两个图就是job名字和desc描述的结构名,就是他们在整个网页的代号啦。
个人简历的部分,两个方法
1、你可以选择上传pdf(时间过长,你自己写插件这部分也很容易报错,效果可能还没纯文字好)
2、手动复制你的简历纯文字版过来。
阿星推荐第2种。或者你改变产品逻辑,让系统干脆读取在线简历提取你的履历亮点后,再跳转到joblist,这样就能免去chrome上解析pdf上的各种奇怪问题。
现在,咱们来试一试。我先来mock个张三简历。
现在,我直接粘贴到了履历亮点里面,然后点击生成打招呼语,大模型会你的履历上的重要文本和岗位信息做一个结合,就有了打招呼语。
点击的瞬间就会从刚才的列表页直接跳转到聊天页。进一步你可以要求直接读取剪贴板并粘贴,也可以自己手动粘贴到对话框,一键发送。
但是阿星使用之后发现,api key 和张三的个人履历亮点每次都要重新填。
所以我们直接和AI进行补充就行了。直接告诉AI把这两项做一个持久化储存。
使用方法
首先去月之暗面kimi的开放平台拿个key。
然后把项目直接拖入chrome扩展插件里。刷新一下boss就可以用了。
提示词
提示词也来了。
阿星这个提示词是基于EARS语法来写的。这个语法只要你给出基础需求,就可以在这个基础上进行专业级产品经理的增强。详细文章戳👉AI提示词增强丨用EARS语法进行产品原子化拆解
初始提示词
帮我设计一个基于boss直聘打招呼的软件。
1、用户如果没有停留在boss直聘职位详情页,https://www.zhipin.com/web/geek/jobs?ka=header-jobs,提醒用户跳转到相关页面。
2、用户上传简历pdf后,点击【履历提取】按钮,通过moonshot API传输给大模型并解析一段【履历亮点】
3、大模型把总结后的【履历亮点】+页面中的职位详情信息,一起发送给大模型,并在对话框中生成一段打招呼语。这个时候。
所以我会和发两次提示词,第一次是下面这个【EARS提示词】,第二次是把第一次的对话结果也就是【正式提示词】直接发给编程的AI。重点
把提示词发给AI,它干太快了,我都害怕会员被它造没了。是的现在不用等邀请码了。
别忘了带上kimi的示例代码,把系统级提示词下面的content改成文本分析的提示词。好之后给我们进行简历文本和岗位信息的分析,否则就是系统默认。
返回内容参考这里,选择非stream格式的。
别忘了检查自己有没有充钱哈。
EARS提示词
需求陈述: 这里写你的需求
帮我设计一个基于boss直聘打招呼的chrome插件。
1、用户如果没有停留在boss直聘职位详情页https://www.zhipin.com/web/geek/jobs?ka=header-jobs,否则不发送消息,提醒用户跳转到相关页面。
2、用户需要填写moonshot api key且能做持久化储存
3、上传简历pdf后,点击【履历提取】按钮,系统使用pdf.js库解析PDF文件提取文本内容,将解析后的纯文本与简洁的系统提示词"请从该简历文本中提取核心技能、项目经验和职业履历亮点,输出一段150字以内的概括文本"一起发送给大模型API,大模型结合候选人简历内容分析并生成一段简短的亮点概述返回给前端界面。
4、大模型把总结后的【履历亮点】+页面中的【职位预览信息】一起发送给大模型,并在对话框中生成一段打招呼语。职位预览信息是`span.job-name`和`p.desc`字段。并做清洗:移除包含 {} 或多 : / ; 的行,过滤隐藏样式关键词,只保留正文句子。
5、popup顶部为“阿星打招呼助手”品牌栏。 采用渐变标题栏、卡片化区域、圆角与阴影、统一按钮样式
6、生成打招呼语之后,应自动点击页面上的“立即沟通”按钮,并将生成的打招呼语写入剪贴板
7、api key 和履历亮点需要做持久化储存,用户下次登录还能看见。
请求示例:
curl https://api.moonshot.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MOONSHOT_API_KEY" \
-d '{
"model": "kimi-k2-turbo-preview",
"messages": [
{
"role": "system",
"content": "你是一个文本分析专家,针对用户提供的文本进行分析。"
},
{
"role": "user",
"content": "你好,我叫李雷,1+1等于多少?"
}
],
"stream": true
}'
返回示例:
{
"id": "cmpl-04ea926191a14749b7f2c7a48a68abc6",
"object": "chat.completion",
"created": 1698999496,
"model": "kimi-k2-turbo-preview",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": " 针对用户提供的信息进行分析并总结其中的工作履历等关键信息"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 19,
"completion_tokens": 21,
"total_tokens": 40,
"cached_tokens": 10 # 缓存命中的 token 数量,只有支持自动缓存的模型会返回该字段
}
}
梳理以上需求,使用EARS(简易需求语法)对需求进行精确改写; 识别需求所属领域,请找到能处理相关任务相关领域的成熟理论; 提取需求陈述中提供的示例,按如下格式构造能够引导大语言模型更高质量完成任务的增强提示词:
role
[根据具体需求填入相应的专业角色定位]
goals/skills
[列出该角色应具备的核心目标和技能]
workflows
[描述完成任务的具体工作流程步骤]
examples
[从需求陈述中提取的具体示例]
formats
[指定输出的具体格式要求]
正式提示词
# EARS(简易需求语法)需求改写
1. 当用户未停留在BOSS直聘职位详情页时, 系统应 阻止消息发送并提示用户跳转至正确页面
2. 当用户输入Moonshot API Key后, 系统应 将其持久化存储至本地
3. 当用户上传PDF简历并点击提取按钮时, 系统应 :
- 使用PDF.js解析文本内容
- 将文本与提示词组合发送至大模型API
- 返回150字以内的简历亮点概述
4. 当 生成打招呼语时, 系统应 :
- 组合【履历亮点】+【职位预览信息】(来自span.job-name和p.desc)
- 清洗文本(移除含{}/:;的行,过滤隐藏样式)
5. 系统应 具备品牌化UI:渐变标题栏、卡片化区域、圆角阴影、统一按钮样式
6. 当 生成招呼语后, 系统应 自动点击"立即沟通"按钮并填充文本至剪贴板
7. 系统应 持久化存储API Key和履历亮点数据
## 领域理论与成熟方案
- 浏览器扩展开发 :Chrome Extension MV3架构
- PDF解析技术 :PDF.js文本提取最佳实践
- 提示工程 :Chain-of-Thought任务分解技术
- 数据持久化 :Chrome Storage API本地存储方案
- DOM操作 :安全的内容脚本注入模式
## 增强提示词构造
role
资深全栈工程师 & 浏览器扩展架构师
goals/skills
- 设计符合Chrome Extension MV3规范的插件架构
- 实现安全的跨域API通信与数据持久化
- 运用PDF.js进行客户端文档解析
- 构建符合人机工程学的用户交互流程
- 实施稳健的DOM操作与内容脚本注入
workflows
1. 环境验证阶段
- 检测当前URL是否为合法职位详情页
- 非法状态时显示引导提示并终止流程
2. 数据准备阶段
- 通过Chrome Storage加载持久化配置
- 渲染文件上传组件与API Key输入表单
3. 简历解析阶段
- 使用PDF.js提取文本内容
- 构造系统提示词:"请从该简历文本中提取核心技能、项目经验和职业履历亮点,输出一段150字以内的概括文本"
- 调用Moonshot API获取简历亮点
4. 内容生成阶段
- 抓取DOM中职位信息(span.job-name + p.desc)
- 执行文本清洗:
```javascript
text.replace(/{.*?}/g, '')
.split('\n')
.filter(line => !/[{}:;/]{3,}/.test(line))
```
- 组合简历亮点与职位信息发送至大模型生成招呼语
5. 自动化执行阶段
- 定位"立即沟通"按钮并触发点击
- 使用Clipboard API写入生成的文本
## examples
```javascript
// API请求示例
const payload = {
model: "kimi-k2-turbo-preview",
messages: [
{ role: "system", content: "你是专业的简历分析助手" },
{ role: "user", content: "解析文本:[简历内容]" }
]
}
// 数据持久化示例
chrome.storage.local.set({
apiKey: 'sk-xxx',
resumeHighlights: '候选人具有...'
})
formats
- API响应:JSON格式含choices[0].message.content字段
- 简历亮点:纯文本≤150字,段落格式
- 职位信息:清洗后的纯文本,每行不超过80字符
- 存储数据:键值对结构,支持字符串类型序列化
快去试试吧~
更多AI应用,我们下期再见~
延伸阅读:之前发过的关于插件的文章
免费开源!小红书卡片生成神器Obsidian插件,一键做出高级感笔记!
小红书文案采集插件,直连飞书多维表格丨附手把手教程
手把手教你用AI开发小红书关键词挖掘插件丨Curosr+Xmind
0代码基础小白如何上架第一个Chrome AI 插件?