TalentBridge Lebanon
TalentBridge Lebanon
Ein KI-gestützter Karriere-Matching-Agent für libanesische Informatik-Absolventen. Laden Sie einen Lebenslauf hoch, und ein LLM-Agent analysiert das Profil, ruft passende Stellen aus einem eingebetteten Job-Korpus per semantischer Ähnlichkeit ab, berechnet für jede Stelle eine deterministische Qualifikationslücke, bewertet neu mit libanon- und senioritätsbezogenen Signalen und erstellt einen personalisierten 4-Wochen-Weiterbildungsplan – Ende zu Ende in etwa 15–20 Sekunden.
Live-Demo: https://talent-bridge-lebanon.lovable.app
Ergebnisse (Benchmark-Lauf: 2026-08-20 15:51)
Metrik | Wert |
Mittlere Precision@5 | 0,84, über 15 gelabelte Lebensläufe |
Abrufphase | 467 ms pro Lebenslauf (CV-Parsing + Embedding + Vektorsuche) |
Vollständiger Agentenlauf | ~15–20 Sekunden Ende zu Ende, einschließlich der LLM-Schritte |
Indexabdeckung | 180 von 180 Stellen eingebettet |
Warum dieses Projekt
Libanesische Informatik-Absolventen bewerben sich blind: Jobportale sind stichwortbasiert, verstehen übertragbare Fähigkeiten nicht und sagen dir nicht, warum du abgelehnt wurdest oder was du als Nächstes lernen solltest. TalentBridge schließt diese Lücke mit einem retrieval-gestützten Agenten, der messbar ist – jede Ranking-Änderung wird gegen einen gelabelten Benchmark von 15 Lebensläufen validiert, mit einer in die App integrierten Precision@5-Testumgebung.
Related MCP server: bach-jsearch
Datensatz
Der Korpus aus 180 Stellen und die gelabelten Benchmark-Lebensläufe sind synthetisch und mit KI-Unterstützung erstellt. Berufsbezeichnungen, Senioritätsstufen und Fähigkeitskombinationen wurden anhand realer Stellenausschreibungen aus dem Libanon und der weiteren Region modelliert, sodass die Verteilung den tatsächlichen Markt widerspiegelt, während Firmennamen fiktiv sind. Die Daten wurden aus zwei Gründen generiert: Es gibt keinen öffentlichen Datensatz libanesischer Stellenausschreibungen, der verwendet werden könnte, und der Benchmark erfordert für jede Stelle ein korrektes Track-Label, das gescrapte Ausschreibungen nicht haben.
Eine direkte Einschränkung ist, dass die Ergebnisse an sauberen, gut strukturierten Datensätzen demonstriert werden. Die Leistung bei realen Ausschreibungen, die unordentlicher und oft unvollständig sind, wurde nicht gemessen.
Funktionen
Agentische Pipeline —
parse_cv→search_jobs→reflect_on_results→analyze_gap→build_plan, deterministisch orchestriert mit einem reflexionsgesteuerten Wiederholungsmechanismus.Semantische Abfrage — 384-dimensionale Embeddings über 180 Stellen, exakte Kosinus-Suche in Postgres (
pgvector).Deterministische, halluzinationssichere Bewertung — übereinstimmende/fehlende Fähigkeiten und Eignung werden im Code aus den
required_skillsder Datenbank berechnet, niemals vom Modell. Der narrative Text wird aus genau diesen Mengen abgeleitet, sodass der Text den Listen nie widersprechen kann.Libanon-zuerst-Neubewertung — Endpunktzahl =
0.35·semantic + 0.20·readiness + 0.25·location + 0.15·seniority + 0.05·domain, mit abgestufter Standortpassung (libanesische Stadt 1.0 → remote 0.95 → MENA 0.75) und einer Strafe für Überqualifizierung.Integrierte Auswertung —
/evalführt den gesamten gelabelten Lebenslauf-Satz aus und meldet mittlere Precision@5 und mittlere Abruflatenz, mit sitzungslokaler Verlaufshistorie.PDF-Parsing im Browser —
pdfjs-distextrahiert den Lebenslauf-Text clientseitig; nichts wird gespeichert, bis das Matching beginnt.MCP-Server —
/mcpstelltsearch_jobs,get_job,assess_fitundjob_index_statsbereit, sodass jeder MCP-Client (Claude, Cursor, …) den Korpus abfragen kann.Herunterladbarer Bericht — die Ergebnisseite exportiert einen Markdown-Bericht, der identisch mit dem auf dem Bildschirm ist.
Architektur
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_resultsTechnologie-Stack
Ebene | Wahl |
Framework | TanStack Start v1 (React 19, Vite 7, SSR auf Cloudflare Workers) |
Styling | Tailwind CSS v4 + shadcn/ui |
Datenbank | Postgres mit |
LLM |
|
Embeddings |
|
Agent-Interop | Model Context Protocol Server unter |
Repository-Struktur
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)Seiten
Route | Zweck |
| Wählen Sie einen Benchmark-Lebenslauf oder laden Sie Ihren eigenen hoch, und führen Sie dann den Agenten aus. |
| Analysiertes Profil, Top-5-Matches mit Match-Prozentsatz, Lückenanalyse pro Match, 4-Wochen-Plan, Bericht-Download. Nur für die Sitzung – Besucher sehen nie den Lauf eines anderen. |
| Job-Index: CSV-Import, Embedding-Abdeckung, Korpus-Integritätsprüfung. |
| Führt den Agenten über jeden gelabelten Lebenslauf aus und meldet mittlere Precision@5 und mittlere Abruflatenz. |
Evaluierung
Die Ground-Truth-Daten liegen in eval_cvs.relevant_job_ids. Für jeden Lebenslauf führt die Testumgebung exakt dieselbe Pipeline aus, die ein Besucher erhält (einschließlich Neubewertung), und berechnet Precision@5 = |top5 ∩ relevant| / 5, dann mittelt sie über den Satz zusammen mit der Abruflatenz pro Lebenslauf. Da die Relevanz durch Track und kompatible Seniorität definiert ist, werden Ranking-Änderungen validiert und nicht geraten.
Lokale Ausführung
git clone https://github.com/ak8x6/talent-bridge-lebanon.git
cd talent-bridge-lebanon
bun install
bun run dev # http://localhost:8080Wenn Sie npm bevorzugen:
npm install
npm run dev # http://localhost:8080Umgebungsvariablen (eine .env-Datei ist erforderlich, keine ist eingecheckt):
VITE_SUPABASE_URL=...
VITE_SUPABASE_PUBLISHABLE_KEY=...
LOVABLE_API_KEY=... # server-side only: LLM + embedding gatewayDatenbank-Setup: Wenden Sie supabase/migrations/*.sql der Reihe nach an, importieren Sie data/jobs.csv über /admin und klicken Sie dann auf Generate embeddings. Laden Sie data/eval_cvs.csv in eval_cvs, um den Benchmark zu aktivieren.
Sicherheitshinweise
Keine Geheimnisse im Client-Code; Gateway-Schlüssel werden nur innerhalb von Server-Funktions-Handlern gelesen.
Zeilenbasierte Sicherheit und explizite Berechtigungen auf jeder öffentlichen Tabelle.
Die
track-Spalte wird niemals über Abruf, UI oder MCP-Tools offengelegt – sie ist nur ein Evaluierungslabel.Prompts verbieten es, aus Namen auf das Geschlecht zu schließen; der gesamte generierte Text ist geschlechtsneutral.
Lizenz
MIT © 2026 Ahmad Kassem – siehe 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