Skip to main content
Glama
zvieli
by zvieli

ユニバーサル・マルチソース求人検索 FastMCP Server (job-mcp)

Python 3.12+ FastMCP 2.0+ Tests Passing License: MIT

エンタープライズ向け、プライバシー最優先の FastMCP サーバーです。HireMeTechComeet ATSAllJobs Israel を横断して、インテリジェントなマルチソース技術求人集約、スマートな重複排除、動的なCVスキル抽出、要件カバレッジスコアリング、自律的な求人応募ワークフローを提供します。


アーキテクチャ概要

graph TD
    Client([MCP Client: Claude / Cursor / Gemini Spark / Antigravity]) --> Tools[FastMCP Server Layer]
    Tools --> Aggregator[JobAggregator]
    Aggregator --> Registry[SourceRegistry]

    subgraph Parallel Pluggable Sources Layer
        Registry --> S1[HireMeTechSource<br/>Direct REST API + Session Fallback]
        Registry --> S2[ComeetSource<br/>Direct ATS API + Concurrency Semaphore]
        Registry --> S3[AllJobsSource<br/>Category Feeds + Anti-Blocking Headers]
    end

    subgraph Processing & Normalization Engine
        S1 --> Dedup[Deduplication & Entity Merger]
        S2 --> Dedup
        S3 --> Dedup
        
        Dedup --> NormKey["Key = slug(title) + '@' + slug(company)"]
        NormKey --> Merge[Metadata & Links Merger]
        Merge --> Scorer[Unified CV / Skill Matcher]
    end

    subgraph Dynamic Candidate Engine
        CV["Candidate CV (.pdf / .docx / .txt)"] --> Extractor[Dynamic CV & Profile Extractor]
        Extractor --> Skills["Extracted Skills (40+ tokens)"]
        Extractor --> Seniority["Inferred Seniority & Exclusions"]
        Extractor --> Roles["Target Job Roles"]
        Skills --> Scorer
        Seniority --> Scorer
    end

    Scorer --> Cache[Unified JobCache - 1h TTL]
    Cache --> Tools

主な機能

  1. 動的CV / 候補プロフィール抽出:

    • マルチフォーマット取り込み: .pdfpypdf利用)、.docxpython-docx利用)、.txt ファイルに対応。

    • NLPスキル・チャンキングと動的辞書: 壊れやすいハードコーディングなしに40以上の技術スキルを発見・抽出し、複雑な複合語テクノロジー(例: FastAPILangGraphPostgreSQLSmart ContractsGraphRAG)をサポートします。

    • 自動シニアリティ検出・除外検出: 候補者のシニアリティ(Junior、Mid、Senior、Lead、Principal、Director)を正確に推定し、ミスマッチな求人を除外するためのインテリジェントな否定キーワードを生成します。

    • ストップワード・ノイズフィルタリング: レジュメの構造上の残滓、日付、学歴タイトル、非技術的なメタデータを厳密に除去します。

  2. スマートな要件カバレッジスコアリング(0〜100):

    • 求人要件カバレッジ率: 候補者のスキルが対象求人の技術スタックをどれだけ満たしているかを計算します(matched_job_skills / total_job_skills)。幅広い履歴書の候補者が不利益を被らないようにします。

    • 加重コンポーネントスコアリング:

      • 技術スタックの重複とカバレッジ: 最大40ポイント

      • CV全体のキーワード関連性: 最大25ポイント

      • 勤務形態と勤務地の一致: 最大20ポイント

      • 希望年収: 最大15ポイント

      • 除外ペナルティ: シニアリティ・技術面でのハードな不合格条件は -100ポイント

    • ティア(層級)別マッチ分類:

      • 最上位マッチ ($\ge 85$): 自動応募 / 優先応募の対象。

      • 強マッチ ($70 - 84$): 高く関心を持つ求人として、レビューやブックマーク用にフラグ化。

      • 不合格マッチ ($< 50$): 自動的に非表示または削除。

  3. プラグイン可能なマルチソースアーキテクチャ:

    • HireMeTech: 自動DOMフォールバックを備えたREST API直接連携(/api/jobs/search/api/auth/me/api/resume/profile)。

    • Comeet(Direct ATS): Comeet Career API(/careers-api/2.0/company/{id}/positions)との直接連携、asyncio.Semaphore(5) によるレート制限、技術カテゴリーのインデックス化、企業ごとのTTLキャッシュ。

    • AllJobs Israel: 現実的なブラウザヘッダーを使用したカテゴリフィード連携と、ソースレベルでのエラー分離。

  4. クロスソース重複除外とエンティティ統合:

    • 求人が複数のジョブボードに表示されている場合、重複を排除します。

    • ソースリスト(sources: ["hiremetech", "comeet"])を統合し、技術スタックを結合、最も詳細な説明を保持し、直接ATS応募リンクを優先します。

  5. 自律モードと監視モード:

    • 監視モード: 各ツールに対して標準のMCP確認を要求。

    • 自律モード: 手動プロンプトなしで安全な読み取り・フィルター・ブックマークの連鎖を実行。応募送信には2段階の安全バリアを適用します。

  6. 可観測性とレジリエンス:

    • ʼclogをID化するJSON(structlog)、トークン・認証情報をサニタイしてstderrに出力。

    • ToolResponse すべてのペイロードに自動的にトレースシグを付与。


ツールリファレンス(9のツール)

Tool Name

Parameters

Description

list_job_sources

none

登録された求人ソース(hiremetechcomeetalljobs)、機能、、リアルタイムのヘルス状態を一覧表示します。

get_job_matches

sources: list[str] = None, force_refresh: bool = False

重複漢,し、全または指定されたプラットフォームからマッチした求人を取得します。

filter_jobs_by_preferences

ターー・スタック: list[str], working_mode: str, location: str, min_salary: int, keywords: list[str], excludeああるwords: list[str], cv_path: str

候補者の履歴書と好みに基づいて、集約された求人をフィルタリング・スコアリングします。

bookjob

job_id: str

元のプラットットフォーム上で求人を保存(favorite)します。

delete_job

job_id: str

求人を一致ら(非表示に)し,調缓存から削除します。

auto_apply_job

job_id: str

ステ会1: 応募モールを検し、プレビューを準備し、警告を報告します。

confirm_auto_apply

job_id: str

ステップ2: 応募送信を実行します。常に明示確認が必要です。

calibrate_selectors

none

ライブページにDOMセレク夕ーを自己修復ヒューリスティックで発見・校正します。

set_operation_mode

mode: 'superived' | 'autonomous'

サバ実行モードを監視モードと自動モード岡で切替ます。


クイックスタート&設定し

1. クるんと依存のインストール

git clone https://github.com/zvieli/hireme_mcp.git
cd hireme_mcp

# Using uv (recommended)
uv venv .venv
uv pip install -e ".[dev]"
playwright install chromium

2。候補プロフィールとCVを設定する

运简历 (cv.pdf, cv.docx, или cv.txt) をルートディレクトリに置きます:

cp /path/to/your/resume.pdf ./cv.pdf
cp .env.example .env

.envを編集して、デフォルトのCVパスと連絡先を設定します:

DEFAULT_CV_PATH=./cv.pdf
CANDIDATE_EMAIL=your.email@example.com
CANDIDATE_NAME="Your Name"

3。(任意)HireMeTechの初回認証設定

ComeetとAllJobsはログインなしで自動的に動作します。 HireMeTech アカウントを認証して、直接APIアクセスと自動応募を行うには:

.venv/bin/python -m job_mcp.setup
  1. Chromium ブラウザ何が開きます。

  2. 認証情報でログインします。

  3. 端末に戻り、[Enter] を押してセッションを./browser_profileに保存します。

: 概要。


サーバー実行

オプションA: Dockerを使用する(推奨)

# Build and run in background
docker compose up -d

# View live multi-source aggregation logs
docker compose logs -f hireme-mcp

オプションB: ローカル実行

# Streamable HTTP (Default for Web & Cloud Clients)
.venv/bin/python -m job_mcp --transport http --host 0.0.0.0 --port 8000

# Stdio (Default for Desktop Clients)
.venv/bin/python -m job_mcp --transport stdio

視覚的なCLIパイプラインランナー

完全な自動検出・スコアリング・応募ドライランを、リッチな視覚出力と共にターミナルで直接実行するには:

# Run with auto-extracted skills from your CV:
.venv/bin/python scripts/run_mock_llm_pipeline.py --cv ./cv.pdf

# Run with explicit stack override and remote filter:
.venv/bin/python scripts/run_mock_llm_pipeline.py --cv ./cv.pdf --stack "Python,FastAPI,LangGraph" --work-mode remote --location "Tel Aviv"

# Execute live application submissions (disabled by default in dry-run):
.venv/bin/python scripts/run_mock_llm_pipeline.py --cv ./cv.pdf --auto-apply

MCPクライアント設定

1. Claude Desktop(claude_desktop_config.json

Linuxの場合: ~/.config/Claude/claude_desktop_config.json
macOSの場合: ~/Library/Application Support/Claude/claude_desktop_config.json
Windowsの場合: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "job-search-mcp": {
      "command": "/absolute/path/to/hireme_mcp/.venv/bin/python",
      "args": ["-m", "job_mcp", "--transport", "stdio"],
      "env": {
        "BROWSER_HEADLESS": "true",
        "DEFAULT_CV_PATH": "/absolute/path/to/hireme_mcp/cv.pdf",
        "CANDIDATE_EMAIL": "candidate@example.com",
        "LOG_LEVEL": "INFO"
      }
    }
  }
}

2. Gemini Spark / Web MCP クライアント

  • エンドポイント URL: https://<your-host-or-devtunnel-id>/mcp

  • トランスポート: Streamable HTTP

  • 認証: なし / 認証不要


環境変数

Variable

Default

Description

DEFAULT_CV_PATH

./cv.pdf

動的な候補スキル抽出に使用するデフォルトのCVファイルパス。

CANDIDATE_EMAIL

candidate@example.com

自動応募フォームに使用する候補者のメールアドレス。

CANDIDATE_NAME

""

応募フォームの記入用の候補者氏名。

MCP_TRANSPORT

http

転送プロトコル(http, sse, stdio)。

MCP_HOST

0.0.0.0

HTTP/SSE転送のためのホストバインド。

MCP_PORT

8000

HTTP/SSE 転送用のポート。

BROWSER_HEADLESS

true

ブラウザをヘッドレスモードで実行する(true/false)。

BROWSER_PROFILE_DIR

./browser_profile

永続的な Chromium セッションストレージのディレクトリ。

CACHE_TTL_MINUTES

60

重複除去済みジョブキャッシュのインメモリ TTL(分)。

LOG_LEVEL

INFO

構造化ログ(DEBUG, INFO, WARNING, ERROR)。


テストの実行

完全な自動テストスイート(542件)を実行します:

.venv/bin/pytest tests/ -v

ライセンス

このプロジェクトはMITライセンスの下で提供されています。

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/zvieli/TechJobMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server