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)