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