# Where Are the Jinja Templates for Section Parsing in the Hiring Agent?

> Find Jinja templates for resume section parsing in the interviewstreet/hiring-agent repository. Learn where to locate these templates loaded at runtime by the TemplateManager class.

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

---

**The Jinja templates for resume section parsing are located in the `prompts/templates` directory, loaded at runtime by the `TemplateManager` class.**

The **interviewstreet/hiring-agent** repository uses a centralized template system to manage LLM prompts for parsing specific resume sections. Each section of a candidate's resume—such as work history, education, and skills—has a dedicated Jinja template that defines the extraction logic. Understanding the location and structure of these **Jinja templates for section parsing** is essential for customizing the hiring agent's behavior or debugging prompt issues.

## Template Directory Structure

All section-specific prompt templates reside in the **`prompts/templates`** directory at the repository root. This location is hardcoded as the source directory for the Jinja `Environment` configured in the template manager.

The repository includes the following template files:

- `basics.jinja` – Prompt for extracting contact information and personal details
- `work.jinja` – Prompt for parsing employment history and job descriptions
- `education.jinja` – Prompt for academic background and qualifications
- `skills.jinja` – Prompt for technical and soft skills extraction
- `projects.jinja` – Prompt for personal or professional project details
- `awards.jinja` – Prompt for honors and recognition entries
- `system_message.jinja` – System-level instruction template
- `github_project_selection.jinja` – Template for selecting relevant GitHub projects
- `resume_evaluation_criteria.jinja` – Evaluation criteria template
- `resume_evaluation_system_message.jinja` – System message for resume evaluation

## How TemplateManager Loads the Templates

The **`TemplateManager`** class in [`prompts/template_manager.py`](https://github.com/interviewstreet/hiring-agent/blob/main/prompts/template_manager.py) handles the runtime loading and rendering of these templates. According to the source code, it initializes a Jinja `Environment` using `FileSystemLoader("prompts/templates")` to point to the templates directory.

During initialization (lines 21-33 and 38-55 in the source), the manager maps each logical section name to its corresponding filename and pre-loads the templates into memory. This design centralizes all section-specific prompts, making them easy to retrieve programmatically without filesystem lookups during rendering.

## Rendering Templates Programmatically

To render a specific section template, instantiate the `TemplateManager` and call the `render_template()` method with the section name and required variables.

```python
from prompts.template_manager import TemplateManager

# Initialize the manager (defaults to prompts/templates)

tm = TemplateManager()

# Render the "work" section with resume text

rendered_prompt = tm.render_template(
    "work",
    text_content="John Doe worked at Acme Corp from 2015-2020 as Senior Engineer..."
)

print(rendered_prompt)

```

To discover available sections without hardcoding names, use the `get_available_sections()` method:

```python

# List all supported section templates

available = tm.get_available_sections()
print("Supported sections:", available)

```

## Summary

- **Location**: All Jinja templates for section parsing reside in `prompts/templates/`
- **Loader**: The `TemplateManager` class in [`prompts/template_manager.py`](https://github.com/interviewstreet/hiring-agent/blob/main/prompts/template_manager.py) initializes a Jinja `Environment` with a `FileSystemLoader` pointing to this directory
- **Sections**: Ten templates cover resume sections including basics, work, education, skills, projects, and awards, plus system and evaluation templates
- **Runtime**: Templates are pre-loaded during `TemplateManager` initialization (lines 21-55) and rendered via the `render_template()` method

## Frequently Asked Questions

### Where are the Jinja templates stored in the hiring-agent repository?

The templates are stored in the `prompts/templates` directory at the repository root. This path is configured as the source for the `FileSystemLoader` in the `TemplateManager` class.

### How does TemplateManager load the section templates?

The `TemplateManager` initializes a Jinja `Environment` using `FileSystemLoader("prompts/templates")` and pre-loads all section templates during instantiation. It maintains an internal mapping between logical section names like "work" or "education" and their corresponding `.jinja` files.

### What sections have dedicated Jinja templates?

The repository provides templates for: **basics**, **work**, **education**, **skills**, **projects**, **awards**, **system_message**, **github_project_selection**, **resume_evaluation_criteria**, and **resume_evaluation_system_message**.

### How do I render a specific section template programmatically?

Import the `TemplateManager` from `prompts.template_manager`, instantiate it, and call `render_template(section_name, **kwargs)` with the section identifier and any variables required by the template, such as `text_content` for the raw resume text.