Skill Experience Matching
The Skill Experience Matching feature improves candidate matching by considering both the skills required in a Job Description (JD) and the experience associated with those skills.
Standard skill matching determines whether the candidate has the skills required by the JD. However, for some roles, having the skill alone may not be sufficient. The candidate may also need a specific amount of experience using that skill.
When skillExperienceMatch is enabled, Search and Match evaluates the
skill and its associated experience together during JD-to-Resume
matching.
For example, consider a JD with the following requirements:
-
Management – 3 to 8 years
-
Team Leadership – 5 years
-
Project Management – 4 years
If a candidate has Management as a skill, standard skill matching can identify the skill as relevant. With Skill Experience Matching enabled, the API also evaluates the experience associated with Management against the 3-to-8-year requirement specified in the JD.
This helps distinguish between candidates who simply possess a required skill and candidates who also have the required experience in that skill.
How Skill Experience Matching Works
Skill Experience Matching uses skill-specific experience extracted from the JD and compares it with the candidate's corresponding skill experience.
The process works as follows:
-
The JD Parser extracts skills along with their associated experience requirements.
-
The JD is indexed using the ParseAndIndex API version 4.0.
-
When
skillExperienceMatchis set totrue, the Match API identifies JD skills that contain experience requirements. -
The API evaluates those skills against the candidate's skills and associated experience.
-
The skill and its experience are considered together while calculating the applicable skill contribution to the matching score.
Note:-
Skills and their associated experience are treated as a combined matching entity.
-
The applicable skill weightage is considered during matching.
-
For example:
JD requirement
Management – 3 to 8 years
Consider two candidates:
Candidate A
Management – 5 years
The candidate's Management experience falls within the experience requirement specified in the JD.
Candidate B
Management – 1 year
Although the candidate has the Management skill, the associated experience does not meet the 3-to-8-year requirement.
Skill Experience Matching therefore provides a more precise evaluation than matching on the skill name alone.
Supported Match Type
Skill Experience Matching is applicable to:
-
JD to Resume
Supported APIs
Skill Experience Matching is supported with the following Search and Match APIs:
Prerequisite
The JD must contain skills with associated experience information.
To extract skill experience during JD parsing, enable the
experiencewithskill setting:
{
"apisetting": {
"experiencewithskill": true
}
}
The JD must be indexed using the Parse and Index v4.0 API.
Usage
Use the skillExperienceMatch parameter to enable or disable Skill
Experience Matching.
To enable the feature:
"skillExperienceMatch": true
To disable the feature:
"skillExperienceMatch": false
The parameter accepts Boolean values only.
Sample Request
{
"index": {
"indexType": "Resume",
"indexKey": "Use your indexKey",
"subUserId": "Your_subUserId"
},
"match": {
"matchId": [
"MichaelResumeInferred2026"
],
"documentId": "JavaExpSkillJD2026",
"docType": "JD"
},
"pageSize": 10,
"pageStart": 0,
"explainScore": true,
"explainScoreType": "json",
"skillExperienceMatch": true
}
Sample Response
{
"count": 1,
"pageStart": 0,
"pageSize": 10,
"records": [
{
"id": "MichaelResumeInferred2026",
"score": 54.46,
"TotalExperienceInYear": 16.4,
"CurrentEmployer": "Tata Consultancy Services",
"CurrentJobProfile": "Java Developer",
"FullName": "Christopher Michael",
"SubUserId": "manoj"
}
],
"explainScore": [
{
"id": "MichaelResumeInferred2026",
"SubUserId": "manoj",
"explaination": {
"score": 54.46,
"maxScore": 100.0,
"Match": {
"score": 54.46,
"maxScore": 100.0,
"detailScore": [
{
"score": 30.61,
"maxScore": 30.61,
"entity": "CurrentJobProfile",
"value": "java developer",
"sourceType": "JobProfileTitle",
"sourceValue": "Java Developer",
"jobProfileGroup": "Java Developers"
},
{
"score": 0.0,
"maxScore": 15.31,
"entity": "QualificationsPreferred",
"value": "Bachelor of Technology",
"sourceType": "QualificationsPreferred",
"sourceValue": "Bachelor of Computer Science OR Bachelor of Computer Science and Engineering OR Bachelor of Technology OR Master of Computer Applications OR Master of Science"
},
{
"score": 0.0,
"maxScore": 10.2,
"entity": "MinimumYearsExperience",
"value": "[10.0 TO * ]",
"sourceType": "MinimumYearsExperience",
"sourceValue": "[10.0 TO * ]"
},
{
"score": 6.32,
"maxScore": 6.32,
"entity": "SkillHaveExp",
"value": "Java",
"sourceType": "RequiredSkillSet",
"sourceValue": "J2EE OR Java",
"skillGroup": "Java Development and Ecosystem",
"skillExperience": "[5.0 TO *]"
},
{
"score": 5.1,
"maxScore": 5.1,
"entity": "Category",
"value": "information",
"sourceType": "Domains",
"sourceValue": "Information"
},
{
"score": 0.0,
"maxScore": 5.1,
"entity": "JobLocationCity",
"value": "Mohali",
"sourceType": "JobLocationCity",
"sourceValue": "Mohali"
},
{
"score": 3.17,
"maxScore": 3.17,
"entity": "SkillHaveExp",
"value": "rest",
"sourceType": "RequiredSkillSet",
"sourceValue": "REST",
"skillGroup": "State & Systems Modeling"
},
{
"score": 2.02,
"maxScore": 3.17,
"entity": "SkillAlias",
"value": "web development",
"sourceType": "RequiredSkillSet",
"sourceValue": "Programming Skills",
"skillGroup": "Diverse Programming Languages and Paradigms"
},
{
"score": 0.0,
"maxScore": 3.17,
"entity": "RequiredSkillSet",
"value": "Java Web Services",
"sourceType": "RequiredSkillSet",
"sourceValue": "Java Web Services",
"skillGroup": "Jakarta EE & Web Services"
},
{
"score": 0.0,
"maxScore": 2.04,
"entity": "JobLocationCountry",
"value": "India",
"sourceType": "JobLocationCountry",
"sourceValue": "India"
},
{
"score": 1.18,
"maxScore": 1.18,
"entity": "SkillHaveExp",
"value": "soap",
"sourceType": "RequiredSkillSet",
"sourceValue": "SOAP",
"skillGroup": "Network and Communication Protocols"
},
{
"score": 0.0,
"maxScore": 1.02,
"entity": "JobLocationState",
"value": "Punjab",
"sourceType": "JobLocationState",
"sourceValue": "Punjab"
},
{
"score": 0.53,
"maxScore": 0.82,
"entity": "SkillAlias",
"value": "software development life cycle",
"sourceType": "PreferredSkillSet",
"sourceValue": "Design and Implementation",
"skillGroup": "Implementation Methodologies & Services"
},
{
"score": 0.66,
"maxScore": 0.82,
"entity": "SkillAlias",
"value": "microservices",
"sourceType": "PreferredSkillSet",
"sourceValue": "Microservices",
"skillGroup": "Server & Integration Services"
},
{
"score": 0.82,
"maxScore": 0.82,
"entity": "SkillHaveExp",
"value": "git",
"sourceType": "PreferredSkillSet",
"sourceValue": "Git",
"skillGroup": "Version Control & GIS"
},
{
"score": 0.66,
"maxScore": 0.82,
"entity": "SkillHaveExp",
"value": "Delivery Pipelines",
"sourceType": "PreferredSkillSet",
"sourceValue": "CI/CD",
"skillGroup": "Integration & System Development"
},
{
"score": 0.66,
"maxScore": 0.82,
"entity": "SkillAlias",
"value": "spring framework",
"sourceType": "PreferredSkillSet",
"sourceValue": "Spring Framework",
"skillGroup": "Spring Framework & API Tools"
},
{
"score": 0.0,
"maxScore": 0.82,
"entity": "PreferredSkillSet",
"value": "Design Patterns",
"sourceType": "PreferredSkillSet",
"sourceValue": "Design Patterns",
"skillGroup": "Software Design & Patterns"
},
{
"score": 0.0,
"maxScore": 0.82,
"entity": "PreferredSkillSet",
"value": "Multi-Threaded Application",
"sourceType": "PreferredSkillSet",
"sourceValue": "Multi-Threaded Application",
"skillGroup": "Threading & Parallel Computing"
},
{
"score": 0.0,
"maxScore": 0.82,
"entity": "PreferredSkillSet",
"value": "Regular Expressions",
"sourceType": "PreferredSkillSet",
"sourceValue": "Regular Expressions",
"skillGroup": "Molecular Biology & Protein Studies"
},
{
"score": 0.0,
"maxScore": 0.82,
"entity": "PreferredSkillSet",
"value": "Data Parsing",
"sourceType": "PreferredSkillSet",
"sourceValue": "Data Parsing",
"skillGroup": "Data Processing & Parsing"
},
{
"score": 0.42,
"maxScore": 0.52,
"entity": "SkillAlias",
"value": "hibernate",
"sourceType": "PreferredSkillSet",
"sourceValue": "Hibernate",
"skillGroup": "Query Languages & Frameworks"
},
{
"score": 0.42,
"maxScore": 0.52,
"entity": "SkillHaveExp",
"value": "SQL",
"sourceType": "PreferredSkillSet",
"sourceValue": "Performance Tuning",
"skillGroup": "Tuning & Performance Optimization"
},
{
"score": 0.42,
"maxScore": 0.52,
"entity": "SkillWithoutExp",
"value": "PostgreSQL",
"sourceType": "PreferredSkillSet",
"sourceValue": "Elasticsearch",
"skillGroup": "Search Engine Optimization"
},
{
"score": 0.42,
"maxScore": 0.52,
"entity": "SkillHaveExp",
"value": "SQLite",
"sourceType": "PreferredSkillSet",
"sourceValue": "Mysql",
"skillGroup": "MySQL & Database Management"
},
{
"score": 0.0,
"maxScore": 0.52,
"entity": "PreferredSkillSet",
"value": "Solr",
"sourceType": "PreferredSkillSet",
"sourceValue": "Solr",
"skillGroup": "Search Engines & Tools"
},
{
"score": 0.0,
"maxScore": 0.52,
"entity": "PreferredSkillSet",
"value": "Relational Database Design",
"sourceType": "PreferredSkillSet",
"sourceValue": "Relational Database Design",
"skillGroup": "Database Design and Management"
},
{
"score": 0.0,
"maxScore": 0.52,
"entity": "PreferredSkillSet",
"value": "NLP",
"sourceType": "PreferredSkillSet",
"sourceValue": "NLP",
"skillGroup": "Semantic & Linguistic Analysis"
},
{
"score": 0.0,
"maxScore": 0.52,
"entity": "PreferredSkillSet",
"value": "Database Architecture",
"sourceType": "PreferredSkillSet",
"sourceValue": "Database Architecture",
"skillGroup": "Data Integration & Architecture"
},
{
"score": 0.0,
"maxScore": 0.32,
"entity": "PreferredSkillSet",
"value": "ML",
"sourceType": "PreferredSkillSet",
"sourceValue": "ML",
"skillGroup": "Machine Learning & Data Classification"
},
{
"score": 0.31,
"maxScore": 0.31,
"entity": "SkillHaveExp",
"value": "maven",
"sourceType": "PreferredSkillSet",
"sourceValue": "Maven",
"skillGroup": "Apache Maven & Build Tools"
},
{
"score": 0.25,
"maxScore": 0.31,
"entity": "SkillAlias",
"value": "system analysis",
"sourceType": "PreferredSkillSet",
"sourceValue": "System Analysis",
"skillGroup": "Systems Analysis & Design"
},
{
"score": 0.31,
"maxScore": 0.31,
"entity": "SkillHaveExp",
"value": "jira",
"sourceType": "PreferredSkillSet",
"sourceValue": "JIRA",
"skillGroup": "JIRA & Collaboration Tools"
},
{
"score": 0.0,
"maxScore": 0.31,
"entity": "PreferredSkillSet",
"value": "Code Optimization",
"sourceType": "PreferredSkillSet",
"sourceValue": "Code Optimization",
"skillGroup": "Optimization & Programming"
},
{
"score": 0.0,
"maxScore": 0.28,
"entity": "PreferredSkillSet",
"value": "Proven Ability",
"sourceType": "PreferredSkillSet",
"sourceValue": "Proven Ability",
"skillGroup": "Skill Development & Industrial Processes"
},
{
"score": 0.18,
"maxScore": 0.23,
"entity": "SkillAlias",
"value": "troubleshooting",
"sourceType": "PreferredSkillSet",
"sourceValue": "Troubleshooting",
"skillGroup": "Problem Solving and Solution-Oriented Thinking"
}
]
}
}
}
]
}
The skillExperience parameter is returned in the response to
identify which skills have associated experience and were considered when
matching the candidate's skills.
Error Handling
The skillExperienceMatch parameter accepts only Boolean values.
If an invalid value is provided, the API returns:
Error Code:2189
Message:
skillExperienceMatch type must have value either true or false.
