Where Are the Jinja Templates for Section Parsing in the Hiring Agent?
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 detailswork.jinja– Prompt for parsing employment history and job descriptionseducation.jinja– Prompt for academic background and qualificationsskills.jinja– Prompt for technical and soft skills extractionprojects.jinja– Prompt for personal or professional project detailsawards.jinja– Prompt for honors and recognition entriessystem_message.jinja– System-level instruction templategithub_project_selection.jinja– Template for selecting relevant GitHub projectsresume_evaluation_criteria.jinja– Evaluation criteria templateresume_evaluation_system_message.jinja– System message for resume evaluation
How TemplateManager Loads the Templates
The TemplateManager class in 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.
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:
# 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
TemplateManagerclass inprompts/template_manager.pyinitializes a JinjaEnvironmentwith aFileSystemLoaderpointing 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
TemplateManagerinitialization (lines 21-55) and rendered via therender_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.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →