Please enable Javascript to view the contents

招聘页面岗位订阅 Agent (PoC) - Part 1

 ·  ☕ 4 分钟

logo

作为一名求职中的中年码农,由于地域和年龄限制,我的选择空间其实就那么几家。我经常需要反复查看自己感兴趣公司的招聘页面。这一过程既耗时又枯燥,尤其是在需要同时跟踪多家公司职位的情况下。虽然许多招聘网站都提供基于邮件的职位提醒,但这些提醒通常要么依赖于对已提交简历进行不透明的 AI 匹配,要么只是简单的关键词匹配。在这两种情况下,我对实际的匹配条件几乎没有控制权。

为了解决这个问题,我决定利用一个 AI Agent 来自动 Watching 招聘页面,并在发布符合我自己定义条件的新职位时通知我。在本文中,我将介绍一个用于验证这一想法的概念验证(PoC)。

在这个 PoC 中,我展示了如何使用 AI Agent 来 Watching 一家公司招聘页面上的软件开发岗位。该 Agent 能够自动浏览招聘网站、搜索相关职位、提取结构化信息,并将结果存储到 SQLite 数据库中,以便后续查询和跟踪。

PoC

职位数据来源

在本次实验中,我选择了一家其招聘页面基于 Eightfold AI 平台构建的公司。如果你的目标公司同样使用 Eightfold AI,那么只需做很少的修改即可复用该 PoC。

Eightfold AI 是一个人才智能平台,利用人工智能支持招聘、员工留任以及劳动力发展。它基于技能和经验将候选人与开放职位进行匹配,目前已被包括 Vodafone、Morgan Stanley 和 Chevron 在内的 100 多家公司使用。该平台覆盖 155 多个国家。

尽管 Eightfold AI 平台本身已经提供了基于 AI 的职位提醒订阅功能,但我仍希望对匹配逻辑和采集到的数据拥有更细粒度的控制,因此才希望有一套自定义解决方案。

Agent 设计

我在 VS Code Copilot Chat 环境中实现了该 PoC,并使用了以下工具和提示词。

MCP 工具

  • 浏览器工具browsermcp:用于导航和操作招聘网站页面。
  • SQLite 数据库工具genai-toolbox:用于持久化存储提取到的职位数据。

./vscode/mcp.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
  "servers": {
    "browsermcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "@browsermcp/mcp@latest"
      ]
    },
    "sqlite": {
      "command": "~/genai-toolbox/toolbox",
      "args": [
        "--prebuilt",
        "sqlite",
        "--stdio"
      ],
      "env": {
        "SQLITE_DATABASE": "~/jobs/jobs.db"
      }
    }
  }
}

数据库 Schema

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
CREATE TABLE IF NOT EXISTS xyz_company_jobs (
    job_id TEXT PRIMARY KEY, -- 职位的唯一标识
    req_id TEXT,             -- 招聘需求 ID
    job_title TEXT,          -- 职位名称
    location TEXT,
    date_posted TEXT,        -- 格式:'YYYY-MM-DD'
    business_department TEXT,
    job_description_url TEXT,
    job_description TEXT     -- 职位描述的主要内容
);

Agent 提示词

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
你是一个可以访问浏览器工具和 SQLite 数据库工具的 AI Agent。你的任务是从 XYZ_Company 的招聘网站中收集与软件开发相关的职位信息,并将提取到的数据存储到 SQLite 数据库中。当前浏览器中打开的页面是 XYZ_Company 的职位搜索门户。

数据库:
```sql
CREATE TABLE IF NOT EXISTS xyz_company_jobs (
    job_id TEXT PRIMARY KEY, -- 职位的唯一标识
    req_id TEXT,             -- 招聘需求 ID
    job_title TEXT,          -- 职位名称
    location TEXT,
    date_posted TEXT,        -- 格式:'YYYY-MM-DD'
    business_department TEXT,
    job_description_url TEXT,
    job_description TEXT     -- 职位描述的主要内容
)
```

规则:
- 在调用一次 `click()` 操作后,必须等待 10 秒,确保页面完全加载,然后再调用 `snapshot` 捕获当前页面状态。
- 在向 `xyz_company_jobs` 表插入新记录之前,需要检查 `job_id` 是否已经存在,以避免重复数据。
- 在生成 INSERT SQL 语句时,确保对值中的单引号进行正确转义。
- 不要收集或点击位于 `document > main > group Similar Position` 区域下的职位。

用户已经准备的环境:
- 浏览器中已经打开了 XYZ_Company 的职位搜索门户。

你的安装过程:
1. 如果 `xyz_company_jobs` 表不存在,则创建该表。在执行 SQL 时,需保留 SQL 代码块中的注释行。

执行过程:
1. 每一个文本匹配 "$Job_Title$ 于 $time_since_publication$ 前发布" 模式的按钮都代表一个职位。通过 `今天 - time_since_publication` 计算 `Date Posted`2. 点击职位按钮以打开职位详情页面,该页面的 URL 即为 `Job Description URL`3. 从职位详情页面中提取:职位名称、工作地点、Job ID、业务部门(可选)、Req ID 以及职位描述的主要内容。
4. 仅收集与软件开发相关的职位。
5. 将每个收集到的职位插入 `xyz_company_jobs` 表,并基于 `job_id` 确保不产生重复记录。
6. 如有需要,点击 `更多职位` 按钮以加载更多职位。
7. 至少收集并存储 10 个职位。

运行

  1. 打开一个 Chrome 浏览器标签页,访问 XYZ 公司的招聘门户网站。在该标签页上激活 Browser MCP Chrome 扩展程序。
  2. 在 VS Code 中启动一个新的 Copilot Chat 会话,并使用上述 MCP 配置和提示。

总结

通过上述配置,我成功实现了一个 AI Agent,它能够自动 Watching 目标公司的招聘页面,发现新的软件开发职位。该 Agent 可以自动浏览招聘网站、识别相关职位、提取结构化数据,并将其存储到 SQLite 数据库中,从而方便后续访问和长期跟踪。

后续工作

该 PoC 还可以在多个方面进行扩展:

  • 引入更复杂的匹配逻辑,例如简历解析和基于语义的技能匹配。
  • 将收集到的职位信息导出为 RSS 或邮件摘要,从而构建一个完全自托管的职位提醒系统。
  • 添加通知机制,在发现新的匹配职位时立即提醒我。
分享

Mark Zhu
作者
Mark Zhu
我在找工作 | I'm open to work