File size: 822 Bytes
bb6e8b2
 
 
 
 
 
 
 
 
520cfea
bb6e8b2
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import json

def load_job_descriptions(path='job_descriptions.json'):
    with open(path, 'r') as f:
        jobs = json.load(f)
    return jobs

def match_skills(resume_text, job_descriptions):
    results = []
    vectorizer = TfidfVectorizer().fit_transform([resume_text] + [job["description"] for job in job_descriptions])
    vectors = vectorizer.toarray()

    resume_vector = vectors[0]
    for idx, job in enumerate(job_descriptions):
        job_vector = vectors[idx + 1]
        similarity = cosine_similarity([resume_vector], [job_vector])[0][0]
        results.append({"role": job["role"], "match": round(similarity * 100, 2)})
    return sorted(results, key=lambda x: x["match"], reverse=True)