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)