🆕Semantic Search
Semantic search expands Elasticsearch DSL queries to include job titles with equivalent meaning, even when the wording differs. A search for "Software Engineer" can automatically surface results for "Software Developer" or "Senior Software Engineer" without modifying the query format.
It is activated via dedicated /semantic_search/es_dsl endpoints – drop-in replacements for the standard /search/es_dsl endpoints. The minimum confidence score for synonym inclusion is controlled by the threshold parameter.
Semantic search endpoints have higher latency than their standard counterparts, as each request triggers an additional model call before query execution.
Same request format
No changes to Elasticsearch DSL query structure. Drop-in replacement for existing /search/es_dsl endpoints.
Broader recall
Semantically equivalent titles are matched automatically, reducing gaps caused by wording variations across profiles and postings.
Full transparency
Every injected synonym is listed in the response metadata with its confidence score and boost status.
Endpoints
Each semantic search endpoint request matches standard multi-source /search/es_dsl endpoints, with synonym search performed before executing the query.
POST /v2/company_multi_source/semantic_search/es_dsl
POST /v2/company_multi_source/search/es_dsl
POST /v2/employee_multi_source/semantic_search/es_dsl
POST /v2/employee_multi_source/search/es_dsl
POST /v2/job_multi_source/semantic_search/es_dsl
POST /v2/job_multi_source/search/es_dsl
Supported fields for semantic search
Synonym injection is triggered when a match_phrase clause targets one of the data fields below. Other fields pass through unchanged.
POST /v2/company_multi_source/semantic_search/es_dsl
active_job_postings[].job_posting_title
POST /v2/employee_multi_source/semantic_search/es_dsl
active_experience_title
experience[].position_title
headline
POST /v2/job_multi_source/semantic_search/es_dsl
title
Request parameters
Control semantic search with additional request parameters to get more relevant results.
threshold
Float
0.9
Minimum confidence score required for a synonym to be injected
boost
Float
0.1
Controls the weight of seniority signals in the relevance scoring
How it works
Response
Response is similar to existing /search/es_dsl endpoints with an additional metadata block that includes information about applied semantic search and IDs presented in results field.
metadata
Information about applied semantic search
Array of struct
metadata[].threshold
Value set in the request
Float
metadata[].synonyms_injected
List of added synonyms to the query. If no synonyms were injected – returned as an empty array
Array of struct
metadata[].synonyms_injected[].field
Data field where original and synonym values were applied
String
metadata[].synonyms_injected[].original
Original field value
String
metadata[].synonyms_injected[].synonym
Added synonym value based on the original value and threshold
String
metadata[].synonyms_injected[].score
Confidence score
Float
metadata[].synonyms_injected[].boosted
Identifies whether the boost was applied
Boolean
results
Returned matching IDs
Array of integers
Last updated
Was this helpful?