Skip to main content
Glama
ak8x6

TalentBridge Lebanon

by ak8x6

TalentBridge Lebanon

Un agente de emparejamiento profesional con IA para graduados libaneses de informática. Sube un CV, y un agente LLM analiza el perfil, recupera puestos de un corpus de empleos integrado mediante similitud semántica, calcula una brecha de habilidades determinista para cada puesto, reordena con señales específicas de Líbano y de nivel de seniority, y escribe un plan de mejora personalizado de 4 semanas — de principio a fin en ~15–20 segundos.

Demo en vivo: https://talent-bridge-lebanon.lovable.app

Resultados (ejecución de referencia: 2026-08-20 15:51)

Métrica

Valor

Precisión media@5

0,84, en 15 CV etiquetados

Etapa de recuperación

467 ms por CV (análisis de CV + incrustación + búsqueda vectorial)

Ejecución completa del agente

~15–20 segundos de principio a fin, incluyendo los pasos del LLM

Cobertura del índice

180 de 180 empleos incrustados


Por qué este proyecto

Los graduados libaneses de informática se postulan a ciegas: los portales de empleo se basan en palabras clave, no entienden las habilidades transferibles y no te dicen por qué fuiste rechazado ni qué aprender a continuación. TalentBridge cierra ese ciclo con un agente de recuperación aumentada que es medible — cada cambio de clasificación se valida contra un punto de referencia etiquetado de 15 CV con un sistema de Precisión@5 integrado en la aplicación.

Related MCP server: bach-jsearch

Conjunto de datos

El corpus de 180 empleos y los CV de referencia etiquetados son sintéticos, generados con asistencia de IA. Los títulos de los puestos, los niveles de seniority y las combinaciones de habilidades se modelaron a partir de ofertas de empleo reales de Líbano y la región en general, de modo que la distribución refleje el mercado real, mientras que los nombres de las empresas son ficticios. Los datos se generaron por dos razones: no existe un conjunto de datos público de ofertas de empleo libanesas que pudiera utilizarse, y el punto de referencia requiere una etiqueta de pista correcta en cada empleo, que las ofertas extraídas no tienen.

Una limitación directa es que los resultados se demuestran en registros limpios y bien estructurados. El rendimiento en ofertas del mundo real, que son más desordenadas y a menudo incompletas, no se ha medido.

Características

  • Pipeline de agenteparse_cvsearch_jobsreflect_on_resultsanalyze_gapbuild_plan, orquestado de forma determinista con un reintento impulsado por reflexión.

  • Recuperación semántica — incrustaciones de 384 dimensiones sobre 180 empleos, búsqueda de coseno exacta en Postgres (pgvector).

  • Puntuación determinista y a prueba de alucinaciones — las habilidades coincidentes/faltantes y la preparación se calculan en código a partir de required_skills de la base de datos, nunca por el modelo. La prosa narrativa se deriva de esos conjuntos exactos, por lo que el texto nunca puede contradecir las listas.

  • Reordenación priorizando Líbano — puntuación final = 0,35·semántica + 0,20·preparación + 0,25·ubicación + 0,15·seniority + 0,05·dominio, con ajuste de ubicación por niveles (ciudad libanesa 1,0 → remoto 0,95 → MENA 0,75) y una penalización por sobre-nivelación.

  • Evaluación integrada/eval ejecuta todo el conjunto de CV etiquetados e informa la Precisión media@5 y la latencia media de recuperación, con historial de ejecución local a la sesión.

  • Análisis de PDF en el navegadorpdfjs-dist extrae el texto del CV en el lado del cliente; no se almacena nada hasta que comienza el emparejamiento.

  • Servidor MCP/mcp expone search_jobs, get_job, assess_fit y job_index_stats para que cualquier cliente MCP (Claude, Cursor, …) pueda consultar el corpus.

  • Informe descargable — la página de resultados exporta un informe en Markdown idéntico al que se muestra en pantalla.

Arquitectura

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

Pila tecnológica

Capa

Elección

Framework

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

Estilizado

Tailwind CSS v4 + shadcn/ui

Base de datos

Postgres con pgvector (Supabase / Lovable Cloud)

LLM

google/gemini-2.5-flash (+ gemini-2.5-pro para pasos que requieren razonamiento) a través de Lovable AI Gateway

Incrustaciones

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

Interoperabilidad de agentes

Servidor Model Context Protocol en /mcp

Estructura del repositorio

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)

Páginas

Ruta

Propósito

/

Elige un CV de referencia o sube el tuyo, luego ejecuta el agente.

/results

Perfil analizado, 5 mejores coincidencias con % de coincidencia, análisis de brecha por coincidencia, plan de 4 semanas, descarga del informe. Solo sesión: los visitantes nunca ven la ejecución de otra persona.

/admin

Índice de empleos: importación CSV, cobertura de incrustaciones, verificación de integridad del corpus.

/eval

Ejecuta el agente en cada CV etiquetado e informa la Precisión media@5 y la latencia media de recuperación.

Evaluación

La verdad fundamental vive en eval_cvs.relevant_job_ids. Para cada CV, el sistema ejecuta el mismo pipeline exacto que recibe un visitante (incluida la reordenación) y calcula Precision@5 = |top5 ∩ relevant| / 5, luego promedia en el conjunto junto con la latencia de recuperación por CV. Debido a que la relevancia se define por pista y seniority compatible, los cambios de clasificación se validan en lugar de adivinarse.

Ejecución local

git clone https://github.com/ak8x6/talent-bridge-lebanon.git
cd talent-bridge-lebanon
bun install
bun run dev            # http://localhost:8080

Si prefieres npm:

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

Variables de entorno (se requiere un .env, no se incluye ninguno):

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

Configuración de la base de datos: aplica supabase/migrations/*.sql en orden, importa data/jobs.csv a través de /admin, luego haz clic en Generar incrustaciones. Carga data/eval_cvs.csv en eval_cvs para habilitar el punto de referencia.

Notas de seguridad

  • Sin secretos en el código del cliente; las claves de la puerta de enlace se leen solo dentro de los manejadores de funciones del servidor.

  • Seguridad a nivel de fila y permisos explícitos en cada tabla pública.

  • La columna track nunca se expone a través de la recuperación, la interfaz de usuario o las herramientas MCP — es solo una etiqueta de evaluación.

  • Los prompts prohíben inferir el género a partir de los nombres; toda la prosa generada es neutral en cuanto al género.

Licencia

MIT © 2026 Ahmad Kassem — ver 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