Skip to main content
Glama
ak8x6

TalentBridge Lebanon

by ak8x6

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_cvsearch_jobsreflect_on_resultsanalyze_gapbuild_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_jobsget_jobassess_fitjob_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 搭配 pgvector(Supabase / Lovable Cloud)

LLM

google/gemini-2.5-flash(+ gemini-2.5-pro 用于推理密集型步骤),通过 Lovable AI Gateway

嵌入

openai/text-embedding-3-small,384 维

智能体互操作

位于 /mcp 的 Model Context Protocol 服务器

仓库结构

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)

页面

路由

用途

/

选择一份基准简历或上传你自己的简历,然后运行智能体。

/results

解析后的个人资料、前 5 名匹配及匹配百分比、每项匹配的差距分析、4 周计划、报告下载。仅限会话内——访问者永远不会看到别人的运行结果。

/admin

职位索引:CSV 导入、嵌入覆盖率、语料库完整性检查。

/eval

在所有标注简历上运行智能体,并报告平均 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

A
license - permissive license
Not graded
quality - not tested
C
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 Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that exposes job search data from multiple boards, enabling clients to query and manage job listings via natural language.
    7
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for accessing Jsearch API to search jobs, get job details, and retrieve salary estimates.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for the WorkLink Partner API that enables searching live job vacancies and tenders in Syria.
    19
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    GetJobzi MCP server for job search, application tracking, and career forecasting.

View all related MCP servers

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.

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/ak8x6/talent-bridge-lebanon'

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