Creating a smart profile search bar allows users to turn natural language queries into powerful AI-driven searches across your talent pool. By leveraging HrFlow.ai’s Scoring and Parsing APIs, you can build a fully automated system that translates user intent into structured job queries and ranks relevant candidates in real time.
This guide walks you through setting up the necessary infrastructure, processing user inputs, and retrieving ranked results using HrFlow.ai APIs.
The profile search bar combines several HrFlow.ai capabilities:
Text Parsing API — to parse free-text queries into structured Job objects
Geocoding API — to enrich detected locations with latitude and longitude
Asking API — to extract advanced filtering criteria such as experience level
Scoring API — to rank profiles from your talent pool against the structured query
🔎 Guide Overview
Step 1 – Extract the User Query in a Standard format
Start by capturing the user’s input through a simple search field. For example:
"I am looking for a Data Scientist with 3 years of experience in deep learning and located in Paris."
Send this text to the Text Parsing API using the following parameters:
parsing_model
:"atlas"
output_object
:"job"
This returns a structured Job object in HrFlow.ai format, which captures key elements like job title, skills, experience, and location.
If the returned object includes a location (e.g., "location.text": "Paris"
), use the Geocoding API to resolve it into geographic coordinates (lat
, lng
). This allows more accurate filtering later based on distance.
You can also enrich the Job with context from the UI (e.g. remote preference, contract type) before indexing it.
📘 API Reference:
Step 2 – Index the Query as a Job
Once the Job is enriched, you need to index it in a HrFlow.ai Board using the Job Indexing API. This step is essential as it persists the Job and enables the use of advanced APIs like Asking and Scoring.
The Job acts as a query anchor: it represents the user's intent and will be used to evaluate the relevance of candidate profiles.
📌 Make sure:
The target Board has both Scoring and Searching enabled.
You're using a clean, dedicated board for search queries (if needed).
🔒 Requirements:
A Board of Jobs to store the structured queries generated from the search bar.
This board will serve as the container for all search queries represented as Job objects.
⚠️ Both Searching and Scoring must be enabled for this board.
📘 API Reference:
Step 3 – Enrich the Query with Further Criteria
To improve the precision of your search, you can use the Asking API to extract high-level filtering criteria from the Job. The Asking API answers targeted questions such as:
"What is the required experience level?"
"What education level is needed?"
"Is this a full-time or part-time role?"
While the information may already exist in the job description, Asking provides normalized and explicit answers, which you can then format into tags like this:
{
"tags": [
{"name": "experience_level", "value": "3 years"},
{"name": "education_level", "value": "master"},
{"name": "contract_type", "value": "full-time"},
]
}
Use the Edit Job API to update the indexed Job with these tags.
ℹ️ These tags are not used for job search, but are critical for filtering during profile scoring.
📘 API Reference:
Step 4 – Score Profiles with the Built Query
With your structured and enriched Job object ready, you can now use the Score Profiles for a Job endpoint to retrieve and rank profiles from a specific source.
The API compares the content of the Job with candidate profiles and returns a ranked list of profiles based on relevance.
Required parameters:
algorithm_key
(string) — The key of the scoring algorithm to usesource_keys
(string array) — The list of profile source keys to score against (e.g.,["source_1", "source_2"]
)board_key
(string) — The key of the board where the Job is indexedjob_key
(string) — The unique identifier of the Job object
Filtering Parameters:
tags_included
: filter profiles by structured tags (e.g., experience level, contract type)location_geopoint
+location_distance
: restrict profiles to a geographic areaskills
,languages
: additional refinement optionslimit
,page
: pagination controls
The response contains an array of profiles, each paired with a prediction score that represents how well it matches the Job.
Use this ranked list to power your search results UI and surface the most relevant candidates to users—efficiently and intelligently.
🔒 Requirements:
A Source of Profiles that the search bar will return results from.
This source should be actively indexed with candidate profiles.
⚠️ Ensure that both Searching and Scoring features are enabled for the source.
A Scoring Algorithm to score profiles against a Job
the
algorithm_key
corresponds to an available scoring algorithm in your HrFlow.ai environmentThis key determines the model logic used to compute relevance between the Job and Profiles
💡 For the full list of available filtering options, refer to the official documentation.
📘 API Reference:
Conclusion
With the backend in place, you can now focus on building a clean and responsive UI to deliver your smart search experience.
Your interface should:
Include a free-text search bar for user queries
Display ranked profile results with key info and relevance indicators
Handle loading states, pagination, and empty results gracefully
This UI will turn complex candidate searches into a fast, intuitive experience powered by HrFlow.ai’s intelligent Scoring pipeline.