draftme / core /prompt_builder.py
dokster's picture
Upload 105 files
7d2fea2 verified
Raw
History Blame Contribute Delete
1.28 kB
from models.cv import CVData
def build_extract_prompt(cv_text: str) -> list[dict]:
return [
{
"role": "system",
"content": (
"You are a CV parser. Extract structured data exactly as it appears. "
"Do not infer, add, or summarize. Return only JSON."
),
},
{"role": "user", "content": cv_text},
]
def build_optimize_prompt(
cv_data: CVData,
jd_text: str,
feedback: str,
tone: str,
language: str,
iteration: int,
) -> list[dict]:
system = (
"You are a professional resume writer. Rules:\n"
"- Output a single self-contained HTML string in key 'html'\n"
"- One page only when rendered to PDF\n"
"- Inline CSS only, no images, ATS-safe fonts (Arial, Calibri, Georgia)\n"
"- Do not invent facts. Only use information from the provided CV JSON.\n"
f"- Tone: {tone}. Language: {language}.\n"
f"- This is iteration {iteration}."
)
user = cv_data.model_dump_json() + "\n\nJob Description:\n" + jd_text
if feedback:
user += f"\n\nPrevious attempt failed filters:\n{feedback}\nFix these issues."
return [{"role": "system", "content": system}, {"role": "user", "content": user}]