# Prompt Templates for Resume Evaluation in the Hiring-Agent Repository

> Discover prompt templates for resume evaluation in the hiring agent repository. Use resume_evaluation_criteria for detailed scoring and resume_evaluation_system_message for system instructions.

- Repository: [HackerRank/hiring-agent](https://github.com/interviewstreet/hiring-agent)
- Tags: api-reference
- Published: 2026-07-11

---

**The hiring-agent repository provides two Jinja2 prompt templates for resume evaluation—`resume_evaluation_criteria` for detailed scoring rubrics and `resume_evaluation_system_message` for system-level instructions—both managed by the `TemplateManager` class.**

The interviewstreet/hiring-agent codebase uses a **TemplateManager** to orchestrate LLM interactions for automated candidate screening. These prompt templates define how the model evaluates resumes, establishing both behavioral constraints and concrete scoring criteria.

## Available Resume Evaluation Prompt Templates

The `prompts/templates` directory contains the Jinja2 files that power resume analysis. For evaluation tasks, the system relies on two complementary templates that work together to guide the LLM.

### Resume Evaluation Criteria Template

The **`resume_evaluation_criteria.jinja`** file contains the detailed scoring rubric that the LLM applies when rating a candidate’s resume. Located at `prompts/templates/resume_evaluation_criteria.jinja`, this template defines specific evaluation dimensions including open-source contributions, self-projects, production experience, technical skills, bonus points, and deduction criteria.

When rendered, this template injects the candidate’s resume content into a structured prompt that instructs the model to score each dimension according to predefined rules.

### Resume Evaluation System Message Template

The **`resume_evaluation_system_message.jinja`** file provides the system-level instruction that sets the LLM’s behavior, constraints, and output format for the evaluation task. Stored at `prompts/templates/resume_evaluation_system_message.jinja`, this template establishes the persona and boundaries the model must follow throughout the resume assessment process.

## How the TemplateManager Loads Prompts

The **TemplateManager** class handles template registration and rendering. During initialization, it scans the predefined template files in `prompts/templates` and registers them for use. The loading logic resides in [`prompts/template_manager.py`](https://github.com/interviewstreet/hiring-agent/blob/main/prompts/template_manager.py) (lines 35‑48), where the manager maps template names to their corresponding Jinja2 files.

```python
from prompts.template_manager import TemplateManager

tm = TemplateManager()
print(tm.get_available_sections())

```

This initialization makes both resume evaluation templates available for rendering throughout the application lifecycle.

## Rendering Resume Evaluation Prompts

You can programmatically generate the complete prompt suite by rendering these templates with the `TemplateManager`. The `render_template()` method accepts the template name and optional variables such as the resume text content.

To render the criteria prompt with a candidate’s resume:

```python
from prompts.template_manager import TemplateManager

tm = TemplateManager()
resume_text = "... (plain‑text resume) ..."
prompt = tm.render_template(
    "resume_evaluation_criteria",
    text_content=resume_text
)
print(prompt)

```

To retrieve the system message for resume evaluation:

```python
from prompts.template_manager import TemplateManager

tm = TemplateManager()
system_msg = tm.render_template("resume_evaluation_system_message")
print(system_msg)

```

## Summary

- The hiring-agent repository uses **Jinja2 prompt templates** located in `prompts/templates/` to standardize LLM interactions for resume screening.
- Two specific templates handle resume evaluation: **`resume_evaluation_criteria.jinja`** (scoring rubric) and **`resume_evaluation_system_message.jinja`** (system instructions).
- The **`TemplateManager`** class in [`prompts/template_manager.py`](https://github.com/interviewstreet/hiring-agent/blob/main/prompts/template_manager.py) manages template loading and rendering, registering available sections during initialization.
- Use **`render_template()`** with the section name and context variables to generate production-ready prompts for candidate evaluation.

## Frequently Asked Questions

### Where are the resume evaluation prompt templates stored in the hiring-agent repository?

The templates are stored in the `prompts/templates/` directory. Specifically, the resume evaluation criteria template is at `prompts/templates/resume_evaluation_criteria.jinja` and the system message template is at `prompts/templates/resume_evaluation_system_message.jinja`.

### What is the difference between the criteria and system message templates?

The **system message template** establishes the LLM’s role, constraints, and output format for the evaluation task, while the **criteria template** provides the specific scoring instructions and rubric details (technical skills, deductions, bonuses) that the model uses to rate the resume content.

### How do I render a resume evaluation prompt with candidate data?

Instantiate the `TemplateManager` class and call `render_template("resume_evaluation_criteria", text_content=resume_text)`, passing the candidate’s resume text as the `text_content` parameter. This injects the resume into the Jinja2 template and returns the complete prompt string.

### What class manages prompt template loading in the hiring-agent codebase?

The **`TemplateManager`** class, defined in [`prompts/template_manager.py`](https://github.com/interviewstreet/hiring-agent/blob/main/prompts/template_manager.py), manages all template operations. It scans the templates directory on initialization (lines 35‑48) and provides the `get_available_sections()` and `render_template()` methods for accessing and rendering prompt templates.