Busca empleo fintech desde Claude

Conecta Claude con el tablero y pregunta en español: vacantes, salarios y el estado de tus postulaciones, en una sola conversación. Es gratis.

Conéctalo

  1. 1

    Crea tu cuenta y genera tu clave

    En API y MCP dentro de tu cuenta. Es personal: no la compartas. Se muestra una sola vez.

  2. 2

    Agrega el servidor remoto

    El endpoint es https://fintech.us.com/api/mcp y la clave va en el encabezado x-api-key. También se acepta Authorization: Bearer.

  3. 3

    Pregunta

    Claude decide qué herramienta usar. No necesitas saber sus nombres.

Claude Code

claude mcp add --transport http fintechjobs https://fintech.us.com/api/mcp --header "x-api-key: TU_CLAVE"

Claude Desktop

En claude_desktop_config.json, con el puente mcp-remote.

{
  "mcpServers": {
    "fintechjobs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://fintech.us.com/api/mcp",
        "--header",
        "x-api-key:${FTC_API_KEY}"
      ],
      "env": {
        "FTC_API_KEY": "TU_CLAVE"
      }
    }
  }
}

Tres cosas que puedes hacer hoy

  1. 01

    Buscar vacantes

    Pega esto en Claude:

    Busca vacantes de ingeniería backend en Ciudad de México que publiquen el rango en MXN.

    Una lista corta de vacantes reales con empresa, ciudad, rango en USD al año (y el original en MXN) y el enlace a cada una; luego el detalle de la que elijas.

    Herramientas: search_jobs, get_job

  2. 02

    Saber si un salario es justo

    Pega esto en Claude:

    Me ofrecen MXN 55,000 al mes como analista de riesgo semi senior en Ciudad de México. ¿Está dentro del rango del mercado?

    La oferta convertida a USD al año, la mediana y los percentiles del área y el mercado con el número de datos detrás, y las vacantes abiertas que publican un rango para comparar.

    Herramientas: get_salaries, search_jobs

  3. 03

    Postular y dar seguimiento

    Pega esto en Claude:

    ¿Qué postulaciones tengo en entrevista y a cuáles debo dar seguimiento esta semana?

    Tus postulaciones por etapa con la fecha de seguimiento de cada una; Claude mueve una de etapa o le pone recordatorio cuando se lo pides, y postula por ti solo a las vacantes que reciben postulaciones aquí, después de que confirmes.

    Herramientas: solo_pro_pipeline, solo_pro_update, submit_application

¿Una demo no responde así? Revisa la tabla de errores o escríbenos a info@fintech.us.com.

Qué puedes pedirle

  • «Busca vacantes de ingeniería backend en Ciudad de México que publiquen el rango en MXN.»
  • «¿Qué fintechs en Bogotá están contratando para cumplimiento y riesgo?»
  • «Compara el salario de datos y analítica semi senior en Buenos Aires con el de Ciudad de México.»
  • «Muéstrame vacantes de producto en remoto LATAM pagadas en USD.»
  • «¿Qué postulaciones tengo en entrevista y a cuáles debo dar seguimiento esta semana?»

¿Cómo consulta un agente de IA las vacantes fintech de Fintech Careers?

Con una clave personal gratuita, creada en tu cuenta, y dos puertas: la API REST en /api/v1, con vacantes, empresas, sueldos y novedades y su documento OpenAPI, y el servidor MCP remoto en /api/mcp, que Claude y otros clientes MCP usan para buscar vacantes, leer sueldos y llevar tu pipeline de postulaciones en una conversación en español.

¿La API o el conector MCP pueden postular por mí?
Solo en las vacantes que se postulan dentro de la plataforma. Cuando la postulación se hace en el sitio de la empresa, la API y el conector no la envían: devuelven el enlace para que la hagas allá y nunca afirman que una postulación se envió. Tú revisas la vacante y tú postulas; el agente prepara y organiza.
¿Cuánto cuesta usar la API y el servidor MCP?
Nada. La clave personal es gratuita, se crea en tu cuenta y se muestra una sola vez. Buscar vacantes, leer sueldos y empresas y llevar tu pipeline por la API o por MCP no tiene costo; la única regla es un límite de peticiones por minuto. Una vacante que se postula en el sitio de la empresa trae su enlace.
¿Cómo debe citar un agente los datos del tablero?
Con el nombre Fintech Careers y la URL exacta de la vacante, el listado o la página de salarios, más la fecha de consulta. Un sueldo se cita en USD al año con el mercado o el área, la n y la fecha del tipo de cambio; si repites la cifra original, lleva su código de moneda.

Herramientas

Todas son gratis, incluidas las de seguimiento de tus postulaciones (solo_pro_pipeline y solo_pro_update). Si una vacante se postula en el sitio de la empresa, el conector no envía nada: te da el enlace para que postules allá. Antes de enviar una postulación, Claude te pide confirmación.

search_jobs
Busca vacantes por palabra clave, área, mercado, ciudad, modalidad remota, nivel y pago.
get_job
Trae el detalle de una vacante: descripción, rango de pago y cómo se postula.
submit_application
Postula con tu nombre, correo y CV a las vacantes que reciben postulaciones en la plataforma, después de que confirmes. Si la empresa recibe postulaciones en su propio sitio, te devuelve el enlace para postular allá.
get_salaries
Promedio, mediana y percentiles de salario por área y mercado, siempre en USD anuales.
get_companies
Empresas que contratan, con cuántas vacantes abiertas tiene cada una.
get_feed
Lo nuevo en el tablero: vacantes recién publicadas, salarios validados, empresas verificadas, noticias y eventos. Con types te quedas solo con lo que pidas.
recommended_jobs
Tus vacantes recomendadas según tus búsquedas guardadas, las vacantes que guardaste, tus postulaciones y tu perfil, con el motivo de cada una. Solo lee: no postula.
solo_pro_pipeline
Tus postulaciones con su etapa y fecha de seguimiento.
solo_pro_update
Mueve una postulación de etapa, ponle un recordatorio o un seguimiento, o registra una vacante de otro sitio.
solo_pro_gap
Las palabras clave que pide una vacante y no están en las habilidades de tu perfil.
kit_del_dia
Una vacante al día elegida para ti, con un prompt para evaluarla y adaptar tu CV con tus datos reales. Tú postulas.

Alternativa local (stdio)

Si tu cliente solo habla stdio, usa la configuración de Claude Desktop de arriba: mcp-remote corre en tu equipo por stdio y habla con el servidor remoto. Esta otra configuración es para quien tiene acceso al repositorio, que no es público: después de npm ci, apunta tu cliente a mcp-server/index.ts. Habla con la misma API y usa la misma clave. Necesitas Node.js 20 o superior.

{
  "mcpServers": {
    "fintechjobs": {
      "command": "npx",
      "args": [
        "-y",
        "tsx",
        "/ruta/a/fintechjobs/mcp-server/index.ts"
      ],
      "env": {
        "FINTECHCAREERS_URL": "https://fintech.us.com",
        "FINTECHCAREERS_API_KEY": "TU_CLAVE"
      }
    }
  }
}

Referencia

La API REST y las herramientas MCP hacen exactamente lo mismo: cada herramienta llama a un endpoint. Versión del servidor MCP: 2.8.0. La clave va en el encabezado x-api-key y nunca en la URL. Ejemplo:

curl -H "x-api-key: TU_CLAVE" \
  "https://fintech.us.com/api/v1/jobs?region=MX&limit=3"

Endpoints

Para programas: la API está descrita en OpenAPI 3.1 y el servidor MCP en .well-known/mcp.json.

EndpointHerramienta MCPQué hace
GET /api/v1/jobssearch_jobsBusca vacantes públicas. Mismos filtros que el tablero. En cada resultado, salary es la cifra del empleador en su moneda y su periodo (period: YEAR o MONTH) y salary_usd es siempre anual en USD.
GET /api/v1/jobs/{id}get_jobUna vacante por id o slug, con description_markdown y cómo se postula.
GET /api/v1/companiesget_companiesEmpresas con vacantes abiertas, con cuántas tiene cada una y si está verificada.
GET /api/v1/salariesget_salariesPromedio, mediana y percentiles de salarios validados de un área, en USD anuales, solo con 10 datos o más de esa área. Si no, insufficient_data con n, min_n y reason.
GET /api/v1/feedget_feedLo nuevo: vacantes, salarios validados, empresas verificadas, artículos y eventos. Cada elemento trae su type; las vacantes nunca se mezclan con noticias ni eventos salvo que pidas varios tipos.
POST /api/v1/applysubmit_applicationPostula a una vacante onsite con nombre, correo y un CV o LinkedIn. Una vacante offsite responde 409 offsite_apply con apply_url y no guarda nada.
GET /api/v1/solo-prosolo_pro_pipelineTus postulaciones (enviadas aquí o marcadas en el sitio de la empresa), con etapa y fecha de seguimiento.
POST /api/v1/solo-prosolo_pro_updateCambia la etapa de una postulación, su recordatorio o su nota, anota un seguimiento o la descarta. Con url registra una vacante de otro sitio, solo para ti.
GET /api/v1/solo-pro/gapsolo_pro_gapQué palabras clave pide una vacante y no están en las habilidades de tu perfil, con una puntuación de 0 a 100 y la diferencia con el sueldo que buscas, en USD. Se compara con las habilidades del perfil, no con un CV. Guarda el resultado en tu postulación.
GET /api/v1/kitkit_del_diaKit del día: una vacante abierta elegida para ti hoy (fecha de Ciudad de México), la misma en cada llamada del día, con apply_url para que postules tú. No envía postulaciones.
GET /api/v1/recommendationsrecommended_jobsTus vacantes recomendadas, con el motivo de cada una: según tus búsquedas guardadas, las vacantes que guardaste, tus postulaciones y las habilidades y el nivel de tu perfil. Solo lee: no postula a nada.
POST /api/v1/keysningunaGenera o cambia tu clave. Se autentica con tu sesión en el sitio, no con una clave. La clave se muestra una sola vez.

Parámetros

Los nombres documentados van en snake_case. En MCP, los mismos nombres salvo donde se indica. En REST, un valor que no se entiende se ignora y ningún filtro produce un error; en GET /api/v1/jobs vuelve como null en filters de la respuesta. En MCP, los valores de una lista (region, level, currency, types, status y el canal de un seguimiento) y los límites numéricos (limit, offset, compare) se validan: otro valor se rechaza antes de llamar a la API.

GET /api/v1/jobs y search_jobs

ParámetroValoresPor defectoDescripción
qtextoningunoTexto libre sobre título, empresa, descripción y habilidades (hasta 100 caracteres). En MCP se llama query.
roleslugningunoFamilia de rol, en español o inglés: ingenieria-de-software o software-engineering.
regionMX, CO, AR, LATAMningunoMercado. LATAM es remoto en cualquier país de la región.
citytextoningunoCiudad, por ejemplo Ciudad de México, Bogotá, Buenos Aires.
remotetrueningunoSolo vacantes remotas.
min_salaryenteroningunoMínimo del rango publicado, en USD anuales. minSalary sigue funcionando como alias.
levelintern, entry, mid, senior, lead, execningunoNivel.
tagslugningunoHabilidad, por ejemplo typescript o payments.
certslugningunoCertificación.
sortrecent, payrecentOrden: más recientes o mejor pagadas (en USD).
currencyMXN, COP, ARS, USDningunoObsoleto desde 2026-10-06. Si llega con min_salary, el mínimo se lee en esa moneda y se convierte a USD.
limitentero20 (REST), 10 (MCP)Hasta 50 resultados por llamada.
offsetentero0Desplazamiento, hasta 10 000.

GET /api/v1/jobs/{id} y get_job

ParámetroValoresPor defectoDescripción
idid o slugningunoLo devuelve search_jobs en los campos id y slug.

GET /api/v1/companies y get_companies

ParámetroValoresPor defectoDescripción
verifiedtrueningunoSolo empresas verificadas. En MCP se llama verifiedOnly.
limitentero30Hasta 100.

GET /api/v1/salaries y get_salaries

ParámetroValoresPor defectoDescripción
roleslugningunoFamilia de rol, en español o inglés. Sin role no hay cifra resumen: no se mezclan áreas.
citytextoningunoCiudad. El mínimo sigue siendo 10 datos del área.
regionMX, CO, ARningunoMercado. También se acepta country.
levelintern, entry, mid, senior, lead, execningunoNivel. El mínimo sigue siendo 10 datos del área.
compareenteroningunoUna compensación anual para ubicarla en la distribución; devuelve su percentil.
currencyMXN, COP, ARS, USDUSDMoneda de compare. No filtra: la estadística siempre es en USD.

GET /api/v1/feed y get_feed

ParámetroValoresPor defectoDescripción
limitentero30 (REST), 20 (MCP)Hasta 100.
typeslista separada por comastodosSolo estos tipos: JOB_NEW, JOB_BOOSTED, SALARY_APPROVED, ARTICLE_PUBLISHED, COMPANY_VERIFIED, COMPANY_JOINED, EVENT_PUBLISHED. En REST, un nombre desconocido se ignora; en MCP se rechaza.

POST /api/v1/apply y submit_application

ParámetroValoresPor defectoDescripción
jobid o slugningunoObligatorio.
nametextoningunoObligatorio, de 2 a 100 caracteres.
emailcorreoel de la cuentaSolo con la clave maestra. Una clave personal siempre postula con el correo de su cuenta.
resume_urlURL httpsningunoEnlace al CV. Se puede omitir si la cuenta tiene un CV principal.
linkedin_urlURL httpsningunoPerfil de LinkedIn.
notetextoningunoMensaje para la empresa, hasta 2000 caracteres.
confirmtrueningunoSolo en MCP. Sin confirm: true la herramienta responde 409 confirmation_required y no envía nada. REST no lo usa.

GET /api/v1/solo-pro y solo_pro_pipeline

ParámetroValoresPor defectoDescripción
limitentero25Hasta 100.
due1ningunoSolo las que ya tienen seguimiento pendiente. En MCP se llama dueOnly.

POST /api/v1/solo-pro y solo_pro_update

ParámetroValoresPor defectoDescripción
application_ididningunoEl id que devuelve solo_pro_pipeline. Si falta, se usa job o url.
jobid o slugningunoLa vacante, cuando no tienes el id de la postulación. No se combina con url.
urlURL httpsningunoUna vacante de otro sitio. Si es una vacante de la bolsa, se usa tu postulación a ella. La bolsa lee el título una sola vez, salvo en LinkedIn, Indeed, Glassdoor, OCC, Computrabajo y Bumeran: ahí envía title.
titletextoningunoCon url: el título de la vacante, hasta 200 caracteres. Obligatorio si la bolsa no puede leerlo.
companytextoningunoCon url: la empresa, hasta 120 caracteres.
descriptiontextoningunoCon url: la descripción de la vacante que pegas, hasta 20000 caracteres. Alimenta solo_pro_gap.
followupobjetoningunoUn seguimiento que hiciste: { at: fecha ISO 8601, channel: email, linkedin, phone u other, note: texto }. Se guardan los últimos 50; los más antiguos se descartan.
discardtrueningunoDescarta la postulación. La etapa no cambia.
statusSUBMITTED, REVIEWING, INTERVIEW, OFFER, REJECTED, HIRED, WITHDRAWNningunoSolo en postulaciones marcadas en el sitio de la empresa; las enviadas por la bolsa las actualiza la empresa. WITHDRAWN: retiraste tu postulación (no desde HIRED; una retirada solo se reabre desde tu panel).
followup_atfecha ISO 8601ningunoCon zona horaria, por ejemplo 2026-10-20T15:00:00-06:00.
notetextoningunoHasta 2000 caracteres.

GET /api/v1/solo-pro/gap y solo_pro_gap

ParámetroValoresPor defectoDescripción
jobid o slugningunoUna vacante de la bolsa. Indica job o url, no los dos.
urlURL httpsningunoUna vacante de otro sitio, registrada antes con solo_pro_update y su descripción.
ad_hoc_skillslistaningunoHabilidades que tienes y no están en tu perfil. En REST, separadas por comas. Si tu perfil no tiene habilidades, envía al menos una.

GET /api/v1/kit y kit_del_dia

ParámetroValoresPor defectoDescripción
regionMX, CO, AR, LATAMningunoMercado.
roleslugningunoFamilia de rol, en español o inglés.

GET /api/v1/recommendations y recommended_jobs

ParámetroValoresPor defectoDescripción
limitentero10De 1 a 20.

Límites

Postulaciones por cuenta y semana (ventana de 7 días, solo en el sitio; con CANDIDATE_LIMITS_LIVE=1)
Gratis 1 · Lite 5 · Fintech Insiders 5 · Pro sin límite
Llamadas MCP por clave (cada llamada de un lote cuenta; hasta 10 por lote)
120 por minuto
Llamadas REST por clave
120 por minuto
Postulaciones por clave (REST y MCP)
30 por hora
Claves generadas por dirección
3 por hora

Al superar un límite la respuesta es 429 rate_limited con retry_after_seconds y el encabezado Retry-After.

Errores

Todo error trae error (un código estable), hint (qué pasó y qué hacer, en español) y docs (el enlace a su fila aquí). Los errores de validación agregan details por campo; internal_error agrega request_id. En MCP, los errores de transporte (401, 405, 429, 500) llegan como errores JSON-RPC con el mismo texto y data.docs.

CódigoHTTPCuándoQué hacer
missing_or_invalid_api_key401No llegó una clave, o la clave no existe.Envía tu clave en el encabezado x-api-key. Genera una en tu panel, en API y MCP.
signin_required401POST /api/v1/keys sin sesión iniciada.Ingresa al sitio y genera la clave desde tu panel.
email_verification_required403La cuenta no confirmó su correo y el envío de correo está activo.Confirma tu correo para crear una clave API. Reenvía el correo desde tu panel.
rate_limited429Se superó el límite del recurso: 120 llamadas MCP por minuto y 120 llamadas REST por minuto por clave (cada llamada de un lote MCP cuenta), 30 postulaciones por hora, 3 claves por hora.Espera los segundos de retry_after_seconds (también en el encabezado Retry-After) e intenta de nuevo.
invalid_json400El cuerpo de un POST no es JSON.Envía un objeto JSON válido con Content-Type: application/json.
batch_too_large400Un lote JSON-RPC en /api/mcp trae más de 10 llamadas.Un lote admite hasta 10 llamadas y cada una cuenta para el límite por minuto. Divide el lote o envía una llamada a la vez.
validation_failed422Un campo de la postulación falta o no es válido.Revisa details: trae cada campo con su error. job es obligatorio; name tiene entre 2 y 100 caracteres.
job_not_found404El id o slug no corresponde a una vacante pública.No hay una vacante pública con ese id o slug. Usa el campo slug o id que devuelve search_jobs.
offsite_apply409La vacante se postula en el sitio de la empresa (apply_mode offsite).No se envió ninguna postulación: abre apply_url para postular en el sitio de la empresa.
confirmation_required409submit_application en MCP sin confirm: true.Pide confirmación a la persona y vuelve a llamar con confirm: true.
duplicate_application409Ese correo ya se postuló a esa vacante.No se envió nada nuevo. Revisa el estado en solo_pro_pipeline.
email_mismatch403Una clave personal envió un correo (email) distinto al de la cuenta.Con una clave de usuario solo puedes postular con el correo de tu cuenta. Omite email o usa el de tu cuenta.
evidence_required422La postulación no trae CV ni LinkedIn y la cuenta no tiene CV principal.Incluye resume_url o linkedin_url, o sube un CV principal a tu perfil.
user_key_required400El seguimiento de postulaciones (solo_pro_pipeline o solo_pro_update) con la clave maestra.El seguimiento de postulaciones pertenece a una persona: usa una clave personal, no la clave maestra.
invalid_body400Un campo de solo_pro_update no es válido, o llegaron job y url a la vez; o el cuerpo de /api/ai/v1/messages no sigue el subconjunto de texto de Messages.Revisa details: status debe ser una etapa válida y followup_at una fecha ISO 8601 con zona horaria. Indica job o url, no los dos.
missing_target400solo_pro_update o solo_pro_gap sin application_id, job ni url.Indica application_id, job o url.
application_not_found404La postulación no existe o no es de esta cuenta.No hay una postulación tuya con ese id o vacante. Revisa solo_pro_pipeline.
profile_skills_required422solo_pro_gap de una cuenta sin habilidades en el perfil y sin ad_hoc_skills.Agrega tus habilidades en tu perfil, o envía ad_hoc_skills con las que tienes. Sin ellas no se puede comparar.
description_unavailable422solo_pro_gap de una vacante sin descripción o sin habilidades que la bolsa reconozca, o de un enlace que no registraste antes con solo_pro_update.Registra el enlace con solo_pro_update (url y title) y pega la descripción de la vacante en description. Puedes enviar la descripción en una llamada posterior con el mismo url. Luego vuelve a llamar.
summary_too_large413El resumen del asistente que pegaste en una postulación pesa más de 16 KB.Pega un resumen de hasta 16 KB. Conserva lo esencial: la nota global, los puntos fuertes y lo que falta. El resumen anterior se queda guardado.
invalid_url400El campo url no es un enlace http o https válido.Envía el enlace completo de la vacante, con https://.
external_title_required422Una vacante externa llegó sin title y la bolsa no pudo leerlo, o el sitio no permite que lo lea (LinkedIn, Indeed, Glassdoor, OCC, Computrabajo, Bumeran).Envía title, y description si quieres el análisis de habilidades. La bolsa no vuelve a pedir esa página.
application_limit402La cuenta ya usó las postulaciones de su semana: 1 en Gratis, 5 en Lite y en Fintech Insiders, sin límite en Pro (ventana de 7 días; solo cuentan las postulaciones en el sitio). Solo se emite con CANDIDATE_LIMITS_LIVE=1.Lee resets_at (fecha ISO 8601 con zona) y espera a esa fecha, o abre upgrade_url para subir de nivel. No se guardó nada ni se descontó del límite por hora.
plus_required402Una generación de Fintech Insiders de una cuenta sin suscripción activa.Hazte miembro de Fintech Insiders desde tu pipeline o desde /precios. Las herramientas gratis de Premium no la necesitan.
quota_exhausted403Ya no se emite desde 2026-10-22: el presupuesto de IA reemplazó el tope de 30 generaciones (ver budget_exhausted).Trata budget_exhausted. Este código queda documentado para los clientes que ya lo manejan.
budget_exhausted402La cuenta ya usó el presupuesto de IA de su periodo de Fintech Insiders, o la generación pedida no cabe en lo que queda.Espera al siguiente periodo de tu suscripción. Una generación que falla no se descuenta.
ai_suspended403Un administrador pausó la IA de esta cuenta.Escríbenos desde /contacto si crees que es un error.
input_too_large413El CV y la vacante juntos pasan de lo que cabe en una llamada al modelo (100,000 tokens a lo más).Envía una versión más corta del CV, o de la descripción si la vacante es tuya.
scope_required403El token del agente no tiene el permiso que pide esta ruta (por ejemplo model en /api/ai/v1/messages).Pide a la bolsa un token con ese permiso. El token del agente nunca puede postular ni enviar mensajes por ti.
model_error502El modelo no respondió a tiempo o rechazó la solicitud, aun después de un reintento.Intenta de nuevo en unos minutos. Esa llamada no se descontó de tu presupuesto.
ceiling_reached503La IA de la bolsa llegó a su tope diario o mensual (UTC), o esa función no está activa: está en pausa hasta el día o el mes siguiente.Lee hint: dice si vuelve mañana o el día 1 del mes siguiente. Nada se descontó de tu presupuesto.
cv_text_required400Una generación sin el texto de tu CV: no lo pegaste y no hay un documento tuyo del que leerlo.Pega el texto de tu CV en cv_text, o indica un documento tuyo con document_id.
cv_too_large413El texto del CV pasa de 60,000 caracteres.Envía un CV más corto. Son unas 20 páginas de texto.
generation_failed502El modelo no respondió a tiempo o rechazó la solicitud, aun después de un reintento.Intenta de nuevo en unos minutos. Esa generación no se descontó de tu cuota.
duplicate_target400solo_pro_gap con job y url a la vez.Indica job o url, no los dos.
status_controlled_by_employer403Se intentó cambiar el estado de una postulación enviada por la bolsa.Esta postulación se envió por la bolsa: la empresa actualiza su estado. Puedes cambiar followup_at y note.
invalid_transition409solo_pro_update pidió WITHDRAWN sobre una postulación contratada (HIRED), o cambiar el estado de una postulación ya retirada (WITHDRAWN).Una postulación contratada no se puede retirar y una retirada no cambia de estado por la API: reábrela desde tu panel. Revisa details.from y details.to.
method_not_allowed405GET o DELETE en /api/mcp.El endpoint MCP es sin estado: envía JSON-RPC con POST.
internal_error500Falló algo de nuestro lado.Intenta de nuevo. Si persiste, escríbenos con el request_id de la respuesta.
unreachable503Solo el servidor local (stdio): no pudo conectar con FINTECHCAREERS_URL (conexión rechazada, DNS, certificado o 15 segundos sin respuesta). No hay estado HTTP.Revisa FINTECHCAREERS_URL y que el sitio responda, e intenta de nuevo. cause dice qué falló: TimeoutError es un sitio lento, un código como ECONNREFUSED o CERT_HAS_EXPIRED viene de la red.
invalid_response502Solo el servidor local (stdio): el sitio respondió algo que no es JSON, como la página de error de un proxy. status trae el estado HTTP que llegó.Revisa que FINTECHCAREERS_URL apunte al sitio de Fintech Careers, e intenta de nuevo en unos minutos.

Cambios

La v1 nunca quita ni renombra un campo de respuesta; los campos nuevos se suman. Un parámetro obsoleto sigue funcionando al menos seis meses desde su fecha aquí y solo se retira tras 90 días sin uso. Cada cambio en las herramientas MCP sube la versión del servidor.

  1. Descubrimiento: la API REST está descrita en OpenAPI 3.1 en /api/v1/openapi.json, generado de los mismos validadores que usan los endpoints; el servidor MCP en /.well-known/mcp.json; y /.well-known/security.txt dice dónde reportar una vulnerabilidad. robots.txt permite /api/mcp. Ningún endpoint ni esquema cambia; la versión sigue en 2.8.0.

    Qué hacer: Ninguna. Un generador de clientes puede leer el documento OpenAPI; un cliente MCP puede leer mcp.json en vez de esta guía.

  2. submit_application y POST /api/v1/apply responden application_limit (402, submitted: false) cuando la cuenta ya usó las postulaciones de su semana: 1 en Gratis, 5 en Lite y en Fintech Insiders, sin límite en Pro. El cuerpo trae tier, limit, used, window_days, resets_at (ISO 8601 con zona) y upgrade_url. Solo se emite con CANDIDATE_LIMITS_LIVE=1; hasta entonces nada cambia. Versión 2.8.0.

    Qué hacer: Qué hacer: lee resets_at y vuelve a intentarlo desde esa fecha, o abre upgrade_url para subir de nivel. No reintentes antes: la llamada rechazada no guarda nada ni descuenta del límite por hora.

  3. El servidor remoto (/api/mcp) y el paquete stdio (mcp-server) pasan de @modelcontextprotocol/sdk 1.30.0 a 1.32.1, que corrige el aviso GHSA-6qxp-vccf-f47h (el cliente OAuth del SDK podía enviar credenciales a un servidor de autorización elegido por el servidor MCP). Ninguna herramienta ni esquema cambia; la versión sigue en 2.7.0.

    Qué hacer: Ninguna. Este conector no usa el cliente OAuth del SDK. Si tu propio cliente MCP usa el SDK, actualízalo a 1.31 o superior.

  4. Nuevo: solo_pro_gap (GET /api/v1/solo-pro/gap), vacantes externas por url en solo_pro_update y el historial followups, next_followup_proposed, urgency y evaluation en solo_pro_pipeline. Versión 2.7.0.

    Qué hacer: Ninguna, es aditivo.

  5. solo_pro_update y POST /api/v1/solo-pro aceptan WITHDRAWN en status: retiraste tu postulación. No se puede retirar una postulación contratada (HIRED) ni cambiar el estado de una ya retirada: ambos casos responden invalid_transition (409) con details.from y details.to. Es un valor nuevo, ningún campo cambia. Versión 2.6.0.

    Qué hacer: Ninguna si no lo usas. Para retirar una postulación marcada en el sitio de la empresa, envía status WITHDRAWN; para reabrirla, hazlo desde tu panel.

  6. El feed (GET /api/v1/feed y get_feed) incluye eventos (type EVENT_PUBLISHED) y noticias con resumen propio (type ARTICLE_PUBLISHED, url en /noticia/...). Nuevo parámetro opcional types para quedarte solo con vacantes, por ejemplo types=JOB_NEW,JOB_BOOSTED. La respuesta añade el campo types. Versión 2.5.0.

    Qué hacer: Si tu cliente trata cada elemento del feed como vacante, filtra por type o pide types=JOB_NEW,JOB_BOOSTED. Nada se quita ni se renombra.

  7. get_salaries y GET /api/v1/salaries siguen la regla de salarios: promedio, mediana y percentiles solo para un área (role) con 10 datos o más. Sin role, o con menos, la respuesta trae insufficient_data, n, min_n y el campo nuevo reason (mixed_areas o below_min_n). Versión 2.4.0.

    Qué hacer: Envía role. Con insufficient_data, muestra la n y no des una cifra.

  8. Las vacantes tienen direcciones en español (título, empresa y lugar). slug y url traen la nueva; un slug anterior sigue funcionando en get_job, submit_application y solo_pro_update, y su página responde 308.

    Qué hacer: Ninguna. Si guardas slugs, puedes reemplazarlos por el que devuelve la respuesta.

  9. Límites: cada llamada de un lote JSON-RPC en /api/mcp cuenta para las 120 por minuto, un lote admite hasta 10 llamadas (más responde 400 batch_too_large) y un cuerpo hasta 64 KB. Las llamadas REST con clave también tienen límite: 120 por minuto. Versión 2.3.1.

    Qué hacer: Si tu cliente envía lotes, divídelos en lotes de 10 o menos. Ante 429 rate_limited, espera retry_after_seconds.

  10. Nuevo: GET /api/v1/recommendations y la herramienta MCP recommended_jobs, con el motivo de cada vacante. Versión 2.3.0.

    Qué hacer: Ninguna. Es un endpoint nuevo; los demás no cambian.

  11. Nueva herramienta y prompt kit_del_dia (GET /api/v1/kit): una vacante al día con apply_url etiquetado. Las marcas EMPLOYER_TEXT ya no pueden cerrarse desde el texto del empleador. Versión 2.2.0.

    Qué hacer: Ninguna. Es aditivo.

  12. salary trae period (YEAR o MONTH): la cifra del empleador se publica en su propio periodo. salary_usd sigue siendo anual.

    Qué hacer: Si muestras salary.min o salary.max, acompáñalos de salary.period. Para comparar, usa salary_usd.

  13. submit_application en MCP exige confirm: true y responde 409 confirmation_required sin él. POST /api/v1/apply no cambia. Versión 2.1.0.

    Qué hacer: Si tu cliente MCP postula, pide confirmación a la persona y vuelve a llamar con confirm: true.

  14. min_salary es el nombre documentado del filtro de pago. minSalary sigue aceptado como alias.

    Qué hacer: Ninguna. El alias no se retirará antes de 2027-04-06 y solo cuando lleve 90 días sin uso.

  15. Todo error trae error, hint (en español) y docs (el enlace a esta tabla). internal_error trae request_id.

    Qué hacer: Ninguna. Los campos anteriores se conservan; muestra hint a la persona y guarda request_id para reportar.

  16. currency en la búsqueda queda obsoleto: el pago se filtra en USD.

    Qué hacer: Envía min_salary en USD. Si sigues enviando currency, el mínimo se convierte. No se retirará antes de 2027-04-06.

  17. get_job en MCP envuelve description_markdown y company.about entre marcas EMPLOYER_TEXT: son texto del empleador, no instrucciones.

    Qué hacer: Ninguna en REST. En MCP, lee el contenido como datos.

¿Algo no funciona? Escríbenos a info@fintech.us.com con el request_id del error.