Find email addresses or phone numbers with a highly reliable API.
The Search API allows you to search for individuals or companies in the SignalHire database using a wide variety of filters. This API can return multiple results depending on the search criteria provided, such as job title, location, or industry. It is highly useful for lead generation, market research, and talent acquisition.
API Endpoint:
POST https://www.signalhire.com/api/v1/candidate/searchByQuery
The searchByQuery
endpoint is the request for searching profiles in the SignalHire database.
It enables users to filter candidates based on multiple criteria such as location, job title, and keywords.
The response includes a scrollId field and the first batch of profiles. The scrollId
can be used to retrieve subsequent batches of results using the second part of this API: Scroll Search.
Access to the Search API can be obtained only by contacting support@signalhire.com.
Limitations: Please note that only three concurrent Search API requests are allowed at a time.
Parameter | Type | Description |
---|---|---|
currentTitle | string | A Boolean query string specifying job titles to search for. |
currentPastTitle | string | A Boolean query string specifying current or past job titles to search for. |
location | string | Specifies the geographical area for the search. Supports a single city, state or country. |
currentCompany | string | A Boolean query string specifying current company names to search for. |
currentPastCompany | string | A Boolean query string specifying current or past company names to search for. |
fullName | string | Search by full name. |
keywords | string | A Boolean query string for filtering based on skills or other attributes (description, education etc). |
industry | string | Search by industry category (allowed values listed below). |
yearsOfCurrentExperienceFrom | number | Minimum years of experience in the current role and company. |
yearsOfCurrentExperienceTo | number | Maximum years of experience in the current role and company. |
yearsOfCurrentPastExperienceFrom | number | Minimum years of experience in the current and past roles and companies. |
yearsOfCurrentPastExperienceTo | number | Maximum years of experience in the current and past roles and companies. |
openToWork | boolean | Search by open to work status. |
size | number | Number of records to return in the response (default: 10; must be between 1 and 100). |
Click to expand
The title, company and keywords parameters support Boolean search operators to refine the query more effectively. Supported operators:
When you make a request to the Search API, the response will include several important pieces of data that allow you to manage and paginate through search results, especially when dealing with large datasets. The main components of the response are:
requestId
allows you to continue the search process from where you left off.
size
parameter set in the request. If the number of
matching profiles is larger than the batch size, the remaining profiles will be available in subsequent batches.
profiles
array includes information about the candidate, such as their name,
contact information, skills, and other relevant data.
scrollId
is included in the response if there are more profiles to be fetched.
This is especially useful when the total number of results exceeds the size
parameter
set in the request (i.e., the number of results per batch).
scrollId
must be passed in the next request as part
of the query. This allows you to paginate through large result sets without needing to start from the beginning each time.
By using requestId and scrollId, you can efficiently handle large result sets, fetching additional batches of profiles without starting over each time. This is particularly useful when dealing with a large number of matching records and allows for smooth pagination through the results.
curl -X POST --include -H 'apikey: your_secret_api_key' \
https://www.signalhire.com/api/v1/candidate/searchByQuery \
--data '{"currentTitle":"(Software AND Engineer) OR Developer","location":"New York, New York, United States","keywords": "PHP AND JavaScript"}'
This example searches for profiles in New York, who have PHP and JavaScript in their skillset or description and have job titles containing Software Engineer or Developer.
{
"requestId": 3,
"total": 12,
"scrollId": "abc123", // Only included if total > size
"profiles": [
{
"uid": "10000000000000000000000000001006",
"fullName": "Aaron Smith",
"location": "London, United Kingdom",
"experience": [
{
"company": "Saward Dawson",
"title": "Accountant"
}
],
"skills": [
"Accounting",
"Analysis"
],
"contactsFetched": null, // date of the last contacts fetch or null
"openToWork": false
}
]
}
API Endpoint:
POST https://www.signalhire.com/api/v1/candidate/scrollSearch/{requestId}
This endpoint is used to fetch subsequent batches of results based on the scrollId returned from a
previous searchByQuery request. The requestId
from the initial search response must also be used as part of the URL.
Parameter | Type | Required | Description |
---|---|---|---|
requestId | number | Yes | Id of the initial searchByQuery request |
scrollId | string | Yes | The scrollId from the previous search query |
curl -X POST --include -H 'apikey: your_secret_api_key' \
https://www.signalhire.com/api/v1/candidate/scrollSearch/3 --data '{"scrollId":"abc123"}'
{
"requestId": 3,
"total": 12,
"scrollId": "xyz456",
"profiles": [
{
"uid": "10000000000000000000000000001001",
"fullName": "John Smith",
"location": "Brisbane Area, Australia",
"experience": [
{
"company": "Super company",
"title": "PHP Developer"
}
],
"skills": ["PHP", "HTML", "Management"],
"openToWork": true
}
]
}
Status Code | Description |
---|---|
200 | Successful request. Results are returned. |
402 | Daily search quota exceeded. |
404 | Invalid or expired scrollId. Example response: {"error": "Invalid scroll"} |
429 | Only three requests are allowed at the same time. |
scrollId
expires after 15 seconds. Make sure subsequent requests are sent within this timeframe.scrollId
field to fetch additional results batch by batch.requestId
from the initial searchByQuery response and scrollId
are mandatory.total
field always represents the total number of matching results across all batches, not the size of the current batch.