File size: 2,366 Bytes
c912776
 
 
 
 
 
 
 
 
 
 
 
 
35159dc
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
title: Cv Job Matcher
emoji: 😻
colorFrom: green
colorTo: green
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false
license: apache-2.0
---

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
# CV to Job Description Matching Project
## Purpose of the Project
This project aims to help job seekers by matching their CVs to job descriptions from major companies using semantic similarity. By analyzing the text content of the CV, the system identifies and presents the top three job descriptions that best match the provided CV. Additionally, it provides translations for CVs that are not in English, as well as the corresponding job descriptions.

## Models
### Semantic Similarity Model
The project uses the **SentenceTransformer** model, specifically the `sentence-transformers/all-MiniLM-L6-v2`, to compute semantic similarity between the CV and job descriptions. The model works by converting both the CV and job descriptions into embeddings (vector representations of the text). It then calculates the cosine similarity between these embeddings to determine how closely the texts match in meaning. The higher the cosine similarity score, the more similar the texts are. This allows the system to rank the job descriptions and find the top 3 that best match the content of the provided CV.

### Translation Model
The project also uses the Hugging Face `pipeline` for language translation. The model used for translation is `facebook/nllb-200-distilled-600M`, a multilingual model capable of translating texts between multiple languages. The language of the input CV is detected using the `langdetect` library. If the CV is not in English, it is translated to English before performing semantic similarity comparison. Additionally, if the job descriptions need to be displayed in the CV's original language (if not in English), the model can translate them back to that language, ensuring the user sees relevant job descriptions in their native language.

## Expected Output from the Gradio Interface
- **Job Summaries**: The top 3 job descriptions that match the provided CV will be displayed, either in English or translated into the CV's original language.
- **Top 3 Matching Job Descriptions Plot**: A bar chart displaying the similarity scores of the top 3 matched job descriptions will be shown.