curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/vacanies/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "Software Engineer",
"filters": [
{
"filter": "max_geo_distance",
"max_geo_distance": 50
},
{
"filter": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe"
},
{
"filter": "custom_property_is_in_list",
"property_name": "drivers_license",
"possible_values": [
"C",
"CE"
]
},
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
},
{
"filter": "external_id_is_in_list",
"external_ids": [
"external_id_1",
"external_id_2",
"external_id_3"
]
},
{
"filter": "is_active",
"is_active": true
},
{
"filter": "exclude_match_feedback",
"search_for": "employee_id",
"exclude_match_feedback": "thumbs_up"
}
],
"weights": [
{
"weight": "max_geo_distance",
"value": 0.1,
"full_score_distance": 5,
"zero_score_distance": 15
},
{
"weight": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe",
"operator": "eq",
"value": 0.04
},
{
"weight": "custom_property",
"property_name": "yearly_salary",
"property_value": 45000,
"operator": "gte",
"value": 0.04
}
],
"location": {
"lat": 51.0216707,
"lng": 3.6887328
}
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/vacanies/search"
payload = {
"text": "Software Engineer",
"filters": [
{
"filter": "max_geo_distance",
"max_geo_distance": 50
},
{
"filter": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe"
},
{
"filter": "custom_property_is_in_list",
"property_name": "drivers_license",
"possible_values": ["C", "CE"]
},
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
},
{
"filter": "external_id_is_in_list",
"external_ids": ["external_id_1", "external_id_2", "external_id_3"]
},
{
"filter": "is_active",
"is_active": True
},
{
"filter": "exclude_match_feedback",
"search_for": "employee_id",
"exclude_match_feedback": "thumbs_up"
}
],
"weights": [
{
"weight": "max_geo_distance",
"value": 0.1,
"full_score_distance": 5,
"zero_score_distance": 15
},
{
"weight": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe",
"operator": "eq",
"value": 0.04
},
{
"weight": "custom_property",
"property_name": "yearly_salary",
"property_value": 45000,
"operator": "gte",
"value": 0.04
}
],
"location": {
"lat": 51.0216707,
"lng": 3.6887328
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
text: 'Software Engineer',
filters: [
{filter: 'max_geo_distance', max_geo_distance: 50},
{
filter: 'custom_property',
property_name: 'direct_manager',
property_value: 'John Doe'
},
{
filter: 'custom_property_is_in_list',
property_name: 'drivers_license',
possible_values: ['C', 'CE']
},
{
filter: 'custom_property_contains_element',
property_name: 'industries',
property_value: 'electronics'
},
{
filter: 'external_id_is_in_list',
external_ids: ['external_id_1', 'external_id_2', 'external_id_3']
},
{filter: 'is_active', is_active: true},
{
filter: 'exclude_match_feedback',
search_for: 'employee_id',
exclude_match_feedback: 'thumbs_up'
}
],
weights: [
{
weight: 'max_geo_distance',
value: 0.1,
full_score_distance: 5,
zero_score_distance: 15
},
{
weight: 'custom_property',
property_name: 'direct_manager',
property_value: 'John Doe',
operator: 'eq',
value: 0.04
},
{
weight: 'custom_property',
property_name: 'yearly_salary',
property_value: 45000,
operator: 'gte',
value: 0.04
}
],
location: {lat: 51.0216707, lng: 3.6887328}
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/vacanies/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{tenant_name}.{region}.techwolf.ai/vacanies/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => 'Software Engineer',
'filters' => [
[
'filter' => 'max_geo_distance',
'max_geo_distance' => 50
],
[
'filter' => 'custom_property',
'property_name' => 'direct_manager',
'property_value' => 'John Doe'
],
[
'filter' => 'custom_property_is_in_list',
'property_name' => 'drivers_license',
'possible_values' => [
'C',
'CE'
]
],
[
'filter' => 'custom_property_contains_element',
'property_name' => 'industries',
'property_value' => 'electronics'
],
[
'filter' => 'external_id_is_in_list',
'external_ids' => [
'external_id_1',
'external_id_2',
'external_id_3'
]
],
[
'filter' => 'is_active',
'is_active' => true
],
[
'filter' => 'exclude_match_feedback',
'search_for' => 'employee_id',
'exclude_match_feedback' => 'thumbs_up'
]
],
'weights' => [
[
'weight' => 'max_geo_distance',
'value' => 0.1,
'full_score_distance' => 5,
'zero_score_distance' => 15
],
[
'weight' => 'custom_property',
'property_name' => 'direct_manager',
'property_value' => 'John Doe',
'operator' => 'eq',
'value' => 0.04
],
[
'weight' => 'custom_property',
'property_name' => 'yearly_salary',
'property_value' => 45000,
'operator' => 'gte',
'value' => 0.04
]
],
'location' => [
'lat' => 51.0216707,
'lng' => 3.6887328
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{tenant_name}.{region}.techwolf.ai/vacanies/search"
payload := strings.NewReader("{\n \"text\": \"Software Engineer\",\n \"filters\": [\n {\n \"filter\": \"max_geo_distance\",\n \"max_geo_distance\": 50\n },\n {\n \"filter\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\"\n },\n {\n \"filter\": \"custom_property_is_in_list\",\n \"property_name\": \"drivers_license\",\n \"possible_values\": [\n \"C\",\n \"CE\"\n ]\n },\n {\n \"filter\": \"custom_property_contains_element\",\n \"property_name\": \"industries\",\n \"property_value\": \"electronics\"\n },\n {\n \"filter\": \"external_id_is_in_list\",\n \"external_ids\": [\n \"external_id_1\",\n \"external_id_2\",\n \"external_id_3\"\n ]\n },\n {\n \"filter\": \"is_active\",\n \"is_active\": true\n },\n {\n \"filter\": \"exclude_match_feedback\",\n \"search_for\": \"employee_id\",\n \"exclude_match_feedback\": \"thumbs_up\"\n }\n ],\n \"weights\": [\n {\n \"weight\": \"max_geo_distance\",\n \"value\": 0.1,\n \"full_score_distance\": 5,\n \"zero_score_distance\": 15\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\",\n \"operator\": \"eq\",\n \"value\": 0.04\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"yearly_salary\",\n \"property_value\": 45000,\n \"operator\": \"gte\",\n \"value\": 0.04\n }\n ],\n \"location\": {\n \"lat\": 51.0216707,\n \"lng\": 3.6887328\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{tenant_name}.{region}.techwolf.ai/vacanies/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"Software Engineer\",\n \"filters\": [\n {\n \"filter\": \"max_geo_distance\",\n \"max_geo_distance\": 50\n },\n {\n \"filter\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\"\n },\n {\n \"filter\": \"custom_property_is_in_list\",\n \"property_name\": \"drivers_license\",\n \"possible_values\": [\n \"C\",\n \"CE\"\n ]\n },\n {\n \"filter\": \"custom_property_contains_element\",\n \"property_name\": \"industries\",\n \"property_value\": \"electronics\"\n },\n {\n \"filter\": \"external_id_is_in_list\",\n \"external_ids\": [\n \"external_id_1\",\n \"external_id_2\",\n \"external_id_3\"\n ]\n },\n {\n \"filter\": \"is_active\",\n \"is_active\": true\n },\n {\n \"filter\": \"exclude_match_feedback\",\n \"search_for\": \"employee_id\",\n \"exclude_match_feedback\": \"thumbs_up\"\n }\n ],\n \"weights\": [\n {\n \"weight\": \"max_geo_distance\",\n \"value\": 0.1,\n \"full_score_distance\": 5,\n \"zero_score_distance\": 15\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\",\n \"operator\": \"eq\",\n \"value\": 0.04\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"yearly_salary\",\n \"property_value\": 45000,\n \"operator\": \"gte\",\n \"value\": 0.04\n }\n ],\n \"location\": {\n \"lat\": 51.0216707,\n \"lng\": 3.6887328\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/vacanies/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"Software Engineer\",\n \"filters\": [\n {\n \"filter\": \"max_geo_distance\",\n \"max_geo_distance\": 50\n },\n {\n \"filter\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\"\n },\n {\n \"filter\": \"custom_property_is_in_list\",\n \"property_name\": \"drivers_license\",\n \"possible_values\": [\n \"C\",\n \"CE\"\n ]\n },\n {\n \"filter\": \"custom_property_contains_element\",\n \"property_name\": \"industries\",\n \"property_value\": \"electronics\"\n },\n {\n \"filter\": \"external_id_is_in_list\",\n \"external_ids\": [\n \"external_id_1\",\n \"external_id_2\",\n \"external_id_3\"\n ]\n },\n {\n \"filter\": \"is_active\",\n \"is_active\": true\n },\n {\n \"filter\": \"exclude_match_feedback\",\n \"search_for\": \"employee_id\",\n \"exclude_match_feedback\": \"thumbs_up\"\n }\n ],\n \"weights\": [\n {\n \"weight\": \"max_geo_distance\",\n \"value\": 0.1,\n \"full_score_distance\": 5,\n \"zero_score_distance\": 15\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\",\n \"operator\": \"eq\",\n \"value\": 0.04\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"yearly_salary\",\n \"property_value\": 45000,\n \"operator\": \"gte\",\n \"value\": 0.04\n }\n ],\n \"location\": {\n \"lat\": 51.0216707,\n \"lng\": 3.6887328\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"vacancy_id": "vuid-123",
"score": 0.82
},
{
"vacancy_id": "vuid-456",
"score": 0.74
},
{
"vacancy_id": "vuid-789",
"score": 0.56
}
]
}[
{
"title": "400 Bad Request",
"description": "The request body was not structured correctly."
}
][
{
"title": "401 Unauthorized",
"description": "OAuth access token is missing, invalid or expired."
}
][
{
"title": "403 Forbidden",
"description": "You don't have access to this resource."
}
][
{
"title": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
][
{
"title": "413 Payload Too Large",
"description": "Request payload is too large."
}
][
{
"title": "415 Unsupported Media Type",
"description": "Content-type must be one of: application/json"
}
][
{
"title": "422 Unprocessable entity",
"description": "The request body contains some fields with invalid data (e.g. invalid date, invalid enumeration value ..)"
}
]"max connections reached: <limit>"[
{
"title": "503 Service Unavailable",
"description": "The Skill Engine API is currently not available. Please contact TechWolf or try again later."
}
]Search for Vacancies based on free text
Search for Vacancies. Unlike other entities, searching happens based on the job_title text match by default, not based on Skills match. Literal string matching is fuzzy, meaning that typo’s and misspellings should still turn up desired results. For example, searching for deceptionist could still show receptionist Vacancy results. Literal search will always result in a score of 1.0. A combination of both types is possible.
curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/vacanies/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "Software Engineer",
"filters": [
{
"filter": "max_geo_distance",
"max_geo_distance": 50
},
{
"filter": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe"
},
{
"filter": "custom_property_is_in_list",
"property_name": "drivers_license",
"possible_values": [
"C",
"CE"
]
},
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
},
{
"filter": "external_id_is_in_list",
"external_ids": [
"external_id_1",
"external_id_2",
"external_id_3"
]
},
{
"filter": "is_active",
"is_active": true
},
{
"filter": "exclude_match_feedback",
"search_for": "employee_id",
"exclude_match_feedback": "thumbs_up"
}
],
"weights": [
{
"weight": "max_geo_distance",
"value": 0.1,
"full_score_distance": 5,
"zero_score_distance": 15
},
{
"weight": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe",
"operator": "eq",
"value": 0.04
},
{
"weight": "custom_property",
"property_name": "yearly_salary",
"property_value": 45000,
"operator": "gte",
"value": 0.04
}
],
"location": {
"lat": 51.0216707,
"lng": 3.6887328
}
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/vacanies/search"
payload = {
"text": "Software Engineer",
"filters": [
{
"filter": "max_geo_distance",
"max_geo_distance": 50
},
{
"filter": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe"
},
{
"filter": "custom_property_is_in_list",
"property_name": "drivers_license",
"possible_values": ["C", "CE"]
},
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
},
{
"filter": "external_id_is_in_list",
"external_ids": ["external_id_1", "external_id_2", "external_id_3"]
},
{
"filter": "is_active",
"is_active": True
},
{
"filter": "exclude_match_feedback",
"search_for": "employee_id",
"exclude_match_feedback": "thumbs_up"
}
],
"weights": [
{
"weight": "max_geo_distance",
"value": 0.1,
"full_score_distance": 5,
"zero_score_distance": 15
},
{
"weight": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe",
"operator": "eq",
"value": 0.04
},
{
"weight": "custom_property",
"property_name": "yearly_salary",
"property_value": 45000,
"operator": "gte",
"value": 0.04
}
],
"location": {
"lat": 51.0216707,
"lng": 3.6887328
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
text: 'Software Engineer',
filters: [
{filter: 'max_geo_distance', max_geo_distance: 50},
{
filter: 'custom_property',
property_name: 'direct_manager',
property_value: 'John Doe'
},
{
filter: 'custom_property_is_in_list',
property_name: 'drivers_license',
possible_values: ['C', 'CE']
},
{
filter: 'custom_property_contains_element',
property_name: 'industries',
property_value: 'electronics'
},
{
filter: 'external_id_is_in_list',
external_ids: ['external_id_1', 'external_id_2', 'external_id_3']
},
{filter: 'is_active', is_active: true},
{
filter: 'exclude_match_feedback',
search_for: 'employee_id',
exclude_match_feedback: 'thumbs_up'
}
],
weights: [
{
weight: 'max_geo_distance',
value: 0.1,
full_score_distance: 5,
zero_score_distance: 15
},
{
weight: 'custom_property',
property_name: 'direct_manager',
property_value: 'John Doe',
operator: 'eq',
value: 0.04
},
{
weight: 'custom_property',
property_name: 'yearly_salary',
property_value: 45000,
operator: 'gte',
value: 0.04
}
],
location: {lat: 51.0216707, lng: 3.6887328}
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/vacanies/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{tenant_name}.{region}.techwolf.ai/vacanies/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => 'Software Engineer',
'filters' => [
[
'filter' => 'max_geo_distance',
'max_geo_distance' => 50
],
[
'filter' => 'custom_property',
'property_name' => 'direct_manager',
'property_value' => 'John Doe'
],
[
'filter' => 'custom_property_is_in_list',
'property_name' => 'drivers_license',
'possible_values' => [
'C',
'CE'
]
],
[
'filter' => 'custom_property_contains_element',
'property_name' => 'industries',
'property_value' => 'electronics'
],
[
'filter' => 'external_id_is_in_list',
'external_ids' => [
'external_id_1',
'external_id_2',
'external_id_3'
]
],
[
'filter' => 'is_active',
'is_active' => true
],
[
'filter' => 'exclude_match_feedback',
'search_for' => 'employee_id',
'exclude_match_feedback' => 'thumbs_up'
]
],
'weights' => [
[
'weight' => 'max_geo_distance',
'value' => 0.1,
'full_score_distance' => 5,
'zero_score_distance' => 15
],
[
'weight' => 'custom_property',
'property_name' => 'direct_manager',
'property_value' => 'John Doe',
'operator' => 'eq',
'value' => 0.04
],
[
'weight' => 'custom_property',
'property_name' => 'yearly_salary',
'property_value' => 45000,
'operator' => 'gte',
'value' => 0.04
]
],
'location' => [
'lat' => 51.0216707,
'lng' => 3.6887328
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{tenant_name}.{region}.techwolf.ai/vacanies/search"
payload := strings.NewReader("{\n \"text\": \"Software Engineer\",\n \"filters\": [\n {\n \"filter\": \"max_geo_distance\",\n \"max_geo_distance\": 50\n },\n {\n \"filter\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\"\n },\n {\n \"filter\": \"custom_property_is_in_list\",\n \"property_name\": \"drivers_license\",\n \"possible_values\": [\n \"C\",\n \"CE\"\n ]\n },\n {\n \"filter\": \"custom_property_contains_element\",\n \"property_name\": \"industries\",\n \"property_value\": \"electronics\"\n },\n {\n \"filter\": \"external_id_is_in_list\",\n \"external_ids\": [\n \"external_id_1\",\n \"external_id_2\",\n \"external_id_3\"\n ]\n },\n {\n \"filter\": \"is_active\",\n \"is_active\": true\n },\n {\n \"filter\": \"exclude_match_feedback\",\n \"search_for\": \"employee_id\",\n \"exclude_match_feedback\": \"thumbs_up\"\n }\n ],\n \"weights\": [\n {\n \"weight\": \"max_geo_distance\",\n \"value\": 0.1,\n \"full_score_distance\": 5,\n \"zero_score_distance\": 15\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\",\n \"operator\": \"eq\",\n \"value\": 0.04\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"yearly_salary\",\n \"property_value\": 45000,\n \"operator\": \"gte\",\n \"value\": 0.04\n }\n ],\n \"location\": {\n \"lat\": 51.0216707,\n \"lng\": 3.6887328\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{tenant_name}.{region}.techwolf.ai/vacanies/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"Software Engineer\",\n \"filters\": [\n {\n \"filter\": \"max_geo_distance\",\n \"max_geo_distance\": 50\n },\n {\n \"filter\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\"\n },\n {\n \"filter\": \"custom_property_is_in_list\",\n \"property_name\": \"drivers_license\",\n \"possible_values\": [\n \"C\",\n \"CE\"\n ]\n },\n {\n \"filter\": \"custom_property_contains_element\",\n \"property_name\": \"industries\",\n \"property_value\": \"electronics\"\n },\n {\n \"filter\": \"external_id_is_in_list\",\n \"external_ids\": [\n \"external_id_1\",\n \"external_id_2\",\n \"external_id_3\"\n ]\n },\n {\n \"filter\": \"is_active\",\n \"is_active\": true\n },\n {\n \"filter\": \"exclude_match_feedback\",\n \"search_for\": \"employee_id\",\n \"exclude_match_feedback\": \"thumbs_up\"\n }\n ],\n \"weights\": [\n {\n \"weight\": \"max_geo_distance\",\n \"value\": 0.1,\n \"full_score_distance\": 5,\n \"zero_score_distance\": 15\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\",\n \"operator\": \"eq\",\n \"value\": 0.04\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"yearly_salary\",\n \"property_value\": 45000,\n \"operator\": \"gte\",\n \"value\": 0.04\n }\n ],\n \"location\": {\n \"lat\": 51.0216707,\n \"lng\": 3.6887328\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/vacanies/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"Software Engineer\",\n \"filters\": [\n {\n \"filter\": \"max_geo_distance\",\n \"max_geo_distance\": 50\n },\n {\n \"filter\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\"\n },\n {\n \"filter\": \"custom_property_is_in_list\",\n \"property_name\": \"drivers_license\",\n \"possible_values\": [\n \"C\",\n \"CE\"\n ]\n },\n {\n \"filter\": \"custom_property_contains_element\",\n \"property_name\": \"industries\",\n \"property_value\": \"electronics\"\n },\n {\n \"filter\": \"external_id_is_in_list\",\n \"external_ids\": [\n \"external_id_1\",\n \"external_id_2\",\n \"external_id_3\"\n ]\n },\n {\n \"filter\": \"is_active\",\n \"is_active\": true\n },\n {\n \"filter\": \"exclude_match_feedback\",\n \"search_for\": \"employee_id\",\n \"exclude_match_feedback\": \"thumbs_up\"\n }\n ],\n \"weights\": [\n {\n \"weight\": \"max_geo_distance\",\n \"value\": 0.1,\n \"full_score_distance\": 5,\n \"zero_score_distance\": 15\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"direct_manager\",\n \"property_value\": \"John Doe\",\n \"operator\": \"eq\",\n \"value\": 0.04\n },\n {\n \"weight\": \"custom_property\",\n \"property_name\": \"yearly_salary\",\n \"property_value\": 45000,\n \"operator\": \"gte\",\n \"value\": 0.04\n }\n ],\n \"location\": {\n \"lat\": 51.0216707,\n \"lng\": 3.6887328\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"vacancy_id": "vuid-123",
"score": 0.82
},
{
"vacancy_id": "vuid-456",
"score": 0.74
},
{
"vacancy_id": "vuid-789",
"score": 0.56
}
]
}[
{
"title": "400 Bad Request",
"description": "The request body was not structured correctly."
}
][
{
"title": "401 Unauthorized",
"description": "OAuth access token is missing, invalid or expired."
}
][
{
"title": "403 Forbidden",
"description": "You don't have access to this resource."
}
][
{
"title": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
][
{
"title": "413 Payload Too Large",
"description": "Request payload is too large."
}
][
{
"title": "415 Unsupported Media Type",
"description": "Content-type must be one of: application/json"
}
][
{
"title": "422 Unprocessable entity",
"description": "The request body contains some fields with invalid data (e.g. invalid date, invalid enumeration value ..)"
}
]"max connections reached: <limit>"[
{
"title": "503 Service Unavailable",
"description": "The Skill Engine API is currently not available. Please contact TechWolf or try again later."
}
]Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Query Parameters
The maximal number of results returned.
1 <= x <= 10010
The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit.
x >= 0The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum.
0 <= x <= 10.7
The language of the input text. auto will automatically detect the language used.
auto, nl, fr, en, de "en"
The type of matching. literal will search text-based. skills will use the Skills extracted from the input to find the best-matching Vacancies.
literal, skills "skills"
The external vendor vocabulary you want to see the Skills displayed in. This will only work for vendors that are activated on your tenant.
techwolf, workday, sap_attribute_library "workday"
Body
Request structure for free text search.
Input text.
"Software Engineer"
- max_geo_distance
- custom_property
- custom_property_is_in_list
- custom_property_contains_element
- external_id_is_in_list
- is_active
- exclude_match_feedback
Show child attributes
Show child attributes
[
{
"filter": "max_geo_distance",
"max_geo_distance": 50
},
{
"filter": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe"
},
{
"filter": "custom_property_is_in_list",
"property_name": "drivers_license",
"possible_values": ["C", "CE"]
},
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
},
{
"filter": "external_id_is_in_list",
"external_ids": [
"external_id_1",
"external_id_2",
"external_id_3"
]
},
{ "filter": "is_active", "is_active": true },
{
"filter": "exclude_match_feedback",
"search_for": "employee_id",
"exclude_match_feedback": "thumbs_up"
}
]- geo_distance
- custom_property
- skills_match
Show child attributes
Show child attributes
[
{
"weight": "max_geo_distance",
"value": 0.1,
"full_score_distance": 5,
"zero_score_distance": 15
},
{
"weight": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe",
"operator": "eq",
"value": 0.04
},
{
"weight": "custom_property",
"property_name": "yearly_salary",
"property_value": 45000,
"operator": "gte",
"value": 0.04
}
]A geographic location, expressed in latitude and longitude. This can represent a home address, an office location... Each entity is limited to having a single location. To get the latitude and longitude for a given address, you can use the Google Maps Geocoding API or a predefined lookup table (for example by zip code). If location is present in matching or filters, it will act as an override for geo-distance calculations.
- Location
- Address
Show child attributes
Show child attributes
Response
OK
List of search results.
Show child attributes
Show child attributes
Was this page helpful?