Spaces:
Running
Running
File size: 1,551 Bytes
5dec17e |
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 39 |
import requests
from docx import Document
from data_models.resume import Resume
from ats_optimizer.data_models.job_description import JobDescription
from ats_optimizer.data_models.resume import Resume
class ResumeOptimizer:
def __init__(self, api_key: str):
self.api_key = api_key
# self.template = "templates/professional.docx"
self.template = "templates/Ramen_DXC.docx"
def rewrite_resume(self, resume: Resume, jd: JobDescription) -> Resume:
"""Step 4: AI rewriting with formatting preservation"""
prompt = self._build_optimization_prompt(resume, jd)
response = requests.post(
"https://api.deepseek.com/v1/chat/completions",
headers={"Authorization": f"Bearer {self.api_key}"},
json={
"model": "deepseek-chat",
"messages": [{
"role": "user",
"content": prompt
}],
"temperature": 0.7
}
)
# Apply optimized content to original format
optimized_content = response.json()["choices"][0]["message"]["content"]
return self._apply_formatting(resume, optimized_content)
def _apply_formatting(self, original: Resume, new_content: str) -> Resume:
"""Preserve original formatting with new content"""
doc = Document(original.file_path)
# Advanced formatting preservation logic
return Resume.from_docx(doc, new_content) |