# GetJobProfile

## Overview

Retrieves a single JobProfile by its id, returning the role definition template — job family, grade reference, and requirements — shared across the Positions that reference it.

## Business Rules

- Returns the JobProfile exactly as stored; JobProfile is not effective-dated, so there is only one current record per id
- Returned JobProfile contains a grade *reference* and role metadata only — no pay amounts (ADR-018)

## Process Flow

```mermaid
flowchart TD
    A[Caller requests JobProfile by id] --> B{JobProfile exists?}
    B -- No --> C[Reject: JOB_PROFILE_NOT_FOUND]
    B -- Yes --> D[Return JobProfile: code, job family, grade reference, requirements]
```

## External Dependencies

- [workforce::JobProfile](../model/JobProfile.md) model — entity being queried

## Error Scenarios

- **JOB_PROFILE_NOT_FOUND**: the specified JobProfile does not exist

## Test Cases

- returns the JobProfile when found by id
- returns NOT_FOUND when the id does not exist
- a returned JobProfile includes its unique code and job family
