mcpField
B
Blind

Blind

ローカル
github.com/dheerajjhaビジネス・マーケティング12 日前に更新

Blind について

Blind は、求職者や報酬調査を行う人向けの MCP サーバーです。職位別の求人給与レンジを集約し、企業や市場間で比較できます。Blind の投稿を調べる機能も任意で備えますが、現在はサイト側が自動アクセスを遮断しています。

主な機能

  1. 01職位別の給与レンジ集計
  2. 02企業間の同等職種を比較
  3. 03推定レベル付き求人の一覧
  4. 04市場・通貨別の給与比較
  5. 05Blind 投稿の任意検索

活用シーン

  1. 01給与非公開求人の水準推定
  2. 02市場ごとの同職種給与比較
  3. 03複数企業の同等レベルの比較
  4. 04Blind で企業の投稿を確認

MCP 対応

給与レンジ、市場相場、求人を調べるツールを MCP クライアントに提供します。Blind 投稿のツールは既定で無効で、現在はサイトが自動リクエストを遮断しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dheerajjha-blind": {
"command": "uvx",
"args": [
"blind-mcp"
]
}
}
}
起動コマンドuvx blind-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiblind-mcp0.2.0

ツール

8

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
companystringはい

詳細

payband-mcp

tests good first issues python license

その職種の実際の給与を確認できます。雇用主が給与を公開していない市場も対象です。

0.5.0 で名称を blind-mcp から変更しました。Blind ツールも引き続き利用できます(以下を参照)。ただし、このツールの役割は公開された給与レンジを読み取ることなので、それが伝わる名称にしました。古い GitHub URL はリダイレクトされ、古い PyPI パッケージはこちらを参照します。BLIND_MCP_* 環境変数も引き続き使用できますが、PAYBAND_* の使用を推奨します。

コロラド州、カリフォルニア州、ニューヨーク州、ワシントン州、イリノイ州では、対象となる求人情報に給与レンジを記載することが義務付けられています。インド、シンガポール、EU の大半では義務付けられていません。そのため、同じ職位でも、同じ企業が同じ週にデンバーでは給与レンジを掲載し、ベンガルールでは掲載しないことがあります。

給与レンジは存在しています。ただし、別の求人情報に記載されているだけです。

pay_bands(company="Databricks", role="forward deployed")

  101 matching openings · band width ratio x1.37 · 33 publish no range

  LEVEL            TYPICAL BAND        BANDS  POSTS  PRECISION
  mid              152,900–210,155         2      3  tight
  senior           182,000–250,208         1     58  tight
  lead             178,800–245,850         1      1  tight
  manager          211,800–291,300         4      5  tight
  senior_manager   232,900–320,200         1      1  tight

  steps: mid→senior +19.1% · lead→manager +18.5% · manager→sr_mgr +9.9%
  silent: Remote-India, Seoul, London, Berlin, Amsterdam

職位ごとに分けて表示します。職位をまたいだ単一のレンジでは、誰にも提示されない数値になってしまいます。分割しない場合、その職種は 140,400–320,200 と表示され、5種類の異なる仕事を含む2.3倍の幅になります。

typical は最頻値の給与レンジです。証拠の確かさを正直に示すのは distinct_bands と postings の比較です。同じ給与レンジを共有する求人情報が58件あっても、58回掲載された1つのデータポイントにすぎません。precision は、給与レンジが実際にどれだけ絞り込まれているかを示します。Databricks は職位ごとの狭い給与レンジを掲載し、Figma は全職位を含む単一の2.5倍の給与レンジを掲載しています。どちらも実際の掲載内容です。

同じ雇用主、同じ職種、同じ時点での比較です。給与を公開していない場合の推定値を得るには、どの給与調査よりも優れた基準となり、呼び出しは1回で済みます。

雇用主が求人を掲載するすべての市場で、同じ仕事を比較

ある国の透明性法の対象となる雇用主は、同じ職種を複数の国で募集していることがよくあります。これは、実施できる中で最も条件を統制した比較に近いものです。同じ企業、同じ職種、同じ週で比較できます。

pay_bands(company="Anthropic", role="software engineer")

  MARKET   PUBLISHED BAND            POSTS   ≈ IN USD              vs US
  USD      405,000–485,000              78   —                     —
  GBP      325,000–390,000              10   438,206–525,847       1.08x
  EUR      235,000–295,000               2   271,165–340,399       0.69x

  fx: ECB daily reference rates, 2026-09-15

公開された金額は常にそのまま保持し、換算額を日付付きで併記します。換算しなければ、比較は誤解を招きます。GitLab のポーランドの給与レンジは米国の 139,200–235,200 に対して 272,000–408,000 と表示され、ポーランドのほうが高給に見えますが、実際には 0.48x です。

公開求人ボードの API(Greenhouse、Ashby、Lever、SmartRecruiters、Workday)に加え、独自のエンドポイントを運用する少数の雇用主の API を読み取ります。仕様が公開され、機械からの利用を想定しており、安定しています。スクレイピングは行いません。

ツール

給与
ツール機能
pay_bands(company, role, board=, max_lookups=)職位ごとの公開給与レンジに加え、その職種が掲載されているすべての通貨の換算額を表示
market_rate(role, companies, level=)複数の雇用主で同じ職位レベルを比較し、中央値の順に並べて表示
job_openings(company, role=, with_pay_only=)推定職位レベルを含む、元の求人情報を表示
企業文化 — デフォルトでは登録されません
ツール説明
find(company, keyword, limit=, page=)キーワードで企業の Blind の投稿を検索します
research(company, question, max_posts=)トピックを選び、質問に照らしてスレッドを順位付けし、全文を返します
company_topics / company_posts / read_post一覧と個別のスレッド

この5つは、リクエストがない限り無効になっています(PAYBAND_ENABLE_BLIND=1)。 ツールの一覧は、モデルが行動を決める前に読み込む情報の一部です。現状ではコンテキストのコストを増やし、行き詰まりを招くだけの項目が5つあるためです。 コードとテストには手を加えていないので、このフラグを有効にすればすぐに再び使えるようになります。

⚠️ Blind は2026年9月ごろから、すべての自動リクエストに403を返すようになりました。 これはサイト全体のボット保護であり、このプロジェクトへのブロックではありません。curl と空の User-Agent も拒否され、ブラウザーの User-Agent だけが通ります。 robots.txt では引き続き /company/ が許可されていますが、WAF は許可していません。

回避のためにブラウザーを偽装することはしません。これはアクセス制御の回避にあたり、先方の次の対策で真っ先に封じられる方法だからです。現在、Blind ツールは空の結果を返して「議論が見つからなかった」と誤解されるのではなく、説明を添えて BlindBlocked を発生させます。

給与ツールには影響ありません。#12 をご覧ください。

カバレッジ

推定ではなく、実測値です。

企業掲載先公開中の求人給与レンジの公開あり
企業掲載先公開中の求人給与レンジの公開あり
------------
DatabricksGreenhouse880471 (54%)
AnthropicGreenhouse595525 (88%)
RampAshby148141 (95%)
MonzoGreenhouse6655 (83%)
NotionAshby12783 (65%)
FigmaGreenhouse156101 (65%)
GitLabGreenhouse22494 (42%)
StripeGreenhouse64822 (3%)
FreshworksSmartRecruiters139必要に応じて取得
NVIDIAWorkday1,693必要に応じて取得
Cisco · Adobe · Salesforce · HPE · eBayWorkday—必要に応じて取得
Atlassianセルフホスト287122 (43%)

SmartRecruiters と Workday で給与レンジが必要に応じて取得となっているのは、一覧ではなく各求人票の中にレンジが掲載されているためです。まず求人タイトルで絞り込み、該当する求人だけを取得するため、NVIDIA について質問した場合のリクエスト数は1,693件ではなく約40件です。この上限は max_lookups で設定でき、上限を超えた分は not_checked_count として報告されます。雇用主が何も公開していないと報告されることはありません。

Workday のテナントは robots.txt を読み取り、Sitemap の行で指定されている公開求人サイトを特定します。テナント名が企業名と異なる場合は、求人情報ページの URL を貼り付けるか、board="workday:<tenant>/<site>" を渡してください。

SmartRecruiters の企業 ID は careers.smartrecruiters.com/<company-id> から取得でき、企業名からも推定されます。企業名と異なる場合は、board="smartrecruiters:<company-id>" を渡してください。

Atlassian はセルフホストしており、独自のエンドポイントに名前を指定してアクセスします。米国の求人では3つの地域区分(Zone A/B/C)が公開されており、まとめずに別々のレンジとして報告されます。3区分を合わせた幅は1.6倍に及び、誰かの実際の提示額ではありません。

対象外: Google、Meta、Amazon、Apple、およびインドに本社を置く企業の大半です。Amazon と Netflix は調査しましたが、給与情報を含まないクリーンな JSON を返します。給与レンジはレンダリング済み HTML にしかありません。Apple は401を返します。BoardNotFound は単に失敗するのではなく、その原因を説明します。

企業がこれらの掲載先に存在していても、推測できないトークンの下にある場合は、求人情報ページの URL からトークンを確認し、直接渡してください。

pay_bands("Some Rebranded Co", "engineer", board="greenhouse:theirslug")

インドのセルフホスト企業については、#13 で引き続き対応しています。

インストール

uv sync

Claude Code に登録します:

uv tool install --editable .          # puts `payband-mcp` on PATH
claude mcp add --scope user payband -- payband-mcp

または、claude_desktop_config.json で設定します:

{
  "mcpServers": {
    "payband": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/payband-mcp", "payband-mcp"]
    }
  }
}

ログインする必要はありますか?

いいえ。むしろ、ログインしないほうがよいでしょう。 これは推測ではなく、実測に基づいています。

  • 投稿本文、コメントスレッド全体、Blind の AI によるコメント要約、企業一覧、トピックページ、口コミ、給与ページは、すべて匿名でアクセス制限なしに HTTP 200 を返します。
  • 自動化によって認証済みセッションを操作すると、約 6 回のページ移動後に Blind の異常検知が作動し、Automatic Logout — we noticed a login from a new device or location (code 2009) と表示されて /session-out にリダイレクトされました。

したがって、Cookie を使っても読み取りアクセスは増えず、セッションの安定性が損なわれます。Cookie で利用できるようになるのは、対象企業の認証済み従業員に限定された社内チャンネルだけです。

それでも使用する場合は、BLIND_COOKIE にセッション Cookie ヘッダーを設定してください(ログイン済みブラウザーで DevTools を使い、リクエストからコピーします)。ログインフローはありません。サーバーは指定した Cookie を再送するだけで、起動時に一度読み込み、各リクエストに付加します。デフォルトでは無効になっており、Blind が Cookie を無効にすると、ログアウト後の HTML を黙って返すのではなく、クライアントは直ちにエラーを発生させます。

Cookie 自体がディスクに書き込まれることはありません。ただし、Cookie を使って取得したレスポンスは別の auth/ ディレクトリにキャッシュされるため、認証済みと匿名の結果が互いに返されることはありません。Cookie をコミットしないでください。

適切な利用

Blind の robots.txt はすべてのユーザーエージェントに対して /search/ を許可していないため、このサーバーには検索ツールがなく、そのパスへのアクセスを拒否します。また、次の対策も行っています。

  • 正直な User-Agent を送信します(ブラウザーになりすます必要はありません。Blind はそれでも HTTP 200 を返します)。
  • すべてのレスポンスをディスクに 6 時間キャッシュするため、同じ質問を繰り返してもリクエストは発生しません。
  • リクエストの間隔を約 1.5 秒空けます。
  • まず robots.txt を取得し、読み取れない場合は処理を中止します。

PAYBAND_CACHE_DIR、PAYBAND_CACHE_TTL、PAYBAND_MIN_INTERVAL、PAYBAND_USER_AGENT で設定します。

求人サイトにも同じ配慮をしています。SmartRecruiters と Workday では、範囲を読み取るために求人ごとに 1 回のリクエストが必要です。そのため、4 つのワーカーで共有するロックのもとでリクエストの間隔を 250 ミリ秒空けています。ワーカーは求人サイトの応答待ちの間に並行して処理しますが、こちらから送るリクエスト頻度が上がることはありません。また、質問ごとの検索回数にも上限を設けています。Workday のサイト検出では robots.txt を読み取り、公開情報として何が許可されているかをその記載に従って判断します。Disallow で禁止されたパスを求人サイトとして扱うこともありません。ECB は営業日に 1 回だけ為替レートを公表するため、為替レートは 1 日間キャッシュします。

Blind の利用規約では、自動アクセスが制限されています。このツールは個人的な調査のために、公開ページを人間と同程度のペースで読み取ります。大量のクロールは利用規約上の問題になるだけでなく、匿名性が Blind の価値の根幹にあることを考えると、プライバシー上の問題にもなります。投稿と勤務先・ニックネームを紐付けたデータセットを作成しないでください。

出力の読み方

出力で見落としやすい点は次の 4 つです。

  • distinct_bands と postings — 同じ範囲を 58 件の求人が共有している場合、これは 1 つのデータポイントを 58 回掲載しているということです。
  • precision — wide は、雇用主が複数の職位レベルにまたがる 1 つの範囲を公開していることを意味するため、ほとんど絞り込みにはなりません。
  • not_checked_count — 範囲を確認していない求人の数です。雇用主が実際に給与範囲を空欄にしている求人とは区別してあります。max_lookups を増やしてください。
  • on_target_earnings_excluded — 営業職では、基本給にコミッションを加えた OTE が掲載されることがよくあります。これらは別途報告し、基本給の範囲に含めて平均を計算することはありません。

換算した数値は、日付が明記された為替レートに基づく推定値であり、生活費も税金も調整されていません。事実として扱うべきなのは、その通貨で公開された数値です。換算値は比較が不適切なものにならないよう、参考として示しています。

Blind は匿名で、情報も検証されていません。コメント投稿者の勤務先(各コメントの company)を基準に情報の重み付けをし、声の大きい一人の意見を 1 つのデータポイントとして扱ってください。テストでは、Roku India の RTO に関する回答が、互いに独立した 2 人のコメント投稿者に加え、無関係な Glassdoor の口コミによっても裏付けられました。こうした場合に初めて、情報を信頼する価値があります。

貢献

小規模なプロジェクトなので、簡単に貢献できます。最も役立つ変更は、まだ対応できていない求人掲示板の追加です。アダプターを1つ追加するだけで、このツールが新たに回答できる雇用主のカテゴリが増えます。直近3回のリリースのうち2回は、まさにこの作業に取り組んだ外部コントリビューターによるものです。特に米国以外の雇用主が歓迎されます。情報を公開していない市場こそ、このプロジェクトの目的だからです。

次に役立つのは、誤った給与帯の修正です。確かな情報に見えて実際には誤っている数値は、このプロジェクトにおける最悪の不具合であり、これまでに発生した深刻なバグはすべてこれに該当します。こうした修正は、新たな対応範囲の拡大より優先されます。

メンテナーの方は、MAINTAINING.md をご覧ください。

まずは初めての方に適した課題を確認し、次にCONTRIBUTING.mdをお読みください。課題には規模のラベルが付いています(size: XS は30分未満です)。mentored は、スレッドで質問すれば作業の進め方を案内してもらえるという意味です。ほかの人が着手しないよう、コメントで担当を宣言してください。最初のレビューは48時間以内に行います。レビューではコードを実行して確認し、読むだけでは済ませません。

CONTRIBUTING で説明している重要なルールが2つあります。取得したBlindのページをコミットしないこと(フィクスチャは生成されます)、そして速度向上のためにrobots/cache/throttleを緩和しないことです。

公開

mcp-name: io.github.dheerajjha/payband-mcp

RELEASING.mdをご覧ください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。