File size: 1,949 Bytes
04f4231
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import gradio as gr
from sentence_transformers import SentenceTransformer, util

model = SentenceTransformer('paraphrase-MiniLM-L6-v2')

def match_resume(resume, job1, job2, job3):
    # Calculate similarity
    resume_embedding = model.encode(resume, convert_to_tensor=True)

    # Encode each job description using a loop
    job_embeddings = []
    for job in [job1, job2, job3]:
        job_embeddings.append(model.encode(job, convert_to_tensor=True))

    # Calculate the similarities using a loop
    similarities = []
    for job_emb in job_embeddings:
        similarity = util.pytorch_cos_sim(resume_embedding, job_emb).item() * 100
        similarities.append(similarity)

    best_job_index = 1
    best_match = similarities[0]

    for i in range(1, len(similarities)):
        if similarities[i] > best_match:
            best_match = similarities[i]
            best_job_index = i + 1


    results = []
    for i, sim in enumerate(similarities):
      results.append(f"Job {i+1}: {sim:.2f}% match")

    results.append(f"Best Match: Job {best_job_index} with {best_match:.2f}%")

    return "\n".join(results)

# Gradio interface
interface = gr.Interface(fn=match_resume,
                         inputs=["text", "text", "text", "text"],
                         outputs="text",
                             examples=[
        ["Experienced software developer skilled in Python and AI.",
         "Looking for a Python developer with experience in AI and ML.",
         "Seeking a data scientist with expertise in deep learning.",
         "Hiring a web developer proficient in JavaScript and React."],

        ["Marketing specialist with a focus on digital campaigns.",
         "Seeking a social media expert to manage brand presence.",
         "Hiring a digital marketer with experience in SEO and PPC.",
         "Looking for a content writer to create engaging blog posts."]
    ]
                         )

interface.launch()