TalentBridge Lebanon
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 agente —
parse_cv→search_jobs→reflect_on_results→analyze_gap→build_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_skillsde 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 —
/evalejecuta 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 navegador —
pdfjs-distextrae el texto del CV en el lado del cliente; no se almacena nada hasta que comienza el emparejamiento.Servidor MCP —
/mcpexponesearch_jobs,get_job,assess_fityjob_index_statspara 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_resultsPila 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 |
LLM |
|
Incrustaciones |
|
Interoperabilidad de agentes | Servidor Model Context Protocol en |
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. |
| 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. |
| Índice de empleos: importación CSV, cobertura de incrustaciones, verificación de integridad del corpus. |
| 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:8080Si prefieres npm:
npm install
npm run dev # http://localhost:8080Variables 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 gatewayConfiguració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
tracknunca 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.
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