Skip to main content
Glama

Get Employment By Industry

get_employment_by_industry
Read-onlyIdempotent

Get US non-farm payroll employment by industry (manufacturing, construction, retail, financial, government, etc.). Returns employment figures in thousands by period.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
_apiKeyNoOptional BLS registration key (free, raises the daily cap from ~25 to 500). The gateway supplies a platform key; pass your own only to override.
end_yearNoEnd year as 4-digit string (e.g. "2024"). Optional.
industryNoIndustry to retrieve. One of: "total_nonfarm", "manufacturing", "construction", "retail", "financial", "government". Defaults to "total_nonfarm".
start_yearNoStart year as 4-digit string (e.g. "2020"). Optional.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesEmployment data by period
unitYesUnit of measurement (thousands of persons)
totalYesNumber of data points returned. Equal to `returned` — BLS returns every point in the requested year range.
end_yearYesEnd year filter if provided, null otherwise
industryYesIndustry name requested
returnedNoHow many data points are in `data`. Always equal to `total` here; stated so a caller need not assume it.
series_idYesBLS series ID for the industry
start_yearYesStart year filter if provided, null otherwise
descriptionYesSeries description
observation_orderNoOrder of the `data` array. BLS returns each series newest-first.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / observation_order
      Added value: +{
      +  "description": "Order of the `data` array. BLS returns each series newest-first.",
      +  "enum": [
      +    "newest_first"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / returned
      Added value: +{
      +  "description": "How many data points are in `data`. Always equal to `total` here; stated so a caller need not assume it.",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / total / description
      Previous value: -"Total number of data points returned"New value: +"Number of data points returned. Equal to `returned` — BLS returns every point in the requested year range."
  2. Changed1 schema field changed
    • addedInput schema / properties / _apiKey
      Added value: +{
      +  "description": "Optional BLS registration key (free, raises the daily cap from ~25 to 500). The gateway supplies a platform key; pass your own only to override.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "description": "Employment data by period",
      +      "items": {
      +        "properties": {
      +          "employment_thousands": {
      +            "description": "Employment in thousands of persons",
      +            "type": "number"
      +          },
      +          "month": {
      +            "description": "Month name (e.g., January)",
      +            "type": "string"
      +          },
      +          "period": {
      +            "description": "Period code (e.g., M01)",
      +            "type": "string"
      +          },
      +          "year": {
      +            "description": "Year of the observation",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "year",
      +          "month",
      +          "period",
      +          "employment_thousands"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "description": {
      +      "description": "Series description",
      +      "type": "string"
      +    },
      +    "end_year": {
      +      "description": "End year filter if provided, null otherwise",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "industry": {
      +      "description": "Industry name requested",
      +      "type": "string"
      +    },
      +    "series_id": {
      +      "description": "BLS series ID for the industry",
      +      "type": "string"
      +    },
      +    "start_year": {
      +      "description": "Start year filter if provided, null otherwise",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total": {
      +      "description": "Total number of data points returned",
      +      "type": "integer"
      +    },
      +    "unit": {
      +      "description": "Unit of measurement (thousands of persons)",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "series_id",
      +    "industry",
      +    "description",
      +    "unit",
      +    "start_year",
      +    "end_year",
      +    "total",
      +    "data"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "end_year": "2024",
      +    "industry": "manufacturing",
      +    "start_year": "2018"
      +  },
      +  {
      +    "industry": "construction"
      +  }
      +]
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that by specifying that the returned employment figures are in thousands and organized by period. It does not disclose rate-limit or auth details, but those are partially covered by the _apiKey parameter and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the action and resource. Every word contributes meaning, with no filler, repetition, or unnecessary qualification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, rich annotations, full schema coverage, and an output schema, the description covers the essential information an agent needs. Minor gaps like explicit range defaults or revision behavior are not critical because the schema and output schema already provide sufficient detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented. The description's mention of example industries mirrors the schema's existing enum and adds no new semantic information about how parameters interact or behave.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), a precise resource ('US non-farm payroll employment by industry'), and the output unit ('in thousands by period'). This clearly distinguishes it from sibling economic tools like get_unemployment and get_cpi by focusing on employment broken down by industry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: any query needing US non-farm payroll employment figures for a specific industry. It does not explicitly name alternatives or exclusion criteria, but the scope is specific enough that an agent can select this tool confidently without confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.