Skip to main content
filter_conditions es un único array opcional en el cuerpo de la solicitud. Cada entrada promueve un filtro multivalor del comportamiento OR (“coincide con cualquiera”) por defecto a AND (“coincide con todos”), o viceversa. Los filtros que no listes conservan su comportamiento por defecto.

Esquema

key y operator son obligatorios en cada entrada. Una entrada con solo operator se ignora silenciosamente — no existe una anulación global.

Por qué importa

El operador por defecto es OR porque la mayoría de los flujos de prospección buscan un alcance amplio: “personas en cualquiera de estos países”, “empresas etiquetadas con cualquiera de estos verticales”. Para segmentación de alta precisión — “usa todas de Salesforce + HubSpot + Marketo” — necesitas AND. El costo de equivocarse:
  • Querías AND, obtuviste OR: la respuesta sobre-recupera — ves empresas que coinciden con solo una etiqueta, no con el conjunto completo. Fácil de detectar, cuesta calidad de resultado.
  • Querías OR, obtuviste AND: la respuesta sub-recupera — normalmente devuelve casi cero filas en filtros multivalor con AND, porque los arrays del mundo real rara vez contienen todos los valores solicitados. Fácil de detectar, parece una consulta rota.
Internamente, el motor compila tu elección de operador a un operador nativo de array de Postgres: && (solapamiento) para OR, @> (contiene) para AND. Ambos son compatibles con índices, así que la diferencia de costo está en el tamaño del resultado, no en la latencia de la consulta.

Claves admitidas

El conjunto exacto de claves depende del endpoint que estés llamando:
Las claves anteriores reflejan los arrays enum en la especificación OpenAPI (company_filter_conditions, people_filter_conditions, ads_filter_conditions). Enviar una clave no admitida para un endpoint se ignora silenciosamente.

Recetas

Objetivo: empresas que usan todas Python, PostgreSQL y Kubernetes — no solo una.
Quita la entrada filter_conditions para ampliar la búsqueda a cualquiera de las tres.

Errores comunes

No existe un interruptor global de “operador por defecto”. Cada entrada debe nombrar un filtro específico:
Las entradas son anulaciones independientes por clave — no se encadenan. Listar tanto technologies como verticals no crea una expresión booleana entre ellas; cada una simplemente establece el operador de su propio array.La combinación entre claves de filtro siempre es AND (todos los filtros deben coincidir). No puedes combinar con OR dos dimensiones de filtro distintas mediante filter_conditions. Si necesitas una búsqueda con un verdadero OR entre filtros diferentes, ejecuta dos solicitudes y combina los resultados en el cliente.
AND es column @> ARRAY[…] — cada valor debe estar presente. Con 8 o más valores casi siempre obtienes cero filas porque el etiquetado en el mundo real es disperso. Mantén los arrays con AND anulado entre 2 y 4 valores; usa OR para filtrado exploratorio o a nivel de categoría.
En /people/search, el nombre en la API de personas es company_places / company_locations. Pero dentro de filter_conditions[].key debes usar el nombre del motorplaces, locations. El remapeo ocurre internamente antes de que se consulte filter_conditions.
Tabla de remapeo completa en la página Personas + Filtros de empresa.
Ante la duda, omite filter_conditions primero y verifica el conteo de resultados frente a tus expectativas. Añade anulaciones solo para los filtros donde el comportamiento por defecto no coincide con tu intención — esto mantiene el payload de la solicitud más pequeño y fácil de depurar.

Ver también

Resumen de filtros

El modelo mental — empieza aquí si filter_conditions es tu primera parada.

Personas + Filtros de empresa

Cómo incorporar filtros de empresa en /people/search, incluyendo el remapeo de claves.

Referencia de Company Search

Esquema completo de la solicitud para /companies/search (incluye company_filter_conditions).

Referencia de People Search

Esquema completo de la solicitud para /people/search (incluye people_filter_conditions).
Última modificación el 4 de septiembre de 2026