TalentBridge Lebanon
TalentBridge Lebanon
一个面向黎巴嫩计算机科学毕业生的 AI 职业匹配智能体。 上传简历后,LLM 智能体会解析个人资料,通过语义相似度从嵌入的职位语料库中检索职位,为每个职位计算确定性的技能差距,再利用黎巴嫩本地与资历感知信号重新排序,最后生成个性化的 4 周提升计划——端到端 ~15–20 秒。
在线演示:https://talent-bridge-lebanon.lovable.app
结果(基准运行:2026-08-20 15:51)
指标 | 数值 |
平均 Precision@5 | 0.84,基于 15 份标注简历 |
检索阶段 | 每份简历 467 毫秒(简历解析 + 嵌入 + 向量搜索) |
完整智能体运行 | 端到端 ~15–20 秒,包括 LLM 步骤 |
索引覆盖率 | 180 个职位中的 180 个已嵌入 |
为什么做这个项目
黎巴嫩的计算机科学毕业生在盲目投递简历:招聘网站基于关键词匹配,不理解可迁移技能,也不会告诉你被拒绝的原因或接下来该学什么。TalentBridge 通过一个检索增强的智能体来闭合这一循环,而且该智能体是可度量的——每一次排序变化都会通过应用内置的 Precision@5 评估工具,对照一个由 15 份标注简历组成的基准进行验证。
Related MCP server: bach-jsearch
数据集
这个包含 180 个职位的语料库和标注基准简历均为合成数据,借助 AI 生成。职位名称、资历级别和技能组合均参照黎巴嫩及更广泛地区的真实招聘信息建模,从而使分布能够反映真实市场,而公司名称则是虚构的。生成这些数据有两个原因:目前没有可用的黎巴嫩职位列表公开数据集;而且基准要求每个职位都有正确的轨道标签,抓取到的招聘信息并不具备这一点。
一个直接的局限是:结果是在干净、结构良好的记录上演示的。对于现实世界中更杂乱、往往不完整的招聘信息,性能尚未被测量。
功能特性
智能体流水线 —
parse_cv→search_jobs→reflect_on_results→analyze_gap→build_plan,以确定性方式编排,并带有基于反思的重试机制。语义检索 — 对 180 个职位生成 384 维嵌入,在 Postgres(
pgvector)中进行精确余弦搜索。确定性、防幻觉打分 — 匹配/缺失技能和就绪度均由代码根据数据库中的
required_skills计算得出,而非由模型生成。叙述性文字正是从这些精确集合推导而来,因此文本永远不会与列表相矛盾。黎巴嫩优先的重新排序 — 最终得分 =
0.35·semantic + 0.20·readiness + 0.25·location + 0.15·seniority + 0.05·domain,带有分级的所在地匹配度(黎巴嫩城市 1.0 → 远程 0.95 → MENA 0.75)和资历过高惩罚。内置评估 —
/eval运行整个标注简历集,报告平均 Precision@5 和平均检索延迟,并带有会话本地的运行历史。浏览器内 PDF 解析 —
pdfjs-dist在客户端提取简历文本;匹配开始前不会存储任何内容。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 |
数据库 | Postgres 搭配 |
LLM |
|
嵌入 |
|
智能体互操作 | 位于 |
仓库结构
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)页面
路由 | 用途 |
| 选择一份基准简历或上传你自己的简历,然后运行智能体。 |
| 解析后的个人资料、前 5 名匹配及匹配百分比、每项匹配的差距分析、4 周计划、报告下载。仅限会话内——访问者永远不会看到别人的运行结果。 |
| 职位索引:CSV 导入、嵌入覆盖率、语料库完整性检查。 |
| 在所有标注简历上运行智能体,并报告平均 Precision@5 和平均检索延迟。 |
评估
基准真值存储在 eval_cvs.relevant_job_ids 中。对于每份简历,评估工具运行与访问者完全相同的流水线(包括重新排序),计算 Precision@5 = |top5 ∩ relevant| / 5,然后连同每份简历的检索延迟一起在整组数据上取平均。由于相关性由轨道和兼容的资历共同定义,排序变化是经过验证的,而不是猜测的。
本地运行
git clone https://github.com/ak8x6/talent-bridge-lebanon.git
cd talent-bridge-lebanon
bun install
bun run dev # http://localhost:8080如果你更偏好 npm:
npm install
npm run dev # http://localhost:8080环境变量(需要一个 .env 文件;没有任何 .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