Skip to main content
Glama
ak8x6

TalentBridge Lebanon

by ak8x6

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 Pipelineparse_cvsearch_jobsreflect_on_resultsanalyze_gapbuild_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_skills der 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/eval führt den gesamten gelabelten Lebenslauf-Satz aus und meldet mittlere Precision@5 und mittlere Abruflatenz, mit sitzungslokaler Verlaufshistorie.

  • PDF-Parsing im Browserpdfjs-dist extrahiert den Lebenslauf-Text clientseitig; nichts wird gespeichert, bis das Matching beginnt.

  • MCP-Server/mcp stellt search_jobs, get_job, assess_fit und job_index_stats bereit, 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_results

Technologie-Stack

Ebene

Wahl

Framework

TanStack Start v1 (React 19, Vite 7, SSR auf Cloudflare Workers)

Styling

Tailwind CSS v4 + shadcn/ui

Datenbank

Postgres mit pgvector (Supabase / Lovable Cloud)

LLM

google/gemini-2.5-flash (+ gemini-2.5-pro für denkintensive Schritte) über das Lovable AI Gateway

Embeddings

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

Agent-Interop

Model Context Protocol Server unter /mcp

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.

/results

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.

/admin

Job-Index: CSV-Import, Embedding-Abdeckung, Korpus-Integritätsprüfung.

/eval

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:8080

Wenn Sie npm bevorzugen:

npm install
npm run dev            # http://localhost:8080

Umgebungsvariablen (eine .env-Datei ist erforderlich, keine ist eingecheckt):

VITE_SUPABASE_URL=...
VITE_SUPABASE_PUBLISHABLE_KEY=...
LOVABLE_API_KEY=...        # server-side only: LLM + embedding gateway

Datenbank-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.

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