Spaces:
Sleeping
Sleeping
| 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() |