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()
|