I am working on an IT recruitment platform. I want to give a score to each candidate when they apply for a job based on his skills. When matching I have identified different use cases as follows
It should be case-insensitive.
Eg:- JavaScript and JAVASCRIPT should identify as one thing.
Should be able to detect the similar words
Eg:- MUI and Material UI should be identify as a one thing
HTML and HTML5 should be able to identify a one thing
Spelling mistakes should be able to locate as well
Eg:- Java script and JavaScript is identified as one thing
Java script and javascript identify as one thing
Edge cases
Eg:- Java and java script should be identified as two things
React and React native should be identified as two things
This is my candidates array
const candidates = [
{
name:'pathum',
skills:['JS','MUI','React.js','CSS']
},
{
name:'Malith',
skills:['JavaScript','Material UI','React']
},{
name:'Saman',
skills:['React native','Node.js']
}
]
this is my jobDescription object
const jd = {
requriedSkills:['JAVASCRIPT','MATERIAL UI','REACT','CSS','NODEJS']
}
my algorithm is
skillsWeight = (100/requriedSkills.length) = 16.66
each and every skill the user has he will score 16.66.
So the score would be
pathum 66%
malith 49%
Saman 16%
I tried GPT-3-turbo AI. The problem with that is that can not identify the context (As far as I know). Also, there is everything we need to pass a text. I do want to pass these to the JS array and JobDescription object and get the results.
What is the most suitable ai for my use case?