Integration Document
Last updated: 2 April, 2020

Introduction

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).

API Methods


1. Index:

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.

JSON Request For Indexing

Click for more details
{
  "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"
}

         

JSON Response For Indexing

Click for more details
{
  "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"
}

         


2. Parse and Index


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:

  • Resumes
  • Job Descriptions

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.


JSON Request For Parse And Indexing

Click for more details
{
  "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"
}

         

JSON Response for Parse And Indexing

Click for more details
{
  "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"
}

         

3. Simple Search:


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

JSON Request for Simple Search

Click for more details
{
  "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"
  }
}
         

JSON Response for Simple Search

. Click for more details
{
  {
    "count": 1753,
    "pageStart": 0,
    "pageSize": 10,
    "records": [
        {
            "score": 91.25,
            "CurrentEmployer": "Ivitesse Payrol",
            "TotalExperienceInYear": 8.4,
            "CurrentJobProfile": "Software developer",
            "State": "Uttar Pradesh",
            "FullName": "PREM CHANDRA JAISWAL",
            "Country": "India",
            "id": "1911281105521152",
            "City": "Ghazipur"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "Chetu India PVt ltd",
            "TotalExperienceInYear": 6.7,
            "CurrentJobProfile": "Software Developer",
            "State": "Delhi",
            "FullName": "Ashish Kumar Singh",
            "Country": "India",
            "id": "1911281216201120",
            "City": "NANGLOI"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "Cogent Consulting",
            "TotalExperienceInYear": 7.5,
            "CurrentJobProfile": "Software Developer",
            "FullName": "   ",
            "id": "1911280610501150"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "VestServe Financial Systems",
            "TotalExperienceInYear": 5.6,
            "CurrentJobProfile": "Software Developer",
            "State": "MA",
            "FullName": "James Barrett",
            "Country": "USA",
            "id": "1911280707331133",
            "City": "Swampscott"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "TCS",
            "TotalExperienceInYear": 7.4,
            "CurrentJobProfile": "Software Developer",
            "FullName": "Anjani",
            "id": "191128074101111"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "AT&T Inc",
            "TotalExperienceInYear": 5.5,
            "CurrentJobProfile": "Software Developer",
            "State": "Karnataka",
            "FullName": "Rohit Ranjan",
            "Country": "India",
            "id": "1911280940531153",
            "City": "Bangalore"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "Fidelity Labs",
            "TotalExperienceInYear": 9.7,
            "CurrentJobProfile": "Software Developer",
            "State": "NC",
            "FullName": "Stefan T Kendall",
            "Country": "USA",
            "id": "1911280955201120",
            "City": "Raleigh"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "One Virtual Source OVS Group LLC",
            "TotalExperienceInYear": 10.8,
            "CurrentJobProfile": "Software Developer",
            "State": "TX",
            "FullName": "Krunal A. Darji",
            "id": "1911280346411141",
            "City": "Houston"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "Unifytech Pvt. Ltd",
            "TotalExperienceInYear": 7.5,
            "CurrentJobProfile": "Software Developer",
            "State": "Delhi",
            "FullName": "VARUN KUMAR",
            "Country": "India",
            "id": "1911280831411141",
            "City": "Delhi"
        },
        {
            "score": 91.25,
            "CurrentEmployer": "Goldman Sachs",
            "TotalExperienceInYear": 13.1,
            "CurrentJobProfile": "Software Developer",
            "FullName": "ROJAN SHRESTHA",
            "id": "1911280928571157"
        }
    ]
}
         


4. Boolean Search:


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

JSON Request for Boolean Search

Click for more details
{
  "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"]
    }
  }
}

JSON Response for Boolean Search

Click for more details
{
    "count": 241,
    "pageStart": 0,
    "pageSize": 25,
    "records": [
        {
            "score": 100.0,
            "CurrentEmployer": "NUCSOFT Ltd",
            "TotalExperienceInYear": 1.7,
            "CurrentJobProfile": "SOFTWARE ENGINEER",
            "State": "Maharashtra",
            "FullName": "Abhishek Vijay Borkar",
            "Country": "India",
            "id": "1912010352261226",
            "City": "Mumbai"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "ModeFinServer Pvt. Ltd",
            "TotalExperienceInYear": 5.6,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "TULASI VARA PRASAD CHENNAMSETTI",
            "id": "1911281017271127"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Tech Mahindra",
            "TotalExperienceInYear": 5.7,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "SNEHA KEMBHAVI",
            "id": "1911281020291129"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Tata Consultancy Services TCS",
            "TotalExperienceInYear": 4.4,
            "CurrentJobProfile": "Software Engineer",
            "State": "CA",
            "FullName": "ANKUSH GUMBER",
            "Country": "USA",
            "id": "1911281025121112",
            "City": "Los Angeles"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Persistent Systems Limited",
            "TotalExperienceInYear": 3.11,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "Mala Shanbhag",
            "id": "1911281030281128"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Sankhya InfoTech Ltd",
            "TotalExperienceInYear": 5.1,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "Gummadi Durga Prasad",
            "id": "1911281053221122"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "NetApp",
            "TotalExperienceInYear": 5.7,
            "CurrentJobProfile": "Software Engineer",
            "State": "NC",
            "FullName": "Amit Borulkar",
            "Country": "USA",
            "id": "1911281109531153",
            "City": "Morrisville"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "CricbuzzBackend Bangalore",
            "TotalExperienceInYear": 5.8,
            "CurrentJobProfile": "Software Engineer",
            "State": "Karnataka",
            "FullName": "AkshayJha",
            "Country": "India",
            "id": "1911281136421142",
            "City": "Bangalore"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "PeopleStrong",
            "TotalExperienceInYear": 7.4,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "Raghvendra Mishra",
            "id": "191128115000110",
            "City": "Allahabad"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Y3 Technologies",
            "CurrentJobProfile": "Software Engineer",
            "FullName": "Ixwaku Ranjan Sharma",
            "id": "191128115205115",
            "City": "Kanpur"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Orange Business Services",
            "TotalExperienceInYear": 8.3,
            "CurrentJobProfile": "Software Engineer",
            "State": "Rajasthan",
            "FullName": "HEMANT SAIN",
            "Country": "India",
            "id": "191128122206116",
            "City": "Alwar"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Tech Mahindra",
            "TotalExperienceInYear": 2.1,
            "CurrentJobProfile": "Software Engineer",
            "State": "CA",
            "FullName": "ANUSHA BILAKANTI",
            "Country": "USA",
            "id": "1911281235561156",
            "City": "Los Angeles"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Rediff.com",
            "TotalExperienceInYear": 5.0,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "Akshay Hazari",
            "id": "191128125000110"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Intern@HPE Security",
            "TotalExperienceInYear": 3.1,
            "CurrentJobProfile": "Software Engineer",
            "State": "AZ",
            "FullName": "YOGESH PANDEY",
            "Country": "USA",
            "id": "191128010301111",
            "City": "Tempe"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "HSBC Software Development",
            "TotalExperienceInYear": 2.1,
            "CurrentJobProfile": "SOFTWARE ENGINEER",
            "State": "Arizona",
            "FullName": "AAAMIR SSHAIKH",
            "Country": "USA",
            "id": "1911280110581158",
            "City": "Tempe"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Cerner Corporation",
            "TotalExperienceInYear": 7.5,
            "CurrentJobProfile": "Software Engineer",
            "State": "KS",
            "FullName": "Santosh Desani",
            "Country": "U.S.",
            "id": "1911280116291129",
            "City": "Overland Park"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Yashitechnologies",
            "TotalExperienceInYear": 4.7,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "KUSUMA DEVI NAIDU",
            "id": "1911280222341134"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Atos Origin Ltd",
            "TotalExperienceInYear": 15.2,
            "CurrentJobProfile": "Software Engineer",
            "State": "Maharashtra",
            "FullName": "Aashish Sinha",
            "Country": "India",
            "id": "1911280234101110",
            "City": "Mumbai"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "SAP LABS INDIA",
            "TotalExperienceInYear": 5.5,
            "CurrentJobProfile": "Software Engineer",
            "State": "Karnataka",
            "FullName": "MOHAMMED ASHRAF",
            "Country": "India",
            "id": "1911280239331133",
            "City": "Bangalore"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "The Ladders Inc",
            "TotalExperienceInYear": 10.9,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "ANITHA SUBRAMANIAN",
            "id": "1911280244301130"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "TESCO Bengaluru",
            "TotalExperienceInYear": 1.2,
            "CurrentJobProfile": "Software Engineer",
            "State": "Karnataka",
            "FullName": "Dhananjay R B",
            "Country": "India",
            "id": "1911280254151115",
            "City": "Bangalore"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "HCL",
            "TotalExperienceInYear": 6.6,
            "CurrentJobProfile": "Software engineer",
            "FullName": "CHANTI K",
            "id": "1911280257191119"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "Liftoff LLC",
            "TotalExperienceInYear": 5.9,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "HARSHA SAGAR K M",
            "id": "1911280607191119"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "PayU Payments Private Ltd",
            "TotalExperienceInYear": 6.6,
            "CurrentJobProfile": "Software Engineer",
            "FullName": "Ankit Rustagi",
            "id": "1911280657161116",
            "City": "Ghaziabad"
        },
        {
            "score": 75.0,
            "CurrentEmployer": "FUSION INFORMATICS TECHNOLOGY PVT LTD",
            "TotalExperienceInYear": 10.7,
            "CurrentJobProfile": "SOFTWARE ENGINEER",
            "State": "Gujarat",
            "FullName": "Majidkhan Imtiyazkhan Pathan",
            "Country": "India",
            "id": "1911280725501150",
            "City": "Ahmedabad"
        }
    ]
}

5. Match

You will find Resumes/Job Descriptions matching your input documents. There are four types of matching cases as follows:

  • Resume to Resume: Get resumes from the index which matches the input resume.
  • Resume to JD: Get Job Descriptions from the index which matches the input resume.
  • JD to JD: Get Job Descriptions from the index which matches the input Job Descriptions.
  • JD To Resume: Get resumes from the index which matches with input Job Descriptions.

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

JSON Request for Match

Click for more details
{
  "index": {
    "indexType": "Resume/JD",
    "indexKey": "Your user key"
  },
	"match": {
		"docType": "Resume/JD",
		"jsonData": "RChilli Resume/JD output in Base64"
 }

         

JSON Response for Match

Click for more details
{
    "count": 580,
    "pageStart": 0,
    "pageSize": 10,
    "records": [
        {
            "score": 100.0,
            "CurrentEmployer": "Henry Ford Hospital",
            "TotalExperienceInYear": 11.6,
            "CurrentJobProfile": "Cardiologist",
            "State": "IL",
            "FullName": "John Deo",
            "Country": "USA",
            "id": "Resume_0001111200122052956156",
            "City": "Chicago"
        },
        {
            "score": 100.0,
            "CurrentEmployer": "Henry Ford Hospital",
            "TotalExperienceInYear": 11.6,
            "CurrentJobProfile": "Cardiologist",
            "State": "IL",
            "FullName": "John Deo",
            "Country": "USA",
            "id": "unique subuser id_111002",
            "City": "Chicago"
        },
        {
            "score": 22.09,
            "CurrentEmployer": "ILLINOIS STATE UNIVERSITY",
            "TotalExperienceInYear": 47.6,
            "CurrentJobProfile": "MOTORCYCLE SAFETY PROGRAM INSTRUCTOR",
            "State": "IL",
            "FullName": "BRUCE M. GRZEGORZEWSKI",
            "Country": "USA",
            "id": "Resume_0001111200122043030130",
            "City": "Chillicothe"
        },
        {
            "score": 20.88,
            "CurrentEmployer": "Navarro Discount Pharmacies",
            "TotalExperienceInYear": 22.1,
            "CurrentJobProfile": "Director of Pharmacy Systems",
            "State": "Florida",
            "FullName": "Meghann Chilcott",
            "Country": "USA",
            "id": "Resume_0001111200123062752152",
            "City": "Sunrise"
        },
        {
            "score": 20.59,
            "CurrentEmployer": "Caterpillar Inc",
            "TotalExperienceInYear": 18.1,
            "CurrentJobProfile": "Engineer",
            "State": "IL",
            "FullName": "YUXIANG GU",
            "Country": "USA",
            "id": "Resume_000111120020503500727",
            "City": "DUNLAP"
        },
        {
            "score": 18.9,
            "CurrentEmployer": "Hub Group",
            "TotalExperienceInYear": 12.0,
            "CurrentJobProfile": "Oracle Fusion HCM Consultant",
            "State": "IL",
            "FullName": "Karthik Chennuri",
            "Country": "USA",
            "id": "Resume_0001111200122053335135",
            "City": "Oak Brook"
        },
        {
            "score": 18.66,
            "CurrentEmployer": "Navistar International Trucking",
            "TotalExperienceInYear": 26.0,
            "CurrentJobProfile": "Engineering Analyst",
            "State": "MI",
            "FullName": "CHANDRA RACHAKONDA",
            "Country": "USA",
            "id": "Resume_0001111200122051439139",
            "City": "Saline"
        },
        {
            "score": 17.98,
            "CurrentEmployer": "DaimlerChrysler Corporation",
            "TotalExperienceInYear": 23.11,
            "CurrentJobProfile": "Program Management Analyst",
            "State": "MI",
            "FullName": "Beth L. Sommers",
            "Country": "USA",
            "id": "Resume_0001111200122051014114",
            "City": "Goodrich"
        },
        {
            "score": 17.98,
            "TotalExperienceInYear": 18.5,
            "CurrentJobProfile": "Independent Consultant",
            "State": "IL",
            "FullName": "Richard F. Bailey",
            "Country": "USA",
            "id": "Resume_0001111200122045259159",
            "City": "Oak Park"
        },
        {
            "score": 17.849998,
            "CurrentEmployer": "IBM",
            "TotalExperienceInYear": 14.1,
            "CurrentJobProfile": "Staff Software Engineer",
            "State": "CA",
            "FullName": "Paul Ellsworth",
            "Country": "USA",
            "id": "Resume_0001111200122053844144",
            "City": "Morgan Hill"
        }
    ]
}
         

6. Delete

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

JSON Request for Delete

{
  "index": {
    "indexType": "Resume",
    "indexKey": "Your user key",
    "subUserId": "Your user's unique id"
  },
  "query": {
    "id": [
      "1911200457461146","1911200524341134"
    ]
  },
  "commit": true
}
         

JSON Response for Delete

{
    "status": "200",
    "indexType": "Resume",
    "output": "indexes deleted successfully"
}        

7. Analyze

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.

JSON Request For Analyze

{
    "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"
    }

}
         

JSON Response for Analyze

[
    {
        "start": 0,
        "end": 15,
        "entity": "Project Manager",
        "type": "JobTitle",
        "weight": 36.84
    },
    {
        "start": 72,
        "end": 77,
        "entity": "Wipro",
        "type": "Organization",
        "weight": 15.79
    },
    {
        "start": 48,
        "end": 54,
        "entity": "B.tech",
        "type": "Degree",
        "weight": 15.79
    },
    {
        "start": 98,
        "end": 102,
        "entity": "Java",
        "type": "Skill",
        "weight": 7.89
    },
    {
        "start": 107,
        "end": 110,
        "entity": "Php",
        "type": "Skill",
        "weight": 7.89
    },
    {
        "start": 60,
        "end": 64,
        "entity": "Pune",
        "type": "City",
        "weight": 5.26
    },
    {
        "start": 20,
        "end": 29,
        "entity": " 15 Year ",
        "type": "ExperienceLevel",
        "weight": 10.53
    }
]

         


8. Index Count

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.

JSON Request for Index Count

{
    "index": {
        "indexKey": "your user key",
        "subUserId": "your user's unique id"
    }
}
         

JSON Response for Index Count

{
    "totalCount": 2,
    "count": {
        "Jd": 1,
        "Resume": 1
    }
}

         

9. Suggestions

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.

JSON Request for Suggestion

{
    "index": {
        "indexType": "Resume",
        "indexKey": "Your user key"
    },
    "keyword": "soft",
    "fieldType": "jobprofile",
    "limit": 25
}
         

JSON Response for Suggestion

[{
    "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",
    ]
}]
         

10. Spell Checking

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

JSON Request for Spell Checking

{
    "index": {
        "indexType": "Resume",
        "indexKey": “API key "
    },
    "keyword": "projct Manager"
    "fieldType": "jobprofile"
}
         

JSON Response for Spell Checking

[
    {
        "SearchWord": "projct manager",
        "Suggestions": [
            "project manager",
            "product manager"
        ]
    }
]

         

Features


1. Geographical Search

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 can select different parameters for measuring the distance range like KM and mile.

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

JSON Request in Geo Search for with location (Option 1)

"geoSearch": {
    "city": "Pune",
    "state": "Maharastra",
    "country": "India",
    "radius": 50,
    "distanceUnit": "mile"
  }

JSON Request in Geo Search for with location (Option 2)

"geoSearch": {
    "city": "Pune",
    "state": "Maharastra",
    "country": "India",
    "radius": 50,
    "distanceUnit": "mile"
  }

2. Facets

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:

  • Fields: You can have an array (ordered series) of fields as a result of facets.
  • Limit: No. of values returns in a facet is 10 by default.

JSON Request for Facets

"facet": {
    "fields": [
        "JobProfile",
        "Employer",
        "Institute"
    ],
    "limit": 10
}
        

JSON Response for Facets

Along with Simple/Boolean search result, you can find facets result as:

"facet": {
    "JobProfile": [{
                "value": "Software Engineer",
                "count": 22
            }

         

Here is the list of facets fields available for Resume and JD.

Resume Facets

CurrentJobProfile
PreviousJobProfile
CurrentEmployer
PreviousJobProfile
Degree
Institute
Skill
TotalExperienceRange
City
State
Country

JD Facets

JobProfile
Employer
Degree
Skill
TotalExp
City
State
Country


3. Filter

You can filter your results by selecting further fields shown in facets.

This filter option is available in both Simple Search and Boolean Search both.

JSON Request for Filter

"fitler": {
    "JobProfile": ["associate", "project manager"],
    "Degree": ["b.tech"]
}
         

JSON Response for Filter

{
    "count": 10,
    "pageStart": 0,
    "pageSize": 10,
    "records": [
        {
            "score": 100,
            "id": "1911210453421234", 

        }
  ]
}
         

4. Pagination

Pagination helps you to fetch data in batches call as a page. It has page size which means you can customize the no. of records you want to fetch in one API call. You can also customize the page number like from where the record should start returning. It is helpful when your search/match query finds a large number of documents.

Request parameters are described below:

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.

JSON request for Pagination

 "pageSize": 10,
 "pageStart": 0,

JSON Response for Pagination

{
    "count": 87,
    "pageStart": 20,
    "pageSize": 10,
    "records":["data"] 
}        

5. Explain Score

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.

Request for exlainScore

"explainScore": true,
"explainScoreType":"json",
         

Response for ExplainScoreType as text

[{
    "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"
}]
         


Response for ExplainScoreType as JSON

"explainationType":"json"
    "explaination": {
                "score": 85.88,
                "maxScore": 100.0,
                "Search": {
                    "score": 85.88,
                    "maxScore": 100.0,
                    "ExplainScore": [
                        {
                            "score": 32.94,
                            "maxScore": 41.18,
                            "entity": "JobProfile",
                            "value": "software developer"
                        },
                        {
                            "score": 41.18,
                            "maxScore": 41.18,
                            "entity": "CurrentJobProfile",
                            "value": "software developer"
                        },
                        {
                            "score": 0.0,
                            "maxScore": 17.65,
                            "entity": "Degree",
                            "value": "B.tech."
                        },
                        {
                            "score": 11.76,
                            "maxScore": 11.76,
                            "entity": "TotalExperienceInYear",
                            "value": "[5.0 TO Infinity]"
                        },
                        {
                            "score": 0.0,
                            "maxScore": 5.88,
                            "entity": "Skill",
                            "value": "Java"
                        },
                        {
                            "score": 0.0,
                            "maxScore": 5.88,
                            "entity": "Skill",
                            "value": "Php"
                        },
                        {
                            "score": 0.0,
                            "maxScore": 5.88,
                            "entity": "Skill",
                            "value": "Computer Science"
                        },
                        {
                            "score": 0.0,
                            "maxScore": 5.88,
                            "entity": "City",
                            "value": "Pune"
                        },
                        {
                            "score": 0.0,
                            "maxScore": 5.88,
                            "entity": "Country",
                            "value": "India"
                        }
                    ]
                }
            }
        },

         



6. Custom Weightage/Scoring

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.



7. Commit

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

8. De Duplication

Deduplication helps to avoid indexing duplicate records in search engine. Deduplication is an optional field that you can choose in:

  • Index method
  • Parse and Index method

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
    }
        

Request


A. 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.

B. Parse and Index Request

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.

C. Simple Search

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.

D. Boolean Search

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.

E. Match

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.

Response


A. Index method and Parse and Index method Response

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.

B. Search And Match Response

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

Useful Tip:

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