filter_conditions 는 요청 본문의 단일 옵션 배열입니다. 각 항목은 하나의 다중 값 필터를 기본 OR(“아무거나 일치”) 동작에서 AND(“전부 일치”) 로, 혹은 그 반대로 승격시킵니다. 나열되지 않은 필터는 기본값을 유지합니다.
스키마
각 항목의
key 와 operator 는 모두 필수입니다. operator 만 있는 항목은 조용히 무시됩니다 — 전역 재정의 스위치는 없습니다.왜 중요한가
기본 연산자가 OR 인 이유는 대부분의 잠재 고객 발굴 워크플로우가 넓은 도달을 원하기 때문입니다: “어느 한 국가의 사람들”、“어느 한 버티컬 태그가 붙은 회사들”. 정밀 타깃팅 — “Salesforce + HubSpot + Marketo 를 전부 사용” — 에는 AND 가 필요합니다.
잘못 선택했을 때의 비용:
- AND 가 필요한데 OR: 응답이 과도하게 회수됩니다 — 한 태그만 일치하는 회사도 보입니다. 알아채기 쉽지만 결과 품질을 해칩니다.
- OR 이 필요한데 AND: 응답이 부족하게 회수됩니다 — 다중 값 AND 필터는 보통 거의 0 행을 반환합니다. 실제 배열에 요청한 모든 값이 들어 있는 경우는 드물기 때문입니다. 알아채기 쉽고, 쿼리가 망가진 것처럼 보입니다.
&&(중첩)、AND 는 @>(포함). 둘 다 인덱스 친화적이라, 비용 차이는 쿼리 지연이 아니라 결과 크기 에서 나타납니다.
지원 키
지원 키 집합은 호출하는 엔드포인트에 따라 다릅니다:| 키 | /companies/search | /people/search | /companies/advertisements/search | 기본값 | and 의 의미 |
|---|---|---|---|---|---|
technologies | ✓ | ✓ | — | OR | 리스트의 모든 기술 보유 |
categories | ✓ | ✓ | — | OR | 모든 카테고리 태그 |
verticals | ✓ | ✓ | — | OR | 모든 버티컬 소속 |
vertical_categories | ✓ | ✓ | — | OR | 모든 버티컬 카테고리 소속 |
vertical_sub_categories | ✓ | ✓ | — | OR | 모든 버티컬 서브카테고리 소속 |
keywords | ✓ | ✓ | — | OR | 설명에 모든 키워드 포함 |
places | ✓ | ✓ | — | OR | 모든 장소에 위치 |
exclude_places | ✓ | ✓ | — | OR | 모든 장소에서 제외 |
advertisement_target_locations | ✓ | — | — | OR | 광고가 모든 국가 타깃 (회사 엔드포인트) |
advertisement_exclude_target_locations | ✓ | — | — | OR | 광고가 모든 국가 제외 |
advertisement_search_terms | ✓ | — | — | OR | 광고 카피가 모든 용어 포함 |
job_exclude_locations | ✓ | — | — | OR | 채용 공고가 모든 위치 제외 |
social_media | — | ✓ | — | OR | 인물이 나열된 모든 SNS 보유 |
target_locations | — | — | ✓ | OR | 광고가 모든 국가 타깃 (광고 엔드포인트) |
exclude_target_locations | — | — | ✓ | OR | 광고가 모든 국가 제외 |
레시피
- 모든 기술 사용 (회사)
- 아무 위치나 + 제외
- 다중 지역 광고 캠페인
- 다중 스택 회사의 인물
목표: Python、PostgreSQL、Kubernetes 를 전부 사용하는 회사 — 하나만이 아닙니다.
filter_conditions 항목을 빼면 검색 범위가 셋 중 어느 하나라도 로 확장됩니다.흔한 실수
key 를 빠뜨리고 operator 만 보내기
key 를 빠뜨리고 operator 만 보내기
전역 “기본 연산자” 토글은 없습니다. 모든 항목은 특정 필터를 지정해야 합니다:
항목들이 결합된다고 가정하기
항목들이 결합된다고 가정하기
항목들은 키별로 독립적인 재정의입니다 — 서로 연쇄되지 않습니다.
technologies 와 verticals 를 함께 나열해도 둘 사이에 불 식이 만들어지지 않습니다. 각각이 자기 배열의 연산자만 설정합니다.필터 키 사이 의 결합은 항상 AND 입니다(모든 필터가 일치해야 합니다). filter_conditions 로 두 개의 다른 필터 차원을 OR-결합할 수는 없습니다. 진짜 “다른 필터들의 OR” 검색이 필요하다면 두 번 요청을 보내고 클라이언트 측에서 병합하세요.긴 배열에 AND 사용
긴 배열에 AND 사용
AND 는
column @> ARRAY[…] — 모든 값이 존재해야 합니다. 8 개 이상이 되면 거의 항상 0 행을 얻게 됩니다. 실세계 태깅이 희소하기 때문이죠. AND-재정의된 배열은 2-4 값으로 유지하고, 탐색 또는 카테고리 수준 필터링은 OR 로./people/search 회사 필터에서 잘못된 키
/people/search 회사 필터에서 잘못된 키
/people/search 에서 인물 API 이름은 company_places / company_locations 입니다. 그러나 filter_conditions[].key 안에서는 엔진 이름 — places、locations 을 써야 합니다. 리매핑은 filter_conditions 가 참조되기 전에 내부적으로 끝납니다.참고
필터 개요
멘탈 모델 —
filter_conditions 가 첫 정거장이라면 여기서 시작하세요.인물 + 회사 필터
/people/search 에 회사 필터를 겹쳐 사용하는 방법, 키 리매핑 포함.회사 검색 레퍼런스
/companies/search 의 전체 요청 스키마(company_filter_conditions 포함).인물 검색 레퍼런스
/people/search 의 전체 요청 스키마(people_filter_conditions 포함).
