File size: 1,353 Bytes
70bdcac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os, json
from openai import AzureOpenAI
from dotenv import load_dotenv


load_dotenv()
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_KEY").strip(),
    azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT").strip(),
    api_version=os.getenv("AZURE_OPENAI_VERSION").strip()
)
DEPLOY = os.getenv("AZURE_OPENAI_DEPLOYMENT").strip()

def score(resume, jd):
    r = client.chat.completions.create(
        model=DEPLOY,
        max_completion_tokens=800,
        temperature=0.8,
        messages=[
            {"role":"system","content":"Act as an ATS. Compare résumé with JD. Return JSON: overall_score(0-100) and category_scores{skills,experience,education}, plus top_skill_gaps list."},
            {"role":"user","content":f"JOB_DESCRIPTION:\n{jd}\n\nRESUME:\n{resume}"}
        ]
    )
    return json.loads(r.choices[0].message.content.strip())

def improve(resume, jd=None):
    p = ("Provide bullet suggestions to raise the score. " + ("Tailor to this JD:\n"+jd+"\n" if jd else "") + "Here is the résumé:\n"+resume)
    r = client.chat.completions.create(
        model=DEPLOY,
        max_completion_tokens=800,
        temperature=0.7,
        messages=[
            {"role":"system","content":"You are a résumé coach."},
            {"role":"user","content":p}
        ]
    )
    return r.choices[0].message.content.strip()