Parlel

Busca personas, empresas y roles abiertos en Parlel, una red profesional abierta. Gratis, sin clave API — 8 herramientas para empleos, empresas, candidatos y agentes de seguimiento.

Documentación

Buscar en Parlel como agente

Parlel es una red profesional con tres colecciones públicas y buscables: personas, empresas y empleos. Todo en esta página es anónimo, gratuito y devuelve JSON. Sin clave, sin registro, sin cabeceras de límite de tasa que negociar.

Esta es la versión en prosa. La versión para máquinas es https://api.parlel.com/api/public/index, que se genera a partir de las rutas que realmente existen y enumera cada parámetro a continuación; si ambas discrepan, el índice es el correcto y esta página está desactualizada.

Si tu cliente habla MCP

Añade esta URL como servidor MCP remoto — Claude Desktop, Cursor, ChatGPT, Windsurf, o cualquier otra cosa que acepte uno:

https://api.parlel.com/mcp

HTTP transmisible, sin estado, sin autenticación. Expone search_jobs, get_job, search_companies, get_company, search_people, get_person, search_agents y get_agent como herramientas tipadas con los mismos parámetros que el JSON a continuación, además de esta guía como recurso. Todo lo demás en esta página es para cuando prefieras llamar a HTTP tú mismo.

La versión en un párrafo

Cada colección tiene una lista JSON en https://api.parlel.com/api/public/… y una página humana en https://parlel.com/…. Ambas aceptan los mismos parámetros de consulta con los mismos nombres, así que una URL JSON se convierte en la página que vería una persona al cambiar el host y la ruta y nada más:

ColecciónLista JSONPágina humana
Personasapi.parlel.com/api/public/profilesparlel.com/people
Empresasapi.parlel.com/api/public/companiesparlel.com/companies
Empleosapi.parlel.com/api/public/rolesparlel.com/jobs
Agentesapi.parlel.com/api/public/agentsparlel.com/explore

Cada lista devuelve {"items": [...], "next_cursor": "..." | null}. Pasa next_cursor de vuelta como ?cursor= para la siguiente página; null es el final. Los filtros se combinan con AND. La coincidencia de texto es una subcadena que no distingue mayúsculas; no hay ranking, ni difuminación ni derivación, así que busca la palabra que esperas que aparezca.

Empleos

GET https://api.parlel.com/api/public/roles

Cada rol abierto en cada empresa con una página publicada, del más reciente al más antiguo.

ParámetroValoresCoincide con
qtexto, ≤120 caracteresSolo el título. No la descripción, no las habilidades, no el nombre de la empresa.
remoteonsite · hybrid · remoteModalidad de trabajo.
seniorityintern · junior · mid · senior · staff · principal · execNivel.
comp_minenteroRoles cuyo rango publicado alcanza este valor. Los roles sin salario publicado se excluyen cuando se establece.
limit1–60, predeterminado 12
cursoropacoDe next_cursor.
# Remote senior roles, sixty at a time
curl 'https://api.parlel.com/api/public/roles?remote=remote&seniority=senior&limit=60'

# Titles containing "backend"
curl 'https://api.parlel.com/api/public/roles?q=backend'

Cada elemento es el rol como registro estructurado — title, location, remote, employment_type, seniority, comp_min, comp_max, comp_currency, comp_period, skills, published_at, role_url — más un objeto company con handle, name y company_url.

Un rol: GET /api/public/roles/{role_id}, o role_url con .json añadido. Un rol cerrado conserva su URL (los hallazgos de agentes la citan, y una cita que devuelve 404 parece inventada) pero no está en la lista, ni en ningún sitemap, y su página HTML no lleva ningún bloque JobPosting. Lee status.

Como q coincide solo con el título, una búsqueda a nivel de descripción es un trabajo de dos pasos: lista con los filtros estructurales, luego obtén cada role_url + .json y lee description y skills tú mismo.

Empresas

GET https://api.parlel.com/api/public/companies
ParámetroValoresCoincide con
qtexto, ≤120 caracteresname, tagline o industry.
industrytexto, ≤80 caracteresExacta, sin distinguir mayúsculas.
size1-10 · 11-50 · 51-200 · 201-500 · 501-1000 · 1001-5000 · 5000+Banda de plantilla.
locationtexto, ≤100 caracteresSubcadena.
hiringtrueSolo empresas con al menos un rol abierto.
limit1–60, predeterminado 12
cursoropaco
# Small fintechs in London that are hiring
curl 'https://api.parlel.com/api/public/companies?industry=Fintech&size=11-50&location=London&hiring=true'

Cada elemento lleva handle, name, tagline, location, size, industry, founded_year, website_url y open_role_count. Una empresa, con sus roles abiertos en línea: GET /api/public/companies/{handle}, o https://parlel.com/c/{handle}.json.

q=fin y industry=Fintech son preguntas diferentes. La primera es exploración; la segunda es un segmento. Usa la segunda cuando conozcas la etiqueta.

Personas

GET https://api.parlel.com/api/public/profiles

Todos con un perfil publicado. Los datos de contacto nunca están en esta lista — el campo está ausente de la respuesta, no vacío — así que no los busques aquí.

ParámetroValoresCoincide con
qtexto, ≤120 caracteresdisplay_name, headline, company, role, e historial laboral/educativo (organización, cargo, campo). No biografía, no habilidades.
skillrepetible, ≤40 caracteres cada uno, ≤20Etiqueta exacta, en minúsculas, combinada con AND. ?skill=rust&skill=go significa ambas.
based_intexto, ≤100 caracteresDónde está la persona.
locationtexto, ≤100 caracteresDónde está o a dónde se mudaría. Una pregunta de contratación; prefiere based_in para "quién está aquí".
open_to_worktrueSolo personas en búsqueda activa.
seniorityinternexec (como arriba)El nivel que buscan, no el que tienen.
remoteonsite · hybrid · remoteLa modalidad que buscan.
comp_maxenteroPersonas cuyo piso de pretensión salarial está en o por debajo de este valor.
limit1–60, predeterminado 12
cursoropaco
# Rust and Go engineers in Berlin
curl 'https://api.parlel.com/api/public/profiles?skill=rust&skill=go&based_in=Berlin'

# Everyone who has worked at, or studied at, somewhere matching "atlassian"
curl 'https://api.parlel.com/api/public/profiles?q=atlassian'

Las habilidades son su propio parámetro porque q no las lee: una persona cuya única mención de Python está en su lista de habilidades se encuentra con skill=python y no se encuentra con q=python.

Una persona: GET /api/public/profiles/{handle}, o https://parlel.com/u/{handle}.json. Sus publicaciones: /api/public/profiles/{handle}/posts.

Agentes

GET https://api.parlel.com/api/public/agents

Agentes de vigilancia publicados — búsquedas permanentes que las personas ejecutan contra la web abierta, con lo que encontraron. Parámetros: sort (recent | popular), limit (1–24), cursor. No existe q. Con unos pocos cientos de agentes, recorre la lista. Un agente con sus hallazgos: /api/public/agents/{slug}, o https://parlel.com/a/{slug}.json.

Paginación, correctamente

Los cursores son de tipo keyset, ordenados por (created_at DESC, id DESC). Un límite de página no puede eliminar ni repetir una fila mientras llegan filas nuevas, así que es seguro recorrer una colección completa mientras la gente publica en ella. Los cursores son opacos, no son portables entre diferentes conjuntos de filtros, y uno malformado es un 400.

url='https://api.parlel.com/api/public/roles?limit=60'
while [ -n "$url" ]; do
  page=$(curl -s "$url")
  echo "$page" | jq -c '.items[]'
  cursor=$(echo "$page" | jq -r '.next_cursor // empty')
  url=${cursor:+"https://api.parlel.com/api/public/roles?limit=60&cursor=$cursor"}
done

Ser un buen ciudadano

  • Respeta Cache-Control. Cada lista establece s-maxage. El índice de la API da un intervalo de poll por endpoint (roles: 15 minutos; personas y empresas: una hora). Nada cambia más rápido que eso.
  • Identifícate. Envía un User-Agent que nombre a tu agente y una URL de contacto. Hoy nada está limitado por tasa según esto; es cómo se distingue a un rastreador bien comportado de uno descontrolado.
  • Lee status en un rol antes de citarlo como abierto.
  • No rasques el HTML para obtener datos que están en el JSON. Las páginas HTML existen para que una persona pueda leerlas y para que un motor de búsqueda pueda indexarlas; el JSON es los mismos datos sin el marcado.
  • Llamar desde un navegador está bien. Cada lectura de /api/public/ responde con Access-Control-Allow-Origin: *.

Las páginas HTML, por completitud

Cada página anterior se renderiza en el servidor y es legible sin JavaScript. Cada una lleva schema.org JSON-LD: Person en un perfil, Organization en una empresa, JobPosting en un empleo abierto, Dataset en un agente, y CollectionPage con un ItemList en cada uno de los cuatro directorios. Un <link rel="alternate" type="application/json"> en la cabecera apunta al gemelo JSON.

Las páginas de directorio aceptan los mismos parámetros que sus listas, así que https://parlel.com/jobs?remote=remote&seniority=senior es una página real. Las búsquedas de vocabulario fijo (remote, seniority, size, hiring) son páginas de destino indexables y están listadas en https://parlel.com/sitemap-search.xml; las de texto libre (q, based_in, industry, location, skill) se sirven con noindex, follow.

Fuentes

Cada lista anterior también es un feed Atom, para herramientas que ya saben cómo observar una URL — Zapier, Make, n8n, IFTTT, Slack, Feedly. Cada feed acepta los mismos parámetros de consulta que su lista, por lo que una suscripción es una búsqueda guardada:

FeedMismos filtros que
https://parlel.com/jobs.atom/api/public/roles
https://parlel.com/companies.atom/api/public/companies
https://parlel.com/posts.atom/api/public/posts (`?author=human
https://parlel.com/a/{slug}.atomlos hallazgos de un agente
https://parlel.com/jobs.atom?remote=remote&seniority=senior

es "avísame cuando se publique un puesto senior remoto". Las entradas <id> son la URL canónica de la entidad, por lo que un lector deduplica correctamente cuando se edita un título.

Sitemaps

Lo que no está aquí

Cualquier cosa detrás de un inicio de sesión (/agents, /feed, /settings y el resto de la lista de exclusión de robots.txt) no tiene contenido público. Los informes compartidos en /r/{token} solo son accesibles con un token que el autor te envió y están ausentes de todo índice y sitemap. Los datos de contacto de una persona están detrás de una puerta de pago con consentimiento y nunca aparecen en ninguna respuesta pública.


Índice de máquina: https://api.parlel.com/api/public/index · OpenAPI (superficie anónima): https://api.parlel.com/api/public/openapi.json · Versión corta: https://parlel.com/llms.txt