mcpField
J
jobseek

jobseek

本地服务
github.com/colophon-group商业与营销218今天更新

关于 jobseek

Job Seek(jseek.co)是一个聚合企业招聘页面职位的求职搜索服务,支持关注公司、每周邮件提醒和申请跟踪。项目代码为 MIT 开源,并提供托管的 MCP 服务,供 AI 工具调用。

主要功能

  1. 01聚合多家公司招聘页面的职位
  2. 02按公司和条件保存观察列表
  3. 03每周邮件职位提醒
  4. 04申请、面试与录用状态跟踪
  5. 05提供托管 MCP 端点与 REST API

适用场景

  1. 01在 AI 工具中搜索指定公司的职位
  2. 02为关注的公司设置每周职位提醒
  3. 03跟踪多个职位的申请进度

MCP 相关

该服务提供托管的 Streamable HTTP MCP 端点,暴露职位搜索、公司查询、筛选项发现和观察列表链接等工具,也可通过 npx @jseek/mcp-server 本地运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"colophon-group-jobseek": {
"command": "npx",
"args": [
"-y",
"@jseek/mcp-server"
]
}
}
}
启动命令npx -y @jseek/mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@jseek/mcp-server0.2.0

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
qstring否自由文本关键词
wmstring否工作模式,使用逗号分隔:onsite、hybrid、remote
expstring否工作年限范围,格式:min-max(例如 3-10)
locstring否地点 slug,使用逗号分隔(来自 resolve_slugs)
occstring否职业 slug,使用逗号分隔(来自 resolve_slugs)
salstring否欧元薪资范围,格式:min-max(例如 80000-150000)
senstring否资历级别 slug,以逗号分隔(来自 resolve_slugs)
langstring否职位文档语言代码,以逗号分隔(en、de、fr、it)
techstring否技术 slug,以逗号分隔(来自 resolve_slugs)
etypestring否雇佣类型,以逗号分隔:full_time、part_time、contract、internship、temporary、volunteer
localeenum否响应语言en | de | fr | it

详细介绍

Job Seek

关注你感兴趣的公司。找到合适的工作。让求职申请持续推进。

Job Seek 汇集数千家公司的招聘页面,让你一站式搜索职位。创建关注列表,接收每周职位邮件提醒,并在一个地方跟踪求职申请。免费起步,提供英语、德语、法语和意大利语界面。

试用 jseek.co →  ·  查看功能  ·  使用 MCP 服务  ·  添加公司  ·  自行运行

MIT License Job data CC BY-NC 4.0 CI CodeQL PyPI GitHub stars

正在追踪 Stripe · Anthropic · OpenAI · Figma · Vercel · Datadog · Mistral · Hugging Face · Linear · Notion · Roche · Nestlé · UBS · Swisscom · ABB · SAP · Siemens · Klarna · N26 · Wise · Monzo 等数千家公司。请查看 companies.csv 中的权威来源目录。


为什么选择 Job Seek

你的下一份工作可能就在你早已欣赏的公司,也可能来自一家你尚未发现的公司。跨招聘网站搜索,关注一组选定的公司,减少反复查看相同页面以获取更新的时间。

  • 职位信息来自源头。 浏览雇主招聘页面和 ATS 信息源。每条职位信息都链接到原始招聘页面。
  • 筛选条件随你同行。 组合职位、资历级别、地点、技术、工作方式、薪资、经验和发布语言等条件,然后将搜索保存为关注列表。
  • 免费的求职工作区。 最多可创建 10 个关注列表,每周接收邮件摘要,并跟踪保存在 Job Seek 上的职位申请。
  • 借助 Pro 找到更合适的职位。 Narrowed 会根据你的个人标准分析职位描述,不局限于职位名称和常规筛选条件。
  • 开源,可通过你的工具访问。 使用 Web 应用、公共 REST API 或托管的 MCP 服务。

你可以在 jseek.co 上获得什么

跨公司招聘页面搜索职位

无需账号即可浏览。组合筛选条件,在数千家雇主中找到合适的职位,涵盖工程、设计、金融、运营、医疗保健等领域。

职位搜索页面,展示公司结果以及职位、地点和工作偏好筛选条件

关注公司并接收每周职位提醒

为每种求职方向创建关注列表:选择雇主、职位、地点或组合条件。启用通知后,即可每周通过邮件接收新匹配职位摘要。你也可以通过链接与正在寻找类似工作的其他人分享关注列表。

关注 ABB、Google 和 Siemens 的软件工程职位,并将地点设为瑞士

跟踪申请、面试和录用通知

保存职位,记录申请时间,添加面试轮次和日期,并更新结果。申请跟踪器会在记录进展的同时保留原始职位详情;流程统计数据可帮助你了解求职进展。

申请跟踪器:在职位描述旁显示已保存职位、已申请职位、录用通知和面试控件

使用 Narrowed 找到职位名称背后的工作内容

两个职位可能名称相同,但职责大不相同。用通俗语言描述你看重的内容:

我希望直接与用户合作,并将他们遇到的问题转化为产品改进。不负责管理人员。

Narrowed 会检查你关注列表中的职位描述,并找出符合条件的职位。此功能包含在 Job Seek Pro 中;常规搜索、关注列表、每周电子邮件摘要和申请跟踪仍可免费使用。查看 Pro 详情和当前可用情况。

瑞士机器人领域关注列表中的 Narrowed 结果,显示匹配要求和选出的职位

了解雇主的招聘情况

公司页面汇总了当前职位、发布动态和类似雇主。你可以前往职位来源查看,或利用找到的信息创建下一个关注列表。

Stripe 公司页面,显示招聘动态、公司详情和开放职位

开始求职 →

由瑞士小团队 Colophon Group 打造。提供English、Deutsch、français 和 italiano 版本。


在 AI 工具和代码中使用 Job Seek

托管的 MCP 端点提供用于职位搜索、招聘信息元数据、公司查询、筛选条件发现和预填关注列表链接的工具。它还提供三个写入工具,用于提交错误报告、功能建议和易用性反馈:

https://jseek.co/mcp

该端点使用 Streamable HTTP,无需身份验证。将 URL 添加为自定义 MCP 连接器,或在本地运行已发布的软件包:

npx @jseek/mcp-server

有关特定客户端的设置和工具示例,请参阅 packages/mcp-server/README.md。对于直接 HTTP 集成,公开的 REST 契约见 /openapi.json。


添加公司

带有 company-request 标签的未关闭问题,列出了待添加的公司。生产待办事项由 Hetzner 托管的隔离 Codex 运行器处理;贡献者也可以使用遵循仓库说明的任意功能完备的编码 Agent 来解决问题。

ws 是 Agent 实用工具。 它会呈现工作流、管理隔离状态并执行验证关卡;它并非用于手动配置的交互式向导。

环境需要 git、已通过身份验证的 gh CLI、Python 3.13+ 和 Web 访问权限。安装工作流软件包:

pip install jobseek-crawler-setup

然后将以下任务交给你的编码 Agent:

运行 ws task --issue <NUMBER> 并遵循打印出的说明。

ws 会获取问题、检查是否重复、调查公司及所有相关的招聘页面、引导选择监控器和抓取器、验证提取的数据和品牌素材,并创建拉取请求。已注册的爬虫类型涵盖常见 ATS API、站点地图、结构化数据、渲染页面、PDF 和特定供应商格式。

没有你想添加的公司的相关问题?提交申请。任何人都可以提交。

维护中的工作流参考文档见 docs/01-agent-workflow.md。


架构

公司和董事会 CSV 是配置的唯一可信来源。爬虫在自己的 Postgres 数据库中维护运行状态,使用 Redis 进行调度,将可搜索文档发布到 Typesense,并将完整描述存储在兼容 S3 的对象存储中。Web 应用在独立的 Postgres 边界中管理身份验证、关注列表和申请跟踪数据。

%%{init: {"flowchart": {"rankSpacing": 24}}}%%
flowchart TD
    Requests["Company requests"] --> Agent["Coding-agent PR"]
    Agent --> CSV["companies.csv + boards.csv"]
    CSV --> Runtime["Crawler runtime<br/>sync · Redis · HTTP/browser workers · crawler Postgres"]
    Runtime --> ReadLayer["Published read layer<br/>Typesense · S3-compatible descriptions"]
    ReadLayer --> Web["Next.js<br/>web app · REST API · MCP"]
    Web <--> WebDB["Web Postgres"]

请先阅读维护中的 文档索引,然后阅读系统概览、爬虫架构和 Typesense 参考。

自行运行

Job Seek 可自托管,但当前仓库要求由运营人员管理服务。根目录下的 docker-compose.yml 是用于 Postgres 和 Typesense 的开发脚手架,并非一键式完整生产部署方案。

前置条件
  • Python 3.13+ 和 uv
  • Node.js 22+ 和 pnpm 10
  • 爬虫专用的 Postgres 数据库
  • 单独的 Web 专用 Postgres 数据库;两个数据库可以运行在同一台服务器上
  • Redis
  • Typesense
  • 用于存储职位描述的兼容 S3 的对象存储

重要的环境边界如下:

组件核心设置
爬虫数据库LOCAL_DATABASE_URL
Web 数据库爬虫端读取使用 WEB_DATABASE_URL;Web 应用使用 DATABASE_URL
RedisREDIS_URL
Typesense 写入TYPESENSE_HOST、TYPESENSE_PORT、TYPESENSE_PROTOCOL、TYPESENSE_OPERATIONS_KEY
Typesense Web 访问TYPESENSE_SEARCH_KEY、TYPESENSE_WRITE_KEY,以及可选的 TYPESENSE_BROWSER_PARENT_KEY
描述存储R2_ENDPOINT_URL、R2_ACCESS_KEY_ID、R2_SECRET_ACCESS_KEY、R2_BUCKET、R2_DOMAIN_URL
Web 身份验证BETTER_AUTH_SECRET、BETTER_AUTH_URL;OAuth 和电子邮件提供商为可选项

配置这些服务后,创建 apps/crawler/.env.local(以其中的 .env.example 为起点)和 apps/web/.env.local,然后按以下顺序初始化:

git clone https://github.com/colophon-group/jobseek
cd jobseek
corepack enable
pnpm install

# Web-owned database
cd apps/web
pnpm db:migrate

# Crawler-owned database and derived stores
cd ../crawler
uv sync
uv run playwright install chromium-headless-shell  # required by run-browser
uv run alembic -c src/migrations/alembic.ini upgrade head
uv run crawler setup-typesense
uv run crawler sync

完整的爬虫部署需要保持以下四种进程角色运行:

uv run crawler run          # HTTP workers
uv run crawler run-browser  # Playwright workers
uv run crawler export       # Postgres → Typesense CDC
uv run crawler drain        # descriptions → object storage

在 apps/web 中单独启动前端:

pnpm dev                    # http://localhost:3000

生产环境的运营人员应使用作用域受限的 Typesense 密钥,并阅读 docs/README.md 中链接的部署和恢复操作手册。


仓库内容

apps/crawler/              Python ingestion, normalization, scheduling, and export
  src/core/monitors/       Career-board discovery: ATS APIs, sitemaps, DOM, feeds
  src/core/scrapers/       Posting extraction: JSON-LD, DOM, PDF, vendor formats
  src/workers/             HTTP workers, browser workers, and description drain
  src/exporter.py          CDC from crawler Postgres to Typesense
  src/labeller/            Daily gold-dataset labelling and Hugging Face upload
  src/workspace/           `ws` workflow and Codex company-request runner
  data/companies.csv       Company configuration source of truth
  data/boards.csv          Career boards with monitor + scraper configuration

apps/web/                  Next.js 16, Drizzle, Lingui, and Better Auth
  app/[lang]/              Localized product routes: en / de / fr / it
  app/api/v1/              Public REST API
  app/mcp/                 Hosted Streamable HTTP MCP endpoint
  src/db/schema.ts         Web-owned Postgres schema

packages/mcp-server/       Published `@jseek/mcp-server` package
docs/                     Architecture references, ADRs, routines, and runbooks
scripts/                  Deployment, reconciliation, backup, and maintenance tools

开发

在 apps/crawler 中运行爬虫检查:

uv run pytest tests/
uv run ruff check .
uv run pyright

在 apps/web 中运行 Web 检查:

pnpm test
pnpm lint
pnpm typecheck
pnpm build

整个仓库的贡献者和 Agent 指南位于 AGENTS.md。爬虫专用命令和操作注意事项位于 apps/crawler/AGENTS.md。


许可证

  • 代码 — MIT。可使用、修改和再分发,且不提供任何保证。
  • 职位发布数据 — CC BY-NC 4.0。可免费用于研究和非商业性再利用,但须注明出处。根据严格的《开放知识定义》,它不属于“开放数据”。如需商业许可,请联系 [email protected]。

由 Colophon Group 在瑞士打造。隐私 · 条款 · 欢迎提交 问题和拉取请求。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。