Useful Tip:
All of the URL links mentioned in every API method are case sensitive.
RChilli Inc. is the most trusted partner for Parsing, Matching, and Data enrichment for global recruiting platforms.
RChilli Search & Match API allows you to search and match candidates and jobs with great flexibility than simple database searching and matching algorithms. Here in this document, you will get to know about our different API methods for integrating your search or you can visit our Search Engine Panel Interface Document for the interface.
RChilli Search Engine is a semantic platform and should not be used to store files/documents. Document indexing, searching or matching should be done based on document id. So, the best approach is index document with RChilliSearch engine with ID, store the document information in you storage system (database) with the same IDand when you query for search or match any document using RChilli Search Engine we will return those ids and you can get corresponding data to those ids from your storage system (database).To make your documents searchable by RChilli Search and Match API, they first need to be indexed. The Index service provides operations for managing these indexes.
Note: To update the index of a document, simply call this method using the same ID of the already indexed document. This means if ID already exists and you try to index with same ID, the old document will be updated with new data.
Before indexing documents, you require the following:
1) Resumes in RChilli Resume Parser version 8.0.0 JSON output format. For format, refer to this link
2) Job Descriptions in RChilli JD Parser version 3.0.0 JSON output format. For format, refer to this link
API Information:-
Method Name: index
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/index
Method Type: POST
Content-Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
subUserId | String | Optional | Your user's unique id. |
id | String | Required | Set unique index IDso that it can correlate with your data. |
content | String | Required | RChilli Parse output for Resume/JD in base64 format. |
commit | Boolean | Optional | Default value is false. Check Commit for more details |
Deduplication | Object | Optional | Deduplication helps to avoid indexing duplicate records in search engines. |
{ "index": { "indexType": "Resume/JD", "indexKey": "Your user key", "subUserId": "Your user's unique id" }, "data": { "id": "Unique Id", "content": "RChilli Resume/JD output in Base64" }, "commit": "false" }
{ "status": "200", "indexType": "Resume/JD", "subUserId": "Your user's unique id", "action": "indexed/indexupdated/updated/ignored", "id": "indexed Unique Id", "doc": "RChilli Resume/JD output in Base64" }
As the name specifies here, in one API call, you get documents parsed (RChilli Resume Parser v8/RChilli JD Parser v3) and indexed. To search your documents using RChilli Search and Match API, you require to parse and index them. The Indexing provides operations for managing the indexes. This includes adding and updating the index as well as removing from it and rebuilding it.
Note: To update the index of a document, simply call this method using index ID of the document to be updated.
Before parse and indexing documents, you require the following:
That is It!
API Information:-
Method Name: parseAndIndex
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/parseAndIndex
Method Type: POST
Content-Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
subUserId | String | Optional | Your user's unique id. |
id | String | Required | Set unique index ID so that it can correlate with your data. |
fileContent | String | Required | Provide file content in base64 format. |
fileName | String | Required | Name of the file with the extension. |
commit | Boolean | Optional | Default value is false. Check Commit for more details |
deduplication | Object | Optional | Deduplication helps to avoid indexing duplicate records in search engine. |
{ "index": { "indexType": "Resume/JD", "indexKey": "Your user key", "subUserId": "Your user's unique id" }, "data": { "id": "Unique Id", "fileContent": "(Resume/JD) file content in base64 data", "fileName": "file name with extension" }, "commit": "false" }
{ "status": "200", "indexType": "Resume/JD", "subUserId": "Your user's unique id", "action": "indexed/indexupdated/updated/ignored", "id": "indexed Unique Id", "doc": "RChilli Resume/JD output in Base64" }
The Simple Search for API method empowers you to make your document searchable with a string query without specifying search parameters. Using it, you get candidates - Score (out of 100), FullName, CurrentJobProfile, CurrentEmployer, TotalExperienceInYear, City, State, Country, id (Index).
Before searching documents, you only require to Parse and index the documents via RChilli Search and Match API using your index key.
API Information:-
Method Name: simpleSearch
API URL: http://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/simpleSearch
Method Type: POST
Content Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
subUserId | String | Optional | Your user's unique id. |
keyword | String | Required | Text query contains entities like job profile, skill, location or organization, etc. |
facet | Object | optional | for more details on facets click here |
filter | Object | optional | for more details on filters click here |
geoSearch | Object | optional | for more details on geoSearch click here |
ExplainScore | boolean | optional | Default is false. if set true turn details about how a document is searched. for more details click here |
ExplainScoreType | String | optional | Default is text. It Can be set as JSON and work if ExplainScore is true. for more details click here |
pageStart | boolean | optional | Start index of record to return. Can be used for paging when multiple record are found search.Default is 0. for more details click here |
pageSize | boolean | optional | Number of records return in one api call, detfault is 50. for more details click here |
{ "index": { "indexType": "Resume/JD", "indexKey": "Your user key", "subUserId": "Your user's unique id" }, "query": { "keyword": "Software developer with 5 year experience from Pune having B.tech Degree and worked in Wipro" } }
In the boolean (advance) search, unlike simple search, you can customize your search by specifying search parameters like - Job Profile, Company, Degree, etc.
This gives you more flexibility in searching by specifying required/optional search parameters.
You can search values for multiple fields with multiple values.
You can find the fields list available in facets here for Resume and JD
Multiple values are searched based on the OR conditions.
Multiple Fields are searched in the required conditons on the basis of AND condition. while in the optional condition it is search with OR condition.
API Information:-
Method Name: booleanSearch
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/booleanSearch
Method Type: POST
Content Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
subUserId | String | Optional | Your user's unique id. |
query | String | Required | Put keywords for searching resume/jd. |
required | Object | Required | JSON of fields with list values. Multiple fields are search with AND condition. while their multiple values search with OR condition. |
optional | Object | Required | JSON of fields with list values. Multiple fields are search with OR condition. while their multiple values search with OR condition. |
facet | Object | optional | for more details on facets click here |
filter | Object | optional | for more details on filters click here |
geoSearch | Object | optional | for more details on geoSearch click here |
ExplainScore | boolean | optional | Default is false. if set true turn details about how document is searched. For more details click here |
ExplainScoreType | String | optional | Default is text. Can be set as JSON and work if ExplainScore is true. For more details click here |
pageStart | boolean | optional | Start index of record to return. It Can be used for paging when multiple records found in search. The default is 0. For more details click here here |
pageSize | boolean | optional | Number of records return in one API call, default is 50. For more details click here |
{ "index": { "indexType": "Resume/JD", "indexKey": "Your user key", "subUserId": "Your user's unique id" }, "query": { "required": { "CurrentJobProfile": ["Software Engineer"], "Skill": ["PHP","JAVA","Web Development"] }, "optional": { "City": ["Pune","Mumbai","Noida"], "Degree": ["B.Tech","MCA"] } } }
You will find Resumes/Job Descriptions matching your input documents. There are four types of matching cases as follows:
To execute matching of your documents (Resumes and JDs), you require the following:
Method Name: match
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/match
Method Type: POST
Content Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
subUserId | String | Optional | Your user's unique id. |
docType | String | Required | Name Of Index type Resume/JD |
JSONData | String | Required | Rchilli Parser JSON output data in base64 |
explainScore | boolean | optional | Default is false. If set true turn details about how a document is searched. For more details click here |
explainScoreType | String | optional | Default is text. Can be set as JSON and work if ExplainScore is true. For more details click here |
pageStart | boolean | optional | Start index of record to return. It Can be used for paging when multiple records are found in search. The Default is 0. For more details click here |
pageSize | boolean | optional | Number of records return in one API call, default is 50. For more details click here |
{ "index": { "indexType": "Resume/JD", "indexKey": "Your user key" }, "match": { "docType": "Resume/JD", "jsonData": "RChilli Resume/JD output in Base64" }
You can delete all indexed files from the database.
API Information:-
Method Name: delete
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/delete
Method Type: POST
Content Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
subUserId | String | Optional | Your user's unique id. |
id | StringArray | Required | List of ids you want to delete |
commit | Boolean | Optional | Default value is false. Check Commit for more details |
{ "index": { "indexType": "Resume", "indexKey": "Your user key", "subUserId": "Your user's unique id" }, "query": { "id": [ "1911200457461146","1911200524341134" ] }, "commit": true }
{ "status": "200", "indexType": "Resume", "output": "indexes deleted successfully" }
Analyze query is an extension of the simple search. It analyzes the search string and brings out all search keywords separately for a more refined result of your query in a simple search.
API Information:
Method Name: analyze
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/analyze
Method Type: POST
Content Type: application/json
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
keyword | String | Required | Text query contains entities like job profile, skill, location or organization, etc. |
{ "index": { "indexType": "Resume", "indexKey": "Your user key" }, "query": { "keyword": "Project Manager with 15 year experince and have B.Tech from Pune worked Wipro having knowledge of Java" } }
Index Count method returns the number of documents indexed for an Index key.
API Information:
Method Name: indexCount
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/indexCount
Method Type: POST
Content Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexKey | String | Required | Use your user key as shared by RChilli team. |
subUserId | String | Optional | Unique subUserId. if it is passed in the request will return total count for that subuserIDonly. |
{ "index": { "indexKey": "your user key", "subUserId": "your user's unique id" } }
{ "totalCount": 2, "count": { "Jd": 1, "Resume": 1 } }
As you start searching, we provide you suggestions for different search fields like JobProfile, Skill, and Degree.
Method Name: suggestions
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/suggestions
Method Type: POST
Content Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
keyword | String | Required | Mention the keyword. |
fieldType | String | Required | Mention the fieldType like JobProfile/Skill |
limit | String | Required | Mention the limit of No. of values to be returned. |
{ "index": { "indexType": "Resume", "indexKey": "Your user key" }, "keyword": "soft", "fieldType": "jobprofile", "limit": 25 }
[{ "Suggestions": [ "Software Consultant", "Software Designer", "Software Developer", "Software Developer Intern", "Software Engineer", "Software Engineer/developer", "Software Engineer Financial Billing Upload", "Software Engineer In Equities Estimates", "Software Programmer", "Software Programmer/analyst", "Software Support Engineer", ] }]
If you give any wrong input while searching, it will be checked and corrected.
Method Name: spellCheck
API URL: https://searchengine.rchilli.com/RChilliSearchEngineAPI/RChilli/spellCheck
Method Type: POST
Content Type: application/JSON
Response Type: JSON
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
indexType | String | Required | Name of the file type to be indexed. |
indexKey | String | Required | Use your user key as shared by RChilli team. |
keyword | String | Required | Mention the keyword. |
fieldType | String | Required | Mention the fieldType like JobProfile/Skill |
{ "index": { "indexType": "Resume", "indexKey": “API key " }, "keyword": "projct Manager" "fieldType": "jobprofile" }
[ { "SearchWord": "projct manager", "Suggestions": [ "project manager", "product manager" ] } ]
You can find a candidate near you through geographical search in simple and advance search methods.
You can search using Geocodes/City, State, Country or you can select a distance range.You will have the geographical search result in Simple Search and Boolean Search both. both.
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
Option 1 | |||
city | String | Required | Name of city |
state | String | Optional | Name of state related to city |
country | String | Optional | Name of Country related to state |
Option 2 | |||
longitude | String | Required | Name of city |
latitude | String | Required | Name of state related to city |
radius | int | Optional | Default value is 50. |
distanceUnit | String | Optional | Default is KM(Kilomete). Possible values are KM and mile |
"geoSearch": { "city": "Pune", "state": "Maharastra", "country": "India", "radius": 50, "distanceUnit": "mile" }
Facet is a list of values with the count of documents in which these values are found. They are displayed on the left side of the page while searching and can be applied on both Simple Search and Boolean Search both.
You will have the result as follows:
"facet": { "fields": [ "JobProfile", "Employer", "Institute" ], "limit": 10 }
Along with Simple/Boolean search result, you can find facets result as:
"facet": { "JobProfile": [{ "value": "Software Engineer", "count": 22 }
|
|
Name | Type | IsRequired | Description |
---|---|---|---|
pageSize | Boolean | Optional | Default is 50. Number of records return in one api call. |
pageStart | String | Optional | Default is 0. Start index of record to return. |
"pageSize": 10, "pageStart": 0,
{ "count": 87, "pageStart": 20, "pageSize": 10, "records":["data"] }
You will get a detailed score of search fields matched with the result.
You will get two types of detailed score explanation.
Request parameters are described below:
Name | Type | IsRequired | Description |
---|---|---|---|
explainScore | Boolean | Optional | Default is false. if set true turn details about how document is searched. |
explainScoreType | String | Optional | Default is text. Can be set as JSON and work if ExplainScore is true. |
"explainScore": true, "explainScoreType":"json",
[{ "id": "1911260416391139", "explaination": "82.39 = sum of:\n 78.18 = sum of:\n 36.84 = CurrentJobProfile:developer\n 36.84 = JobProfile:developer\n 0.48 = Skill:c#\n 0.48 = Skill:vb.net\n 0.48 = Skill:jquery\n 0.48 = Skill:influential\n 0.48 = Skill:network\n 0.48 = Skill:communication\n 0.48 = Skill:design\n 0.38 = Skill:sql server\n 0.38 = Skill:creativity\n 0.38 = Skill:engagement\n 4.21 = sum of:\n 4.21 = ([Degree:btech, ([Degree:bachelor of techology]) btec, ([Degree:bachelor of engineering]) b.e, ([Degree:bachelor of technology]) b.tech])\n" }]
We have defined weightage of fields for search and match which can be customized as per your requirement. Please contact us if you find scoring weightage needs to change.
The document must be committed to making them available for searching or matching. Commit ensures that the document is indexed or removed. Commit can be used in index, parseAndIndex and delete methods.
We have 2 types of commit.AutoCommit: By default, the commit is set to false, which means that it is the auto-commit mode. The document will be committed to the search engine in the backend. It may take generally 15-45 sec to reflect in search or match. And it is recommended to use this for fast indexing and delete indexes.
ForceCommit: ForceCommit: Need to set commit as true in the request. This ensures the immediate effect of indexing or deletes an index in search and match. If you are using the deDuplication feature then it is recommended to use it. But it will take a longer time to index a document or delete index.
"commit":true
Deduplication helps to avoid indexing duplicate records in search engine. Deduplication is an optional field that you can choose in:
In Deduplication, you need to set checkDuplicate = true, only then duplicate records will be checked. You can set delicacy checks on field level as well as on output level.
By Default if it is on output level, If no fields are set, then the same output is generated for any record is considered as a duplicate record.
You can check the output with the help of md5 checksum has code. The other way is to set the fields or the combination of fields to avoid duplicate records. The other way is to set field or combination of fields to avoid duplicates records. You can set the updated parameter to true to update the records in the existing id. By default, it is false, means the duplicate records will not be updated and will keep the old value.
Name | Type | IsRequired | Description |
---|---|---|---|
Deduplication | Object | Optional | |
checkDuplicate | Boolean | Required | True/false |
update | Boolean | Optional | Default false means if duplicate records exist, then the new entry will be ignored. If it is set as true, then the old record will be updated with new data, but it will remain the same. |
Fields | String Array | Optional | If it is not set then deduplication will check on output checksum hash code and a list of fields can be set as the combination for deduplication. |
"deDuplication": { "checkDuplicate":true, "fields":["Email","FullName"], "update":true }
A complete request for indexing may contain, indexing parameters, commit option and deduplication parameters. Optional parameters can be ignored as per requirement and business logic.
Click to Download sample request for Resume.
Click to Download sample request for JD.
Parse and Index request is similar to Index request. A complete request for indexing may contain, indexing parameters, commit option and deduplication parameters. Optional parameters can be ignored as per requirement and business logic.
Click to Download sample request for Resume.
Click to Download sample request for JD.
A complete request for Simple Search may contain, Simple Search parameters, geo search parameters, facets, filters, pagination and explain score. Optional parameters can be ignored as per requirement and business logic.
Click to Download sample request.
A complete request for Boolean Search may contain, Boolean Search parameters, geo search parameters, facets, filters, pagination and explain score. Optional parameters can be ignored as per requirement and business logic.
Click to Download sample request.
A complete request for Match Search may contain, Match parameters, pagination and explain score. Optional parameters can be ignored as per requirement and business logic.
Click to Download sample request.
Index method and Parse and Index method Response is similar
Name | Type | Description |
---|---|---|
status | String | Status as 200 means request has been successfully processed. Any other status means error an occurred |
indexType | String | Resume/JD as per request which document is sent to the index |
subUserId | String | If sub-user IDis set in request same will be returning in this to identify unique sub-users. |
action | String | Values as:
indexed: if document indexed with new id indexUpdated: if document indexed with existing id updated: if document indexed with deduplication setting to update if document exists ignored: if a document is indexed where deduplication check finds that such document already exists, then the new document will not be indexed and will be ignored. |
id | String | IDon which document is indexed or updated |
doc | String | RChilli Parser Output for Resume/JD. Note for Resume V8 output will be returned, and for JD V3 output will be returned |
Click to Download sample response for Resume.
Click to Download sample response for JD.
Response for Simple Search, Boolean search and Match is similar except that match doesnot have facets.
Name | Type | Description |
---|---|---|
count | int | Number of docuement found |
pageStart | int | record index to start return. |
pageSize | int | number of records return in one api call. |
records | JsonArray | List of records
|
score | int | the matching score to the searched query/matched document |
id | String | IDof the document with which it is indexed |
fieldname | String | fields corresponding to request and resume/jd |
facet | Object | facet response details can be found here |
explaination | object | explainScore response details can be found here |
Click to Download sample response
All of the URL links mentioned in every API method are case sensitive.
If you have any comments or feedback on our documentation, please send them to us at: support@rchilli.com