TalentBridge Lebanon
TalentBridge Lebanon
レバノンのコンピューターサイエンス学部卒業生のためのAIキャリアマッチングエージェント。 CVをアップロードすると、LLMエージェントがプロフィールを解析し、埋め込まれた求人コーパスからセマンティック類似度で役割を取得し、各役割に対して決定的なスキルギャップを計算し、レバノン事情とシニアレベルを考慮したシグナルで再ランク付けし、パーソナライズされた4週間のスキルアップ計画を作成します — エンドツーエンドで約15〜20秒。
ライブデモ: https://talent-bridge-lebanon.lovable.app
結果(ベンチマーク実行: 2026-08-20 15:51)
指標 | 値 |
平均Precision@5 | 0.84(ラベル付きCV 15件の平均) |
検索ステージ | CV 1件あたり467 ms(CV解析+埋め込み+ベクトル検索) |
エージェント全体の実行 | エンドツーエンドで約15〜20秒(LLMステップを含む) |
インデックス網羅率 | 180件中180件の求人を埋め込み済み |
このプロジェクトの背景
レバノンのCS卒業生は手探りで応募しています。求人ボードはキーワードベースで、転用可能なスキルを理解せず、なぜ不合格になったのか、次に何を学ぶべきかを教えてくれません。TalentBridgeは、検索拡張エージェントでそのループを閉じます。測定可能です — すべてのランキング変更は、アプリに組み込まれたPrecision@5ハーネスを使用して、ラベル付きベンチマークの15件のCVに対して検証されます。
Related MCP server: bach-jsearch
データセット
180件の求人コーパスとラベル付きベンチマークCVは、AI支援で生成された合成データです。職種名、シニアレベル、スキルの組み合わせは、レバノンおよび周辺地域の実際の求人情報をモデルにしており、分布が実際の市場を反映するようにしていますが、会社名は架空です。データ生成の理由は2つあります。利用可能なレバノンの求人リストの公開データセットが存在しないことと、ベンチマークにはすべての求人に正しいトラックラベルが必要ですが、スクレイピングした求人情報にはそれが含まれていないためです。
直接的な制限として、結果はクリーンで構造化されたレコードで実証されています。実際の求人情報はより雑然としており不完全なことが多いため、実世界の投稿に対するパフォーマンスは測定されていません。
機能
エージェント型パイプライン —
parse_cv→search_jobs→reflect_on_results→analyze_gap→build_plan。リフレクション駆動のリトライで決定的にオーケストレーションされます。セマンティック検索 — 180件の求人に対する384次元の埋め込み、Postgres(
pgvector)での正確なコサイン検索。決定的で幻覚耐性のあるスコアリング — 一致/不足スキルと準備度は、データベースの
required_skillsからコード内で計算され、モデルが計算することはありません。物語的な散文はそれらの正確なセットから導出されるため、テキストがリストと矛盾することは決してありません。レバノン優先の再ランク付け — 最終スコア =
0.35·セマンティック + 0.20·準備度 + 0.25·場所 + 0.15·シニアレベル + 0.05·ドメイン。段階的な場所適合度(レバノンの都市 1.0 → リモート 0.95 → MENA 0.75)と過剰レベルのペナルティを備えています。組み込み評価 —
/evalはラベル付きCVセット全体を実行し、平均Precision@5と平均検索レイテンシを報告します。セッションローカルの実行履歴付き。ブラウザでのPDF解析 —
pdfjs-distがCVテキストをクライアント側で抽出します。マッチングが開始されるまで何も保存されません。MCPサーバー —
/mcpはsearch_jobs、get_job、assess_fit、job_index_statsを公開するため、任意のMCPクライアント(Claude、Cursorなど)がコーパスを照会できます。ダウンロード可能なレポート — 結果ページは、画面上と同じ内容のMarkdownレポートをエクスポートします。
アーキテクチャ
Browser (React 19 + TanStack Start)
│ PDF text extraction (pdfjs-dist)
▼
Server functions (createServerFn, Cloudflare Workers runtime)
├─ parse_cv LLM → profile, skills (+inferred, cited), domains
├─ years/level code → merged work periods, Intern/Junior/Mid
├─ search_jobs embed query → match_jobs_vector() over pgvector
├─ reflect_on_results LLM → topical relevance check, max 1 retry (pooled results)
├─ analyze_gap code → matched/missing skills, readiness %
├─ rerank code → weighted blend (semantic/readiness/location/seniority/domain)
└─ build_plan LLM → 4-week plan grounded in the missing skills
▼
Postgres (Supabase + pgvector): jobs, candidates, agent_runs, eval_cvs, eval_results技術スタック
レイヤー | 選択肢 |
フレームワーク | TanStack Start v1(React 19、Vite 7、Cloudflare Workers上のSSR) |
スタイリング | Tailwind CSS v4 + shadcn/ui |
データベース |
|
LLM | Lovable AI Gateway経由の |
埋め込み |
|
エージェント連携 |
|
リポジトリ構成
src/routes/ file-based routes: / (run agent), /results, /admin, /eval, /mcp
src/lib/agent.server.ts the agent: parsing, retrieval, gap analysis, re-ranking, planning
src/lib/agent.config.ts single source of truth for models and prompt guardrails
src/lib/skill-match.ts canonical skill normalisation + shared matched/missing logic
src/lib/eval.server.ts Precision@5 benchmark harness across the labelled CV set
src/lib/mcp/ MCP server and its four tools
supabase/migrations/ full schema: tables, RLS, grants, match_jobs_vector()
data/ exported datasets (180 jobs; 15 labelled benchmark CVs + 2 demo profiles)ページ
ルート | 目的 |
| ベンチマークCVを選択するか、自分のCVをアップロードしてエージェントを実行します。 |
| 解析されたプロフィール、マッチ率付き上位5件のマッチ、マッチごとのギャップ分析、4週間の計画、レポートのダウンロード。セッション限定 — 訪問者が他の人の実行結果を見ることはありません。 |
| 求人インデックス: CSVインポート、埋め込みカバレッジ、コーパス整合性チェック。 |
| ラベル付きの全CVに対してエージェントを実行し、平均Precision@5と平均検索レイテンシを報告します。 |
評価
グラウンドトゥルースはeval_cvs.relevant_job_idsにあります。各CVについて、ハーネスは訪問者が得るのとまったく同じパイプライン(再ランク付けを含む)を実行し、Precision@5 = |top5 ∩ relevant| / 5を計算して、セット全体で平均化し、CVごとの検索レイテンシとともに報告します。関連性がトラックおよび互換性のあるシニアレベルによって定義されるため、ランキングの変更は推測ではなく検証されます。
ローカルでの実行
git clone https://github.com/ak8x6/talent-bridge-lebanon.git
cd talent-bridge-lebanon
bun install
bun run dev # http://localhost:8080npmを希望する場合:
npm install
npm run dev # http://localhost:8080環境変数(.envが必要です。コミットされているものはありません):
VITE_SUPABASE_URL=...
VITE_SUPABASE_PUBLISHABLE_KEY=...
LOVABLE_API_KEY=... # server-side only: LLM + embedding gatewayデータベース設定: supabase/migrations/*.sqlを順番に適用し、/admin経由でdata/jobs.csvをインポートしてから、埋め込みの生成をクリックします。data/eval_cvs.csvをeval_cvsにロードして、ベンチマークを有効にします。
セキュリティに関する注意事項
クライアントコードにシークレットはありません。ゲートウェイキーはサーバー関数ハンドラー内でのみ読み取られます。
すべての公開テーブルに対する行レベルのセキュリティと明示的な権限付与。
track列は、検索、UI、MCPツールを通じて公開されることはありません。これは評価ラベルのみです。プロンプトは名前から性別を推測することを禁止しています。生成されるすべての散文は性別に中立です。
ライセンス
MIT © 2026 Ahmad Kassem — LICENSEを参照してください。
This server cannot be installed
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
- AlicenseNot gradedqualityAmaintenanceMCP server that exposes job search data from multiple boards, enabling clients to query and manage job listings via natural language.7MIT

bach-jsearchofficial
AlicenseAqualityDmaintenanceMCP server for accessing Jsearch API to search jobs, get job details, and retrieve salary estimates.4MIT- AlicenseNot gradedqualityCmaintenanceMCP server for the WorkLink Partner API that enables searching live job vacancies and tenders in Syria.19MIT
Related MCP Connectors
GetJobzi MCP server for job search, application tracking, and career forecasting.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server for AI access to Swagger by SmartBear.
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/ak8x6/talent-bridge-lebanon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server