refactor(input): bake job normalizer prompt
This commit is contained in:
28
input/Docker/JobDescriptionNormalizerPrompt.md
Normal file
28
input/Docker/JobDescriptionNormalizerPrompt.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Default instructions that clean messy job descriptions before resume customization.
|
||||
# Customize only by modifying the container build.
|
||||
|
||||
You are an expert technical recruiter.
|
||||
|
||||
Given the following “job description” input, which may contain greetings, recruiter chatter,
|
||||
email signatures, address blocks, or forwarding artifacts, produce cleaned Markdown with
|
||||
this exact structure:
|
||||
|
||||
```
|
||||
Company: <company name in sentence case>
|
||||
Job Title: <role title in sentence case>
|
||||
|
||||
# Job Description
|
||||
<concise markdown-only job description>
|
||||
```
|
||||
|
||||
Guidelines:
|
||||
- Preserve every piece of content that belongs to the job description (responsibilities, requirements, benefits, etc.). Do **not** summarize, condense, or delete substantive details.
|
||||
- Only remove extraneous recruiter chatter such as greetings, signatures, contact blocks, forwarding notes, or metadata unrelated to the role itself.
|
||||
- If multiple companies or roles appear, pick the primary one the candidate should target.
|
||||
- Normalize whitespace, headings, and bullet lists in the Markdown output.
|
||||
- Omit personal identifiers for recruiters or candidates unless they are essential job facts.
|
||||
- If the source is missing company or job title, infer the best guess from the text and
|
||||
note that it is inferred (e.g., “<Company> (inferred)”).
|
||||
- Never add commentary outside the format shown above.
|
||||
|
||||
The raw content follows verbatim. Retain all job-related text.
|
||||
@@ -32,8 +32,7 @@ TEMPLATES_DIR = Path("/templates")
|
||||
TEMPLATE_CACHE = Path("/tmp/templates")
|
||||
PROMPT_TEMPLATE = TEMPLATES_DIR / "ResumeCustomizerPrompt.md"
|
||||
PROMPT_TEMPLATE_EXAMPLE = TEMPLATES_DIR / "ResumeCustomizerPrompt.md.example"
|
||||
NORMALIZER_TEMPLATE = TEMPLATES_DIR / "JobDescriptionNormalizerPrompt.md"
|
||||
NORMALIZER_TEMPLATE_EXAMPLE = TEMPLATES_DIR / "JobDescriptionNormalizerPrompt.md.example"
|
||||
NORMALIZER_TEMPLATE = Path('/app/JobDescriptionNormalizerPrompt.md')
|
||||
|
||||
POLL_INTERVAL_SECONDS = int(os.environ.get("POLL_INTERVAL_SECONDS", "5"))
|
||||
CODEX_COMMAND_TEMPLATE = os.environ.get(
|
||||
@@ -89,12 +88,11 @@ def ensure_environment() -> None:
|
||||
TEMPLATE_CACHE,
|
||||
"Resume customization prompt",
|
||||
)
|
||||
RESOLVED_NORMALIZER_TEMPLATE = resolve_template(
|
||||
NORMALIZER_TEMPLATE,
|
||||
NORMALIZER_TEMPLATE_EXAMPLE,
|
||||
TEMPLATE_CACHE,
|
||||
"Job description normalizer prompt",
|
||||
)
|
||||
RESOLVED_NORMALIZER_TEMPLATE = NORMALIZER_TEMPLATE
|
||||
if not RESOLVED_NORMALIZER_TEMPLATE.exists():
|
||||
raise FatalConfigurationError(
|
||||
f"Job description normalizer prompt missing at {RESOLVED_NORMALIZER_TEMPLATE}"
|
||||
)
|
||||
|
||||
|
||||
def resolve_template(
|
||||
|
||||
Reference in New Issue
Block a user