oriole
Oriole · 黄雀 Job Engine
中文说明 · Architecture · Sources · Verification
オープンウェブを、追跡可能でレビューゲート付きの求人ソースの地図に変える——不透明なスクレイピング結果の山ではない。
Oriole は、オープンな中国全国規模の求人ソースインテリジェンスエージェントです。公開されている採用情報の発信元を発見し、そのエンドポイントを検証し、収集前に人間の承認を要求し、実際の勤務地に基づいて求人を正規化し、その結果を16のMCPツールを通じて任意のLLMに公開します。
これは意図的に、単一のウェブサイトではなくエンジンとして構築されています。CLIから実行したり、深夜にスケジュールしたり、決定的なコアを別のNode.jsサービスに埋め込んだり、MCP対応モデルに資格情報を渡さずに接続したりできます。
実装されている機能
機能 | 実装 |
全国地理 | 決定的な2レベル中国分類:34の省級地域と365の地級市/省直轄エントリ |
勤務地分類 | 求人の記載勤務地を使用し、複数勤務地の求人を保持し、省/市フィルタをサポートし、外国のみの行を拒否 |
ソース発見 | 9つの監査済みシード、制限付き19雇用主ウォッチリスト、公式ディレクトリ、Baidu Search API、Common Crawl URL Index、全365の第2レベル地域タスク、および提出されたURL |
安定した収集 | Lever、Greenhouse、Ashby、制限付きByteDance/Feishu採用公開検索アダプタ(永続的なオフセットローテーション付き)、柔軟な公開JSON、JSON-LD、RSS/Atom、Sitemap XML、およびガード付きHTML |
ソースグラフ | 発行者、ソース、地域、エントリポイント、エンドポイント、発見チャネル、求人の間の証拠を持つ関係 |
信頼ワークフロー |
|
証拠 | 実行記録、HTTPサマリー、コンテンツハッシュ、圧縮された生レスポンスアーティファクト、ソース/求人トレーサビリティ、機械可読監査 |
エージェントインターフェース | 16のバイリンガルMCPツール(JSON-RPC 2.0 NDJSON stdio上);最新の |
日次運用 | 冪等な北京日付ランナーとGitHub Actionsスケジュール( |
安全性 | HTTPSのみの外部アクセス、公開アドレスDNSピニング、SSRF防御、リダイレクトとrobotsガード、時間/サイズ/行数制限、レート制限、シークレットホストピニング |
Related MCP server: OpenAI-Compatible MCP Gateway
ソースモデル
発見チャネルと求人ソースには異なる役割があります:
Baidu は発見レーダーです。設定されている場合、Oriole はBaiduの公式Qianfanエンドポイントを呼び出し、リクエストレベルの証拠を保存します。Baiduの結果ページをスクレイピングすることはありません。
Common Crawl は、制御された
site:パターンに対するキーレスなアーカイブ/インデックスフォールバックです。公開URLが存在したことを検証しますが、全文検索エンジンや最終的な求人ソースとしては扱われません。公開ディレクトリ は、権威ある国家および地方の発行者をシードします。国家公共雇用、大学雇用、公共機関、中央国有企業、政府部門ディレクトリを含みます。
雇用主サイト、公式ATSボード、政府雇用ページ は、長期的な収集ターゲットです。ソースは、その求人がレジストリに入る前に、安全性プロービングと人間のレビューを通過する必要があります。
ユーザー提出 により、別のエージェントやオペレーターが公開URLを提案できますが、同じプローブとレビューのゲートを維持します。
9つの事前承認済みソースシードを収集したり、バンドルされた公式カタログから候補を発見したりするために、Baiduキーは必要ありません。プロバイダーの能力はクエリタスクごとに明示されます:通常のキーワード発見はBaiduのみであり、Baiduが利用できない場合、それらのタスクはstatus.discoveryBacklogおよび発見実行統計で明示的にblockedのままになります。Common Crawl は制御されたsite:タスクにのみ適格であり、ブロックされた作業が完了としてカウントされることはありません。
公開リポジトリにはゼロの求人レコードが含まれています。npm run init は、9つの明示的に監査された公開ソースシード(ByteDanceを含む8つの雇用主管理ボードと1つの政府雇用ソース)をインポートするため、クリーンなクローンには、古いまたは非公開の求人スナップショットを公開することなく、機能的な収集ターゲットがあります。これは検索結果の自動承認ではありません:シードマニフェスト自体がレビュー済みの信頼決定であり、新しく発見されたすべてのソースは依然としてプローブと承認を必要とします。
カバレッジは測定可能なギャップレポートであり、全国の求人捕捉の完全な主張ではありません。19雇用主ウォッチリストでは、ByteDance が唯一のレビュー済みブートストラップターゲットです。他の18の雇用主ルートは未承認の候補として始まり、プローブ、検証、承認されるまで求人を生成できません。
ByteDance/Feishu の収集は、ソース呼び出しごとに50ページ、5,000上流行、24 MBに制限されています。1回の呼び出しで末尾に到達できない場合、コミットされた実行はsource.collection.resumeの下にフィンガープリントされ、世代チェックされたカーソルを保存します。次のセグメントは1つのヘッドページを更新し、その後、意図的な1ページのオーバーラップで末尾を続行します。求人書き込みとカーソル進行は、1つのアトミックなレジストリトランザクションを共有します。いずれかの変更の前に、レジストリはコレクターが読み取ったソースリビジョンと保存されたカーソル世代の両方を比較交換します。どちらかの競合は、求人もカーソルも書き込みません。プレビュー、失敗、または競合は保存された位置を進行させません。再開された末尾セグメントは、ローテーションサイクルを閉じる場合でもpagination.complete: falseのままです。なぜなら、変化するオフセットフィードは実行間スナップショットではなく、欠落求人のクロージャを正当化できないからです。収集実行とレジストリの証拠を別々に検査してください:npm run coverage はソース/チャネル/地域の状態を測定し、ページネーションや再開の進行状況を読み取りません。
正確なプロバイダー境界とシードカタログについては、docs/SOURCES.md を参照してください。
クイックスタート
要件:Node.js 22.13+。Oriole にはランタイム依存関係がなく、事前承認済みソースの初期化や収集、公式カタログからの発見、制御されたCommon Crawl site:タスクの実行にシークレットは必要ありません。
git clone https://github.com/gaofeibilly-maker/oriole-job-engine.git
cd oriole-job-engine
npm test
npm run init
npm run status
npm run coverage
npm run regions -- --province-code 420000init の後、status は9つの承認済みソースと0のバンドル求人を示すはずです。求人は実際のコミットされた収集後にのみ表示されます。
ByteDance の現在の公開求人のプレビューのみで証拠を生成するチェック(Baiduキー不要)には、npm run live-source-check を実行してください。これは公式の応募URLを検証し、生のレスポンスや求人説明ではなく、コンパクトなサマリーを出力します。プレビューは該当するウィンドウを読み取りますが、求人をコミットしたり、保存された再開カーソルを進行させたりしません。対応するGitHubワークフローは手動で実行するか、プルリクエストにlive-source-auditラベルを付けることで実行できます。
資格情報なしでバンドルされた公式カタログを発見:
node scripts/huangque/cli.mjs discover \
--providers official_catalog \
--force
node scripts/huangque/cli.mjs sources
node scripts/huangque/cli.mjs graph発見は候補を作成しますが、サイレントに収集ターゲットに変えることはありません。候補をプローブし、その証拠と現在のレジストリリビジョンを検査し、明示的に承認します:
node scripts/huangque/cli.mjs probe --source <source-id>
node scripts/huangque/cli.mjs review \
--source <source-id> \
--decision approve \
--reviewer <operator-name> \
--reason "Official public recruitment source verified" \
--revision <current-revision> \
--confirm
node scripts/huangque/cli.mjs collect --source <source-id> --commit
node scripts/huangque/cli.mjs jobs --province-code 420000 --city-code 420100すべての状態はデフォルトでローカルです:
.huangque/state.json— アトミックなポータブルレジストリ;.huangque/artifacts/— コンテンツアドレス指定された圧縮証拠;.huangque/latest-audit.json— 最新の機械可読自己監査。
これらのパスはGitによって無視され、環境変数で再配置できます。
任意のLLMをMCPで接続
stdioサーバーを起動:
npm run mcpMCPクライアント設定の例:
{
"mcpServers": {
"oriole": {
"command": "node",
"args": ["/absolute/path/oriole-job-engine/scripts/huangque/mcp-server.mjs"],
"env": {
"HUANGQUE_REGISTRY_PATH": "/absolute/path/oriole-data/state.json",
"HUANGQUE_ARTIFACT_ROOT": "/absolute/path/oriole-data/artifacts"
}
}
}
}サーバーは、パイプライン実行、実行ルックアップ、ステータス、測定可能なソースカバレッジギャップ、発見、公開ソース提出、プロービング、ソース一覧、求人一覧、地域一覧、グラフ読み取り、人間レビュー、収集、期限付き作業、監査、ポータブルプロジェクションエクスポートのためのツールを公開します。
huangque.list_regions は、省レベル、省のみレベル、および各第2レベル都市で一意の求人集計を報告します。1つの省の2つの都市で明示的に提供される求人は、省合計で1回、該当する各都市で1回カウントされます。
MCPによるソース承認はデフォルトで無効です。オペレーターは意図的にHUANGQUE_ALLOW_MCP_REVIEW=1を設定する必要があります。CLI承認は、そのサーバー側の境界を弱めることなく利用可能です。
オプションのBaidu発見
サンプル設定をコピーし、キーをローカルまたはGitHub Actionsシークレットとして設定してください。決してコミットしないでください。
cp .env.example .env
export HUANGQUE_BAIDU_API_KEY="<your-key>"
node scripts/huangque/cli.mjs discover --providers baidu --max-queries 5キーはqianfan.baidubce.comにのみ送信されます。他のホスト上のカスタムエンドポイントは拒否されます。デフォルトの日次予算は40リクエストで、HUANGQUE_BAIDU_DAILY_BUDGETで下げることができます。
Baiduを未設定のままにしても、承認済みソースの収集は停止しません。通常のキーワードベースのアクティブ発見タスクが明示的にブロックされるだけです。キーレスなCommon Crawl は、クエリプランの制御されたsite:タスクを引き続き処理します。
公式リファレンス:Baidu Qianfan AI Search API。
毎日深夜の全国更新
バンドルされたワークフローは16:00 UTC(次の現地暦日の00:00 Asia/Shanghai)に実行されます:
npm run dailyランナーは北京日付の完了マーカーを書き込むため、--forceが指定されない限り、再試行は同じ日の実行を複製しません。GitHubスケジュールは数分遅れることがあります。ローカルマーカーがビジネス日付を制御し、キュー時間ではありません。docs/SCHEDULING.md を参照してください。
ソースグラフ、単なるリストではない
各グラフエッジは証拠と観測タイムスタンプを持ちます。コア関係は:
publisher ← published_by — source — covers_region → region
│
├─ has_entry_point → public page
├─ has_endpoint → collection endpoint
├─ discovered_via → provider/query/run evidence
└─ lists_job → normalized job発行者と地域のエッジは、最新の権威ある承認済みソース証拠に従います:監査済みソースのアイデンティティが変更されると、時代遅れのpublished_byおよびcovers_region関係は、誤解を招く歴史的事実として残るのではなく、剪定されます。
ここでの「完全なグラフ」とは、登録されたすべてのソースがその証拠によってサポートされる関係で表現され、すべての関係が監査可能であることを意味します。有限のカタログがすでに中国のすべての雇用主やすべての公開求人を含むことを意味するわけではありません。Oriole はそのグラフを継続的に拡張し再検証するように設計されています。
信頼する前に検証
npm run verify
npm run auditテストスイートは、正規化、全国地域、複数勤務地の処理、プロバイダー、制限付き大規模フィードローテーション、カーソルの原子性/並行性、グラフ証拠、レジストリ保持、MCPライフサイクル、SSRF制御、robots処理、ソース所有権、求人アイデンティティをテストします。ランタイム監査は、外部プロバイダーと公開されたGitHubスケジュールが現在のレジストリに実際の成功した実行証拠を持っているかどうかを別途報告します。フィクスチャと手動の日次実行は、ライブプロバイダーまたはGitHub Actionsの成功としてカウントされません。
docs/VERIFY.md の再現可能なチェックリストに従ってください。
境界
Oriole は公開された非ログインのウェブソースを処理します。プライベートなWeChatグループ、画像OCR、メール受信トレイ、CAPTCHA/ログインのみのページ、その他のプライベートチャネルを意図的に除外します。求人に応募したり、雇用決定を行ったりしません。公開ウェブアクセスは、サイトの利用規約、robotsポリシー、データベース権利、プライバシー義務、または適用される法律を放棄するものではありません。デプロイヤーはソース固有のコンプライアンスに責任があります。
プロジェクトレイアウト
data/huangque/ verified public seeds, national query plan, and public catalog
scripts/huangque/ CLI, daily runner, MCP server, deterministic core
tests/ Node test suite
docs/ architecture, sources, schedule, verification
.github/workflows/ CI and Beijing-midnight daily updateApache-2.0 に基づく貢献を歓迎します。CONTRIBUTING.md をお読みいただき、セキュリティの問題は SECURITY.md から報告してください。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceLocal MCP server for BOSS Zhipin workflows. Exposes 49 tools for job search, welfare filtering, recruiter messaging, pipeline tracking, and resume optimization for AI agents.1,565MIT
- FlicenseNot gradedqualityDmaintenanceLocal MCP server that exposes fixed tools for GPT, Claude, and Gemini while routing to any OpenAI-compatible chat completions backend with independent configuration per target.1
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes 108+ omega-cli OSINT tools for reconnaissance, web analysis, threat intelligence, and reporting, enabling AI assistants to perform comprehensive open-source intelligence tasks.MIT
- FlicenseNot gradedqualityCmaintenanceA custom MCP server with 6 utility tools (file search, file reading, math calculation, JSON formatting, time query, system info) that demonstrates MCP protocol workflow and integrates with LangChain agents.
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gaofeibilly-maker/oriole-job-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server