API Documentation
Taxonomy
- Domains
- Subdomains
- Skill Clusters
- Skills
- Taxonomy operations
Employees
- CRUD
- Skill Profile
- Metrics
- Search
- Skill Events
- Interactions
- Suggestions
Job Families
- CRUD
- Skill Profile
- Job Family Profile Data
Jobs
- CRUD
- Skill Profile
- Job Profile Data
- Metrics
Vacancies
- CRUD
- Skill Profile
- Metrics
- Search
Courses
- CRUD
- Skill Profile
- Metrics
Skill Clusters
- CRUD
- Skill Profile
- Metrics
External Companies
- CRUD
- Search
Skills
- Skill Search
- Skill Gaps
- Skill Lookup
Organisational Structure
- Organisational Units
Custom Properties
- Definitions
- Properties
Matchmaking
- Vacancy Matching
- Course Recommendations
- External Company Matching
- Job Matching
- Job Family Matching
- Match Feedback
Matching Configuration
Export
- Employees
- Job Architecture
- Courses
- Employees Assigned Position
- Taxonomy
- Organisational Structure
Reports
- General Reports
- Employee Reports
- Vacancy Reports
- Job Reports
- Data Maturity Scan
Version
- Version
Find the best External Companies for a given Employee
You can use filters in the request body to restrict the match results based on distance, language & Custom Properties. If the max_geo_distance
filter is not provided, a default value of 50km is used.
curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/employees/{external_id}/matching_companies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"filters": [
{
"filter": "max_geo_distance",
"max_geo_distance": 50
},
{
"filter": "language",
"max_overqualification": 2,
"max_underqualification": 1
},
{
"filter": "last_updated",
"value": "2022-01-01",
"operator": "lt"
},
{
"filter": "custom_property_equal",
"from_entity_property": "desired_wage",
"to_entity_property": "wage"
},
{
"filter": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe"
},
{
"filter": "custom_property_is_in",
"from_entity_property": "required_drivers_license",
"to_entity_property": "drivers_licenses"
},
{
"filter": "custom_property_is_in_list",
"property_name": "drivers_license",
"possible_values": [
"C",
"CE"
]
},
{
"filter": "custom_property_contains",
"from_entity_property": "shift_regime_codes",
"to_entity_property": "desired_regime"
},
{
"filter": "custom_property_list_overlap",
"from_entity_property": "desired_industries",
"to_entity_property": "industries"
},
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
},
{
"filter": "external_id_is_in_list",
"external_ids": [
"c350500-eb84-42dc-a79f-5e7b1fe897b7",
"b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
],
"weights": [
{
"weight": "skills_match",
"value": 1
},
{
"weight": "desired_functions",
"value": 0.03
},
{
"weight": "geo_distance",
"value": 0.1,
"full_score_distance": 5,
"zero_score_distance": 50
},
{
"weight": "language",
"value": 0.1,
"max_overqualification": 2,
"max_underqualification": 3
},
{
"weight": "custom_property",
"value": 0.04,
"property_name": "yearly_salary",
"operator": "gte",
"property_value": 45000
},
{
"weight": "custom_property_is_in",
"value": 0.06,
"from_entity_property": "desired_work_regime",
"to_entity_property": "offered_work_regimes"
},
{
"weight": "custom_property_is_in_list",
"value": 0.05,
"property_name": "region",
"possible_values": [
"Flanders",
"Wallonia"
]
},
{
"weight": "custom_property_contains",
"value": 0.07,
"from_entity_property": "sectors",
"to_entity_property": "desired_sector"
},
{
"weight": "custom_property_contains_element",
"value": 0.04,
"property_name": "industries",
"property_value": [
"Electronics",
"Aviation"
]
},
{
"weight": "custom_property_list_overlap",
"value": 0.04,
"from_entity_property": "desired_industries",
"to_entity_property": "industries"
}
]
}'
{
"results": [
{
"employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"company_id": "c350500-eb84-42dc-a79f-5e7b1fe897b7",
"score": 0.87657,
"matching_vacancies": [
{
"employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"vacancy_id": "a4003805-eb84-42dc-a79f-5e7b1fe897b7",
"score": 0.9,
"job_title": "Business Analyst"
},
{
"employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"vacancy_id": "b4003805-eb84-42dc-a79f-5e7b1fe897b7",
"score": 0.7,
"job_title": "Data Scientist"
}
]
}
]
}
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100
Query Parameters
The 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 < 1
The maximal number of results returned.
1 < x < 100
The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit.
x > 0
Body
List of weights to be applied during matching
Filter out all entities for which the distance is more than the provided max_geo_distance
.
max_geo_distance
The maximal allowed distance (in km, as the crow flies) between a matching Employee & Vacancy.
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.
Response
List of match results.
The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100
The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100
The maximum matching rate between an Employee and an External Company, expressed as a number between 0 and 1.
0 < x < 1
An overview of the match results between an Employee and the most recent open positions for this External Company sorted by match score.
The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100
The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100
The matching score between an Employee and Vacancy, expressed as a number between 0 and 1.
0 < x < 1
Title of the Vacancy.
1
Was this page helpful?
curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/employees/{external_id}/matching_companies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"filters": [
{
"filter": "max_geo_distance",
"max_geo_distance": 50
},
{
"filter": "language",
"max_overqualification": 2,
"max_underqualification": 1
},
{
"filter": "last_updated",
"value": "2022-01-01",
"operator": "lt"
},
{
"filter": "custom_property_equal",
"from_entity_property": "desired_wage",
"to_entity_property": "wage"
},
{
"filter": "custom_property",
"property_name": "direct_manager",
"property_value": "John Doe"
},
{
"filter": "custom_property_is_in",
"from_entity_property": "required_drivers_license",
"to_entity_property": "drivers_licenses"
},
{
"filter": "custom_property_is_in_list",
"property_name": "drivers_license",
"possible_values": [
"C",
"CE"
]
},
{
"filter": "custom_property_contains",
"from_entity_property": "shift_regime_codes",
"to_entity_property": "desired_regime"
},
{
"filter": "custom_property_list_overlap",
"from_entity_property": "desired_industries",
"to_entity_property": "industries"
},
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
},
{
"filter": "external_id_is_in_list",
"external_ids": [
"c350500-eb84-42dc-a79f-5e7b1fe897b7",
"b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
],
"weights": [
{
"weight": "skills_match",
"value": 1
},
{
"weight": "desired_functions",
"value": 0.03
},
{
"weight": "geo_distance",
"value": 0.1,
"full_score_distance": 5,
"zero_score_distance": 50
},
{
"weight": "language",
"value": 0.1,
"max_overqualification": 2,
"max_underqualification": 3
},
{
"weight": "custom_property",
"value": 0.04,
"property_name": "yearly_salary",
"operator": "gte",
"property_value": 45000
},
{
"weight": "custom_property_is_in",
"value": 0.06,
"from_entity_property": "desired_work_regime",
"to_entity_property": "offered_work_regimes"
},
{
"weight": "custom_property_is_in_list",
"value": 0.05,
"property_name": "region",
"possible_values": [
"Flanders",
"Wallonia"
]
},
{
"weight": "custom_property_contains",
"value": 0.07,
"from_entity_property": "sectors",
"to_entity_property": "desired_sector"
},
{
"weight": "custom_property_contains_element",
"value": 0.04,
"property_name": "industries",
"property_value": [
"Electronics",
"Aviation"
]
},
{
"weight": "custom_property_list_overlap",
"value": 0.04,
"from_entity_property": "desired_industries",
"to_entity_property": "industries"
}
]
}'
{
"results": [
{
"employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"company_id": "c350500-eb84-42dc-a79f-5e7b1fe897b7",
"score": 0.87657,
"matching_vacancies": [
{
"employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"vacancy_id": "a4003805-eb84-42dc-a79f-5e7b1fe897b7",
"score": 0.9,
"job_title": "Business Analyst"
},
{
"employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"vacancy_id": "b4003805-eb84-42dc-a79f-5e7b1fe897b7",
"score": 0.7,
"job_title": "Data Scientist"
}
]
}
]
}