YubHub

io.github.houtini-ai由 GitHub 账号 houtini-ai 发布v2.4.0更新于 Nov 1, 2026

Build job feeds from careers pages; query enriched jobs and hiring stats. Needs a YubHub API key

已验证STDIO仅桌面数据与分析商业与电商

概览

AI 生成的概览

YubHub MCP 服务器让助手从公司招聘页面创建和管理职位订阅源、查看已丰富的职位信息,并查询招聘市场统计数据。

可以做什么
  • 创建、列出、更新和删除基于招聘页面网址的职位订阅源,并触发抓取运行
  • 查看单个订阅源和全部订阅源的仪表板,含统计数据和 XML 订阅链接
  • 查看、启用和停用订阅源的每周自动运行计划
  • 列出并读取某个订阅源中已丰富的职位,并重试抓取或丰富失败的职位
  • 查询市场统计:热门公司、职位类别、职位名称、名称趋势、办公方式、经验层级和招聘最多的城市
适用场景
适合希望让助手搭建并监控公司招聘页面职位订阅源、查看抓取并经 AI 结构化的职位列表,或在不打开浏览器的情况下把招聘市场汇总数据拉进对话的场景。
运行要求
通过 npx 以 stdio 方式在本地运行 npm 包 @houtini/yubhub,需要 Node.js。需要 Pro Publisher 套餐的 YubHub 账户,并设置 YUBHUB_USER_ID 和 YUBHUB_API_KEY 环境变量;可选 YUBHUB_ADMIN_API_URL 覆盖默认 API 地址。需要能访问 YubHub API 的网络。
安装前请注意
API 密钥(YUBHUB_API_KEY)和用户 ID 以环境变量传入,可访问你的 YubHub 账户,请勿放入共享配置。多个工具会修改或删除数据:创建、更新、删除订阅源,清空订阅源下全部职位,以及触发运行。订阅源和职位的删除不可撤销。订阅源数据与职位内容会交由 YubHub 服务器处理,包括 AI 丰富环节。

安装

在 SourceWeft 中

  1. 打开 控制台中的 YubHub,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[YubHub]

YubHub MCP Server

Turn any careers page into a structured job feed. Straight from Claude, Cursor or any MCP client.

[npm version] [MIT License] [MCP Compatible] [npm downloads] [Socket Badge]

[YubHub MCP server]


Quick start

Developer docs for YubHub's API, feeds and this server are at yubhub.co/developers.

You'll need a YubHub account on the Pro Publisher plan first: the server needs an API key. Head to your account page to grab your User ID and API key (required).

Claude Desktop

Open your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this block inside "mcpServers":

json
{  "mcpServers": {    "yubhub": {      "command": "npx",      "args": ["-y", "@houtini/yubhub"],      "env": {        "YUBHUB_USER_ID": "your-user-id",        "YUBHUB_API_KEY": "yh_your_api_key_here"      }    }  }}

Restart Claude Desktop. That's it. Ask Claude to "list my YubHub feeds" and you should see your data come back.

Cursor / VS Code

Same idea. Drop the config into your MCP settings and point it at npx -y @houtini/yubhub with the same env vars.

What it does

YubHub watches careers pages. Point it at a company's jobs URL, and it will discover every open role, scrape the listings, enrich them with AI (title normalisation, category tagging, salary extraction, company research) and publish them as an XML feed.

This MCP server gives you full control over that pipeline from inside your AI assistant. Create feeds, trigger runs, check on jobs, view dashboards, browse market stats. No browser tab required.

The pipeline

Careers page URL  → Discovery (ATS API / sitemap / crawl)    → Scraping (page content extraction)      → Enrichment (AI structuring + company research)        → XML feed (ready for job boards, aggregators, your own site)

Supported ATS platforms include Greenhouse, Lever, Workable, Workday, Oracle HCM, SmartRecruiters, Ashby, Pinpoint, Phenom and more. For platforms with public APIs (Greenhouse, Lever, Workable, Pinpoint), discovery skips scraping entirely and goes straight to enrichment.

Tools

23 tools across four areas.

Feed management

ToolWhat it does
list_feedsGet all your job feeds
create_feedCreate a feed from a careers page URL
get_feedFeed details including run history and job counts
show_feed_dashboardInteractive visual dashboard for a single feed
show_all_feeds_dashboardOverview dashboard with all feeds, stats and XML links
trigger_feed_runStart job discovery now
update_feedChange feed name, tag or source URLs
delete_feedRemove a feed and all its jobs
delete_jobsClear all jobs for a feed (keeps the feed)

Scheduling

ToolWhat it does
get_feed_scheduleCheck auto-run schedule and next run time
enable_feed_auto_runTurn on automatic runs (default: weekly)
disable_feed_auto_runTurn off automatic runs

Jobs

ToolWhat it does
list_jobsList jobs for a feed, optionally filtered by status
get_jobFull job details: title, company, location, salary, skills, description
retry_failed_jobsRe-queue failed jobs for another attempt

Market statistics

These read the live market numbers behind yubhub.co straight into your chat. No feed and no account needed - the stats endpoints are open, so you can ask what the market's doing before you've built a thing. Ask in plain language ("which cities are hiring most?", "what's the remote-versus-onsite split?", "which titles are gaining demand?") and the server pulls the current aggregate and hands it back as a table. The same numbers power the public stats pages on the site, so what you see here is what a jobseeker sees there.

ToolWhat it does
get_stats_overviewHigh-level numbers: total jobs, companies, active feeds
get_top_companiesCompanies ranked by job count with recent activity
get_categoriesJob counts by sector with experience level breakdown
get_top_titlesMost common job titles by volume
get_title_trendsTitles gaining or losing demand (2-week comparison)
get_work_arrangementsRemote vs hybrid vs onsite distribution
get_experience_levelsEntry, mid, senior level distribution
get_top_citiesCities hiring most, ranked by live job count

Environment variables

VariableRequiredDescription
YUBHUB_USER_IDYesYour YubHub user ID
YUBHUB_API_KEYYesAPI key from your account page
YUBHUB_ADMIN_API_URLNoAPI endpoint (defaults to https://api.yubhub.co)

Example conversation

You: Create a feed for Mercedes F1 careers at https://www.mercedesamgf1.com/careers

Claude: Done. Feed created with ID feed_abc123. Want me to trigger a run?

You: Yes please.

Claude: Discovery started. I'll check back in a couple of minutes.

You: How did it go?

Claude: Found 47 jobs. 42 enriched successfully, 5 still processing. Here's a breakdown by category...

Tip: For best results, provide an example job URL when creating a feed. This helps YubHub identify the URL pattern for job listings on that site, significantly improving discovery accuracy. You can pass it as the optional exampleJobUrl parameter in create_feed.

Development

bash
git clone https://github.com/houtini-ai/yubhub.gitcd yubhubnpm installnpm run build

The server compiles TypeScript to dist/ and runs as a stdio MCP server. Source lives in src/:

src/├── index.ts                # MCP server, tool definitions and handlers├── api-client.ts           # REST client for the YubHub API├── dashboard-generator.ts  # React-based interactive dashboard builder└── types.ts                # TypeScript interfaces

Running locally

bash
YUBHUB_USER_ID=your-id YUBHUB_API_KEY=yh_your_key node dist/index.js

Or point your MCP client at the built output instead of using npx.

Contributing

Issues and pull requests welcome. If you're adding a tool or changing behaviour, please test against a real YubHub account.

Links

License

MIT - see LICENSE for details.

来源:README.md,提交 d0db533

工具

23

list_feeds

Get all your job feeds

无需输入参数。

create_feed

Create a new job feed for monitoring career pages

输入参数name必填careersUrl必填exampleJobUrl

get_feed

Get detailed information about a specific feed including statistics

输入参数feedId必填

show_feed_dashboard

Display an interactive dashboard for monitoring a job feed

输入参数feedId必填

show_all_feeds_dashboard

Display a comprehensive dashboard showing all feeds with stats, sortable columns, and XML feed links. Modern React UI with dark theme.

无需输入参数。

trigger_feed_run

Start job discovery for a specific feed

输入参数feedId必填

update_feed

Update a feed's name, tag, or source URLs. Use tag to group feeds by site for filtering on the dashboard.

输入参数tagnamefeedId必填careersUrlexampleJobUrl

delete_feed

Delete a feed and all associated jobs. This action cannot be undone.

输入参数feedId必填

delete_jobs

Delete all jobs for a specific feed. This action cannot be undone.

输入参数feedId必填

get_feed_schedule

Get the automatic run schedule configuration for a feed. Shows if auto-run is enabled, the run interval, and when the next automatic run is scheduled.

输入参数feedId必填

enable_feed_auto_run

Enable automatic weekly runs for a feed. The scheduler worker runs hourly and will automatically trigger this feed at the configured interval (default: 7 days for weekly runs). Great for keeping job feeds updated without manual intervention.

输入参数feedId必填intervalDays

disable_feed_auto_run

Disable automatic runs for a feed. The feed will require manual triggering after this. Use this when you want full control over when a feed runs.

输入参数feedId必填

list_jobs

Get all jobs for a specific feed, optionally filtered by status

输入参数feedId必填status

get_job

Get detailed information about a specific job

输入参数jobId必填

retry_failed_jobs

Retry failed jobs for a feed. Jobs that failed during scraping (no content) are re-queued for scraping. Jobs that failed during enrichment (have content) are re-queued for enrichment.

输入参数feedId必填

get_stats_overview

Get high-level statistics: total enriched jobs, companies, and active feeds.

无需输入参数。

get_top_companies

Get top companies by enriched job count, with recent activity (last 7d and 30d).

无需输入参数。

get_categories

Get job counts by category/sector with experience level breakdown (entry, mid, senior).

无需输入参数。

get_top_titles

Get the most common job titles by volume (top 30).

无需输入参数。

get_work_arrangements

Get work arrangement distribution (remote, hybrid, onsite, etc.).

无需输入参数。

get_experience_levels

Get experience level distribution (entry, mid, senior, etc.).

无需输入参数。

get_top_cities

Get the cities hiring most, ranked by live job count. Each links to /jobs/city/<slug> on yubhub.co.

输入参数min

版本历史

2
  1. v2.4.0最新Oct 25, 2026
  2. v2.3.5Oct 22, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分