Correct approximation, similarity algorithm?

Hi,
I want to get the best person for the best job. So that I used nodeSimilarity. But I don't know if it is the best approach.

guille_rr_0-1671186261127.png

I create the code:

CALL gds.graph.project(
  'test1',                     
  ['Job', 'Candidate', 'Skill'],                       
  {                                         
    HAS_COMPETENCY: { properties: "experience_years" },
    IS_REQUIRED: { properties: "experience_years" }   
  }
)YIELD graphName AS graph,relationshipProjection AS nodesProyection,nodeCount AS nodes,relationshipCount AS rels

And then

CALL gds.alpha.nodeSimilarity.filtered.stream('test1', {sourceNodeFilter:'Job', targetNodeFilter:'Candidate' } )
YIELD node1, node2, similarity
RETURN gds.util.asNode(node1).jobId AS job, gds.util.asNode(node2).name AS candidate, similarity
ORDER BY similarity DESCENDING

guille_rr_1-1671187083612.png

Thanks in advance!