Skip to main content
Glama

Hyreflow

Server Details

Recruitment automation: source, enrich, qualify and sequence candidates, push to your ATS.

Ownership verified
Status
Healthy
Uptime
94.0% over 47 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
automindz-solutions/hyreflow-plugins
GitHub Stars
1

TDQS

B3.4/5.0

Scored across 28 tools

Disambiguation3/5

Most tools target a distinct resource, but there are parallel overlapping families that an agent must read carefully to separate: skill_read/skills_list vs custom_skill_read/custom_skills_list, and enrich_run vs tools_execute's multi-row enrichment waterfalls, which do substantially the same thing. shortlist vs enrich_run also share dataset-input and run/poll semantics, adding further confusion.

Naming Consistency3/5

All names share a hyreflow_ prefix and snake_case, which is good, but the singular/plural and ordering conventions are mixed: dataset_read vs datasets_list, skill_read vs skills_list, custom_skill_read vs custom_skills_list, workflow_run vs workflow_runs vs workflows_list. The result is readable but not predictable from name alone.

Tool Count2/5

At 28 tools this is well above the comfortable range, and the surface is not tight: the built-in vs custom skill families could collapse into one pair, and enrich_run largely duplicates tools_execute's row mode. A broad platform justifies many tools, but several here are redundant rather than additive.

Completeness4/5

Lifecycle coverage is unusually strong across knowledge (import/read/search/write/index), datasets (list/read/export), skills (list/read/save), workflows (list/run/runs), enrichment polling, billing and tool discovery/execution. Gaps exist — no dataset or skill deletion, no workflow create/edit, no knowledge delete beyond archiving via status — but these are workable around rather than dead ends.

Available Tools

28 tools
hyreflow_billing_balanceA
Read-only
Inspect

Spendable credits and recent spend in this workspace. For anyone but the owner the spend and recent calls are their own (scope: "member"), and under a spend cap the balance is their allowance. Free.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, open-world, so the bar is lower; the description still adds meaningful behavior: non-owner results are scoped to the caller (`scope: "member"`), and under a spend cap the balance reflects an allowance rather than total credits. It does not explain caching or freshness, but the key semantic caveats are disclosed.

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

Conciseness4/5

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

Two short sentences, front-loaded with what the tool returns. The scope/cap clause is compact but slightly cryptic, and 'their own' is vague about what is being scoped (spend vs. calls).

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

Completeness3/5

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

There is no output schema, so the description should convey the shape of the result. It names the main values (credits, recent spend, recent calls) and the member/allowance semantics, but leaves out the spend window, units, and how 'recent calls' are represented.

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

Parameters4/5

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

Zero parameters, so the baseline is 4. The description's mention of a `scope: "member"` result mode adds useful context even though it is not an input.

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

Purpose4/5

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

States the specific resource returned: spendable credits and recent spend, scoped to this workspace. It has no explicit verb, but the resource and read intent are unambiguous and no sibling competes in the billing domain.

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

Usage Guidelines3/5

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

Implied usage (check credits/spend) is clear, and the 'Free' note signals it costs no credits, but there is no explicit when-to-use or when-not guidance. The absence of any sibling billing tool makes this less harmful.

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

hyreflow_custom_skill_readA
Read-only
Inspect

Return one custom skill's files ({path: text}) at its live version, with its version history. version reads another version, such as a draft still waiting for the workspace owner. Free.

NameRequiredDescriptionDefault
versionNo
skill_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive and open-world behavior, so the safety profile is covered. The description adds genuinely useful context beyond that: reads the *live* version, includes the full version history in the result, and is explicitly 'Free' (no credit cost) – a behavioral/cost trait annotations cannot convey.

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?

Front-loaded with the core action and return shape, followed by the one parameter that needs semantic help, closed with a one-word cost note. Every sentence earns its place and nothing is padded.

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?

There is no output schema, so the description must convey what comes back – it does, via the file-map shape and the version-history mention. It also covers cost. It stops short of explaining `skill_id` semantics or error behavior for an invalid version, but the essentials for correct invocation are present.

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 0%, so the description carries the burden. It explains `version` well (reads a non-live version, e.g. a draft awaiting owner approval), but `skill_id` is left entirely unexplained in both schema and description. Partial compensation only.

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

Purpose4/5

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

States a specific verb and resource ('Return one custom skill's files') and even describes the return shape (`{path: text}`), which distinguishes it from the plain skill_read sibling by scoping to custom skills. It does not explicitly name the non-custom counterpart, so sibling differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

The description gives clear guidance for the `version` parameter ('reads another version, such as a draft still waiting for the workspace owner'), which tells the agent when to use it. However, it never says when to choose this tool over `hyreflow_skill_read` or `hyreflow_custom_skills_list`, leaving the tool-selection decision to inference.

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

hyreflow_custom_skill_saveAInspect

Create a custom skill, or save a new version of one. files is the whole package as {path: text} with a SKILL.md whose frontmatter has a name and a one-line description; text files only. Without skill_id it creates a skill of scope personal (only the caller sees it) or org (the whole team). With skill_id it saves a new version and keeps every earlier one. A personal version is live at once. A team version waits for the workspace owner to approve it in the Hyreflow dashboard, unless the caller is the owner. Free.

NameRequiredDescriptionDefault
filesYes
scopeNo
skill_idNo

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations (which only say readOnly=false, destructive=false, openWorld=true): prior versions are retained, personal versions go live immediately, team versions require workspace-owner approval unless the caller is the owner, and the operation is free. This is exactly the operational context an agent needs for a mutating tool.

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?

Purpose is front-loaded in the first clause, followed by tightly packed but waste-free sentences covering file shape, mode selection, and release behavior. No filler.

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

Completeness5/5

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

No output schema is needed since the description explains the outcome (immediate live vs approval-gated, version retention). Combined with the annotations covering the safety profile, the definition gives an agent everything required to invoke it correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry the full burden, and it does: it defines `files` as the complete package of `{path: text}` with a SKILL.md frontmatter (name + one-line description) and text-only constraint, explains what `skill_id` triggers (versioning), and gives meaning to both `scope` enum values.

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?

States a specific verb (create/save) and resource (custom skill) with clear dual-mode scope. An agent can distinguish it from hyreflow_custom_skill_read and hyreflow_custom_skills_list without opening any schema.

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?

Explicitly tells the agent the two operating modes: omit skill_id to create, provide skill_id to save a new version. It also explains when to choose personal vs org scope. It does not, however, point to sibling tools (e.g. skill_read/list) for the alternatives, so routing guidance is slightly incomplete.

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

hyreflow_custom_skills_listA
Read-only
Inspect

List the skills this workspace's people wrote themselves: the caller's personal skills and the team's skills. Each entry has id, name, description, scope (personal or org), live_version and pending_version. Free.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, openWorld), so the description's added value is the cost note ('Free') and the enumeration of returned entry fields plus the scope enum values. This is useful context beyond structured data, though it omits anything about pagination or ordering.

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

Conciseness4/5

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

Two sentences, front-loaded with the scope-defining purpose before the field list and the trailing cost note. Dense but every clause carries information; no filler.

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?

For a zero-argument list tool with no output schema, the description sensibly enumerates the returned fields and scope values and flags the cost, which is what an agent needs. Minor gaps are pagination/ordering behavior, which are not covered anywhere.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. The description's field listing (id, name, description, scope, live_version, pending_version) describes outputs rather than, but with no inputs there is nothing further to document.

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?

States a specific verb ('List') and a precisely scoped resource ('skills this workspace's people wrote themselves'), then disambiguates the exact subsets returned (caller's personal skills and the team's skills). This distinguishes it from the sibling hyreflow_skills_list/hyreflow_skill_search, which cover non-custom skills.

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

Usage Guidelines3/5

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

The scope wording ('people wrote themselves', personal vs org) implicitly tells the agent when this tool applies rather than hyreflow_skills_list, but there is no explicit when-to-use or when-not-to-use statement and no named alternative. Usage is inferable but not spelled out.

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

hyreflow_dataset_exportAInspect

Create a download link for a dataset's full CSV (ds_…): every row and every column, not a sample. The link opens in the browser signed in to Hyreflow; the response's instruction field explains what to do if the page asks to sign in or cannot find the dataset. Free.

NameRequiredDescriptionDefault
dataset_idYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=false and openWorldHint=true, but the description adds real context beyond them: the link opens in a signed-in browser session, and the response carries an `instruction` field for sign-in/not-found cases. This is useful behavioral disclosure the structured fields do not provide.

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?

Three short sentences, front-loaded with the core action, then browser behavior, then cost. Every sentence earns its place with no filler.

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?

For a one-parameter tool with no output schema, the description covers the return shape (link plus `instruction` field) and the sign-in caveat well. Only the parameter's exact semantics remain thin.

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?

With 0% schema description coverage, the description must carry parameter meaning. It does hint at the `dataset_id` format via the `ds_…` prefix, but does not otherwise explain the single required parameter. Partial compensation only.

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?

States a specific verb+resource ('Create a download link for a dataset's full CSV') and defines scope precisely ('every row and every column, not a sample'). This distinguishes it from the read/list siblings without needing to open their schemas.

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

Usage Guidelines3/5

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

The 'not a sample' contrast implicitly routes the agent away from a preview-style sibling, but there is no explicit when-to-use statement or named alternative. Usage is implied rather than stated.

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

hyreflow_dataset_readA
Read-only
Inspect

Read a page of rows from a stored dataset (ds_…): at most 100 rows per call (default 25), paged with offset. The reply carries has_more and next_offset. format is json (default, row objects) or csv (the same rows as one CSV string, identical cells to the exported file and far fewer tokens). columns returns only those fields, named by key or dotted path into nested rows (e.g. ["attributes.title","attributes.first_seen_at"]), and raises the page cap to 500 rows; a path a row lacks reads as null. Any page stops early at about 60,000 characters (then limit is the rows served and next_offset resumes the read). A dataset another workspace owns reads as 'dataset not found'. Free.

NameRequiredDescriptionDefault
limitNo
formatNo
offsetNo
columnsNo
dataset_idYes

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the readOnly/destructive annotations: discloses the default and hard page caps, the 500-row raise via columns, the ~60,000-character truncation with has_more/next_offset resume semantics, missing-path-as-null behavior, and cross-workspace 'dataset not found'. These are the operational traits an agent needs.

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?

Dense but front-loaded: capability, caps, paging, format, columns, truncation, and auth scoping each appear in a purposeful sentence. No filler despite length.

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

Completeness5/5

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

With no output schema and no schema descriptions, the description fully covers return shape (row objects, CSV string, has_more/next_offset), multi-workspace behavior, and caps. An agent can call it correctly without other sources.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does: limit (default 25, cap 100, raised to 500 with columns), offset paging, format enum with default and token implications, columns accepting keys/dotted paths with null fallback. Every parameter gains meaning beyond the bare schema.

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?

States a specific verb and resource ('Read a page of rows from a stored dataset') and pins down the dataset id prefix (ds_…). Clearly distinguishable from siblings like hyreflow_dataset_export and hyreflow_datasets_list.

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?

Explains when to prefer csv (far fewer tokens) and that it's free, and clarifies paging via offset. However it doesn't explicitly contrast with a sibling such as hyreflow_dataset_export (e.g., use export for whole dataset, read for paging), so routing guidance is somewhat implicit.

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

hyreflow_datasets_listA
Read-only
Inspect

List this workspace's stored datasets (ds_…), newest first. Any search or enrichment over 50 rows, and every workflow run's output, is stored as a dataset; the original response carries only a 5-row sample. Each entry has id, name, source, row_count and created_at. session_id narrows the list to one session; without it the whole workspace is listed. Free.

NameRequiredDescriptionDefault
limitNo
offsetNo
session_idNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the description adds ordering behavior (newest first), the exact fields returned per entry, and a cost hint ('Free') — all useful context beyond the structured data. It stops short of describing pagination behavior, which matters for a list tool.

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?

Four tight sentences, front-loaded with purpose and ordering, followed by the context that makes the resource meaningful, then scope semantics. Nothing is padding; even the one-word 'Free' earns its place as a cost signal.

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?

With no output schema, the description correctly enumerates the returned fields (id, name, source, row_count, created_at), and annotations cover the read-only nature. The only real gap is undocumented limit/offset behavior for a paginated list.

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 0%, so the description must carry all parameter meaning. It explains session_id well (narrows to one session; omitting it lists the whole workspace) but says nothing about limit or offset, leaving pagination semantics undocumented.

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?

States a specific verb and resource ('List this workspace's stored datasets (`ds_…`), newest first'), including the ID prefix convention that identifies the resource type. The explanation that datasets are the full-result store (vs. the 5-row sample in the original response) cleanly separates this from sibling tools like hyreflow_dataset_read and hyreflow_dataset_export.

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?

Explains when datasets exist ('any search or enrichment over 50 rows, and every workflow run's output') and clarifies the scoping choice between session_id and whole-workspace listing. It does not explicitly name alternatives such as dataset_read for fetching contents, so routing is implied rather than stated.

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

hyreflow_enrich_jobA
Read-only
Inspect

Fetch an async enrichment job by provider and job id (the job handle on a still_enriching row). Returns status (pending | settled | failed | expired), credits charged, the email when settled, and the result. A still_enriching row is NOT a miss: its job usually settles within 1-2 minutes, so a pending status means check again later. A job that settles with no email skipped the chain's later providers for that row. Free.

NameRequiredDescriptionDefault
job_idYes
providerYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/safe, but the description adds substantial context beyond them: the credit cost (free), the credits-charged field, the full status lifecycle (pending | settled | failed | expired), and the meaning of a settled-but-empty result. This is exactly the added behavioral value the dimension rewards.

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

Conciseness4/5

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

Front-loaded with verb and resource, and each sentence carries operational value (polling guidance, no-email interpretation, cost). It is dense and somewhat long, but no sentence is filler.

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

Completeness5/5

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

With no output schema, the description itself documents the return shape (status, credits charged, email when settled, result) plus lifecycle and cost, so an agent knows both how to call it and what to expect. Nothing essential is missing for a two-parameter read tool.

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 coverage is 0% and both params are required, so the description must compensate. It explains job_id well as the `job` handle from a still_enriching row, but provider is left entirely unqualified with no accepted values or format, so half the parameter semantics remain undocumented.

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?

Specific verb (Fetch) plus resource (async enrichment job) and the identifying parameters (provider, job id). It further anchors the resource as 'the `job` handle on a `still_enriching` row', which distinguishes it from the job-creating sibling hyreflow_enrich_run without ambiguity.

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?

Gives strong operational context: a pending status means check again later, and a still_enriching row is not a miss. It stops short of explicitly naming the alternative tool or the exact polling cadence, but the when-to-use situation is clear.

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

hyreflow_enrich_runA
Destructive
Inspect

Run ordered enrichment steps over a list of rows, each row independently (the CSV-style, per-column executor). Returns a summary with a cost estimate, not raw rows. Rows come from rows, or from a stored dataset via input (its ds_ id), in which case the whole dataset is enriched into a NEW dataset (_meta.dataset_id). Enrichment adds data only; it does not screen or filter rows. The call waits about 20s: a longer run returns _meta.status: "running" and a run_id, and a call with only run_id returns its progress at no charge. A row still processing at the provider reads still_enriching, which ends that row's chain, and carries a job_id, a resume {tool, method, id_arg} and, when fetchable, a job {provider, job_id} handle. A still_enriching row is NOT a miss: its email is still being fetched and usually arrives within 1-2 minutes. _meta.pending counts such rows and _meta.instruction says how to re-check them (free) every _meta.poll_after_s seconds until _meta.pending is 0. Resending an identical run within 15 minutes returns the first one, charged 0. The quote's expected_credits is the typical cost; total_max_credits the worst case.

NameRequiredDescriptionDefault
rowsNo
inputNoA ds_ dataset id to enrich instead of `rows`.
stepsNoOrdered per-column steps: direct specs, wrapped with specs, or waterfall groups.
run_idNoThe `run_id` of an earlier call that returned running. Sent alone, it returns that run's progress (with user_prompt). Free.
dry_runNo
user_promptYesThe user's request that drove this call, verbatim as they phrased it. Recorded with the run so its trace reads as the ask followed by the calls it drove.
confirm_tokenNoThe `confirm_token` returned by a previous identical call that came back `confirmation_required`. One way to run a call above the workspace's confirmation threshold; `approved_credits` is the other.
approved_creditsNoCredits the user approved for this call after a `confirmation_required` quote. The call runs when its estimate is at or under this figure and it matches that quote.

TDQS

A4.3/5.0
Behavior5/5

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

Far exceeds the annotations: it discloses the ~20s synchronous wait, the `_meta.status: "running"` + `run_id` fallback, the `still_enriching` row state and its `job_id`/`resume` handles, the free polling loop via `_meta.pending`/`poll_after_s`, 15-minute idempotent dedupe charged at 0, and the `expected_credits` vs `total_max_credits` cost split. These are exactly the traits (latency, cost, partial completion) an agent cannot infer from readOnly/destructive/openWorld hints alone.

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

Conciseness4/5

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

Front-loads the core action and return shape, then layers on async/polling and cost semantics, with no filler sentences. It is dense prose rather than structured bullets, and the polling/`still_enriching` material sprawls across several sentences, making it harder to scan than necessary.

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

Completeness5/5

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

For a paid, asynchronous, no-output-schema tool this is unusually complete: return shape (summary not raw rows), `_meta` fields, row-level `still_enriching` handling, resume handles, polling cadence, and credit semantics are all covered. An agent could call it, interpret a partial result, and re-check correctly without further documentation.

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

Parameters4/5

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

With 75% schema coverage the baseline is 3, and the description earns more by explaining the behavioral difference between `rows` and `input` (a whole dataset becomes a NEW dataset with `_meta.dataset_id`) and clarifying that a call with only `run_id` is a free progress read. It leaves `dry_run`, `user_prompt`, and the step-shape semantics to the schema, which largely documents them.

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

Purpose4/5

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

States a specific verb and resource ("Run ordered enrichment steps over a list of rows, each row independently") and adds a differentiating clause, "the CSV-style, per-column executor," which separates it from record-at-a-time executors. It never names the sibling it contrasts with (e.g. hyreflow_tools_execute, hyreflow_enrich_job, hyreflow_workflow_run), so the distinction stays implicit.

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?

Gives concrete selection rules between the two input modes ("Rows come from `rows`, or from a stored dataset via `input`") and between the run modes (`run_id` sent alone returns progress free). It also draws a scope boundary — "Enrichment adds data only; it does not screen or filter rows" — which implicitly routes filtering to hyreflow_shortlist, but it does not name an alternative explicitly.

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

hyreflow_extract_imageA
Read-only
Inspect

Put candidate profile photos into a hyreflow artifact page, which can't load images from other sites. Pass dataset_id when the rows came from a dataset (the engine reads every row's photo_url, or a raw AI Ark row's profile.picture.source, itself, up to 500), otherwise urls: the AI Ark and LinkedIn photo links, up to 100. The photos are shrunk and kept for 15 minutes. Returns apply_url: post the finished page to it and get the page back with the photos inside (instruction has the command). skipped counts the links that couldn't be fetched, by reason; those people show initials. Call it only when the user wants photos. Free.

NameRequiredDescriptionDefault
urlsNo
dataset_idNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations say readOnlyHint=true and openWorldHint=true, which the description reinforces by being a fetch operation. It goes beyond annotations by disclosing: photos are shrunk and kept for 15 minutes, up to 500 rows or 100 URLs, returns apply_url with an instruction, skipped counts failures by reason, free. The 15-minute retention and rate/size limits are exactly the kind of extra context that matters.

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

Conciseness4/5

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

Dense but front-loaded, starting with the core purpose and then the input choice. Multiple clauses are packed into long sentences, making it slightly heavy, but every clause adds distinct behavioral or parameter information.

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

Completeness3/5

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

For a read-only, open-world fetch tool with no output schema, the description covers inputs, limits, retention, return shape, and failure handling reasonably well. However, it doesn't explain the apply_url workflow's relation to a write step or what happens if the page session expires after 15 minutes, leaving a small gap.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry parameter meaning, and it does: it clarifies what dataset_id triggers (engine reads every row's photo_url or profile.picture.source, up to 500) and what urls should contain (AI Ark and LinkedIn photo links, up to 100), plus the mutual exclusivity. This compensates well for the empty schema.

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

Purpose4/5

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

States a specific verb+resource: putting candidate profile photos into a hyreflow artifact page, with the key constraint that the page can't load images from other sites. This is distinct from siblings like dataset_read or enrich_run, though the description doesn't explicitly name which sibling produces the photo URLs.

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?

Gives a clear condition for use ('Call it only when the user wants photos') and explains the choice between the two parameters: dataset_id when rows came from a dataset, otherwise urls. It doesn't name alternative tools, but the mutual exclusion on inputs is spelled out well.

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

hyreflow_feedbackAInspect

Send feedback or a bug report to the Hyreflow team. Files a tracked issue that people on the team read, and returns its URL. A submission cannot be withdrawn. Free.

NameRequiredDescriptionDefault
kindNo
messageYes
repro_queryNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare it is not read-only, is open-world, and is non-destructive; the description adds meaningful context beyond that: the issue is read by humans on the team, a URL is returned, and critically 'A submission cannot be withdrawn' plus 'Free' (cost). The irreversibility disclosure is exactly the kind of behavioral trait an agent needs before submitting on a user's behalf.

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

Conciseness4/5

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

Four short sentences, front-loaded with the action, followed by outcome, durability, and cost. Every sentence carries information; 'Free.' is a terse fragment but communicates a real constraint.

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

Completeness3/5

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

There is no output schema, and the description appropriately notes that a URL is returned, and annotations cover the safety profile. The gap is the wholly undescribed 'repro_query' parameter, which an agent on a bug-report path would plausibly need to fill correctly.

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

Parameters2/5

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

Schema description coverage is 0% and the description compensates only marginally: 'feedback or a bug report' loosely maps to the 'kind' enum, but 'repro_query' is never explained and 'message' semantics are left implicit. With three undocumented parameters, the description does not fill the gap left by the schema.

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?

States a specific verb and resource ('Send feedback or a bug report to the Hyreflow team') and clarifies the mechanism: it files a tracked issue and returns its URL. No sibling tool overlaps with this function, so an agent can route to it unambiguously.

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

Usage Guidelines3/5

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

Usage is implied by the description – an agent should call this when it or the user wants to submit feedback or a bug. However, there is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives (there are none among siblings), leaving routing to inference.

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

hyreflow_knowledge_importAInspect

Add text files from the user's own computer to this workspace's second brain as draft notes in the Imported folder, one note per file, up to 50 files per call. Each file has a name and its content, and may have a kind (icp, persona, offer, pitch, proof, other) and up to 20 tags. A file with no text is skipped, a body over 64 KB is cut and marked truncated, a file already imported with the same name and text is skipped, so resending a call adds nothing, and a note that already exists is left as it is: a slug taken gets a numeric suffix. Send only files the user has seen listed and approved: every member's agent reads the notes. Returns the notes written and the files skipped with a reason. Free.

NameRequiredDescriptionDefault
filesYes

TDQS

A4.7/5.0
Behavior5/5

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

The annotations only say it is a non-read-only, non-destructive, open-world write; the description adds what actually happens — 50-file cap, empty files skipped, bodies over 64 KB truncated and marked, duplicate name+text skipped so resends are idempotent, existing notes untouched with numeric slug suffixes, and return of written versus skipped-with-reason. It also discloses multi-member visibility and that the call is free.

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

Conciseness4/5

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

Front-loaded with purpose and limits, then edge cases; almost every clause carries information an agent needs. It is a long comma-chained sentence, though, and would read better broken into two or three.

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

Completeness5/5

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

For a mutating bulk-import tool with no output schema and no annotation detail, the description covers dedupe/idempotency, truncation, slug collisions, partial-success return shape, and the approval precondition — nothing material is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the whole burden and does: each file has name and content, an optional kind with all six enum values enumerated, and up to 20 tags. It also supplies the 50-item array limit that the schema caps but does not explain.

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?

States a specific verb and resource — adding text files from the user's computer into the workspace's second brain as draft notes in the Imported folder. The bulk, per-file granularity and destination folder distinguish it from single-note siblings such as hyreflow_knowledge_write.

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?

Gives an explicit admissibility rule: send only files the user has seen listed and approved, with the rationale that every member's agent reads the notes. It implies bulk import rather than single-note editing but never names a sibling tool as the alternative.

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

hyreflow_knowledge_indexA
Read-only
Inspect

List every page of this workspace's second brain, the notes Hyreflow keeps about the business (roles, ideal customer, messaging). Each entry has slug, title, type, folder, status, tags and updated_at, without the page text. build is the state of the latest build (running, done or failed) and null when none started. Empty when no brain has been built. Persona Search filter pages hold the titles, locations, skills, keywords and seniority for a people search with the provider tools. Free.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only/safe semantics, so the description adds the non-obvious parts: entries omit page text, `build` reports the latest build state with its three enum values and null-when-unstarted, the result is empty when no brain exists, and the call is free. The empty/free/build-state disclosures are exactly the kind of context annotations cannot carry. It doesn't mention ordering, pagination, or size of the index, which is the only reason this isn't a 5.

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

Conciseness4/5

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

Front-loaded with the core action in the first clause, then field semantics, then edge cases. Dense but every sentence carries information. Slightly crowded by inline field lists and backticked names, which read like schema detail rather than routing guidance, but nothing is redundant.

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?

With no output schema, the description takes on the burden of describing the return shape and does so: enumerated entry fields, the `build` status field with its value set, and the empty-when-unbuilt case. Missing only ordering/pagination and whether the whole index is returned at once, which matters for workspaces with many pages.

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

Parameters4/5

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

Zero parameters and 100% schema coverage, so there is nothing for the description to disambiguate. Baseline 4 applies; the description's discussion of returned fields (`build`, slug/title/type/folder/status/tags/updated_at) is return-shape information rather than parameter meaning.

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

Purpose4/5

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

States a specific verb+resource: lists every page of the workspace's second brain, with a parenthetical clarifying what 'second brain' means (notes about the business: roles, ideal customer, messaging). That is clear and concrete. It does not explicitly contrast itself with hyreflow_knowledge_read or hyreflow_knowledge_search, so the agent must infer the difference (metadata index vs. full page content / query) from the sibling names.

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

Usage Guidelines3/5

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

Usage is only implied: a plural 'List every page' plus the note that entries omit page text suggests this is a discovery step before hyreflow_knowledge_read or hyreflow_knowledge_search. There is no explicit 'use this when...' and no named alternative to route to, which for a workspace with three knowledge siblings is a real gap.

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

hyreflow_knowledge_readA
Read-only
Inspect

Read one page of this workspace's second brain by slug. view body (default) returns the title and text. full adds data, sources, the pages it links to, the pages that link to it and the link targets that match no page. Persona Search filter pages hold the titles, locations, skills, keywords and seniority for a people search with the provider tools. Free.

NameRequiredDescriptionDefault
slugYes
viewNobody

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that by enumerating exactly what the `full` view returns (data, sources, outbound and inbound links, unmatched link targets) and by flagging that calls are free.

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

Conciseness4/5

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

Four short sentences, front-loaded with the core action and the parameter contract before the optional detail. The closing note about Persona Search filter pages is somewhat tangential but earns its place by telling the agent what kind of content to expect.

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

Completeness5/5

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

For a two-parameter read tool with annotations and no output schema, the description covers the action, both view payloads, the default, and the cost. An agent has everything needed to call it correctly and anticipate the shape of the result.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does so for `view`: both enum values are defined with their payload differences and the default is restated. `slug` is only named ('by `slug`') without format or lookup hints, which is the one remaining gap.

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?

States a specific verb and resource ('Read one page of this workspace's second brain by `slug`'), scoping it to a single addressable document. That makes it clearly distinct from the sibling list/search/index tools without opening any schema.

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

Usage Guidelines3/5

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

The two view modes are explained and a default is named, which tells the agent how to call it, but there is no guidance on when to reach for this versus hyreflow_knowledge_search or hyreflow_knowledge_index. The trailing 'Free' hints at a cost trade-off against paid siblings but never makes the routing explicit.

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

hyreflow_knowledge_writeA
Destructive
Inspect

Create or change one note in this workspace's second brain. With an existing slug only the fields given change, and its sources stay. Without one, title is required and the slug comes from it, and a slug already taken is refused rather than replaced. status archived takes a note out of search. Every member's agent reads the change at once and there is no undo, so write only what the user stated or confirmed. Free.

NameRequiredDescriptionDefault
bodyNoMarkdown, [[links]] allowed
slugNo
tagsNo
titleNo
folderNo
statusNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, and the description adds real context beyond them: sources are preserved on update, taken slugs are refused, archived notes leave search, the change is immediately visible to every member's agent, and there is no undo. The 'write only what the user stated or confirmed' line plus the cost note ('Free') are exactly the operational details an agent needs before a destructive write.

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

Conciseness4/5

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

Front-loaded with the core action, then the upsert rules, then the safety constraints — a sensible ordering with no filler. Sentences are dense and pack multiple clauses (the slug rule alone carries three conditions), which costs a little readability but not substance.

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

Completeness5/5

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

For a six-parameter, no-output-schema mutation with no undo, the description covers mode selection, collision handling, status effects, blast radius (all members' agents) and cost. The only real omission is what the call returns (e.g. the resolved slug), which is minor given no output schema is declared.

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 coverage is only 17% (just `body` is documented), so the description must carry the load. It does explain `slug` (update key / collision refusal), `title` (required when no slug, source of derived slug) and `status: archived`. But `tags` and `folder` get no semantics at all, leaving half the surface undocumented.

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 first sentence states a specific verb pair (create/change) and an unambiguous resource (one note in this workspace's second brain), which distinguishes it from the read/search/index siblings. An agent knows immediately this is the write path, not a lookup path.

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?

It spells out the two operating modes precisely: existing slug means partial update with sources preserved, no slug means title is required, slug is derived, and collisions are refused rather than replaced. It also gives the `status: archived` condition for removing a note from search. It does not name sibling tools (e.g. search for an existing slug first), so it falls short of a 5.

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

hyreflow_onboardingAInspect

Run Hyreflow onboarding for the signed-in person. The default step 'start' returns the onboarding instructions to follow and moves the Hyreflow setup page on. Call again with step 'progress' and a short note while working, and step 'completed' at the end. Repeat calls are harmless. Free.

NameRequiredDescriptionDefault
noteNo
stepNostart

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds genuinely new context: idempotency ('Repeat calls are harmless') and cost ('Free'), plus what the 'start' step returns. It stops short of describing what 'progress'/'completed' return or any auth/permission requirements, so not a 5.

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?

Four short sentences, front-loaded with the core action, then the step semantics, then the idempotency and cost facts. Every sentence carries distinct information with no redundancy.

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?

With no output schema and only two simple parameters, the description supplies enough to drive the multi-step flow correctly, including what the first call yields. Minor gaps remain around what the later steps return and whether any prerequisites exist before starting.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the full burden, and it does explain the semantics of both parameters: the three step values and their role in the flow, and that 'note' is a short message supplied while working. It omits the 120-character note limit, which the schema does enforce, so it falls short of complete compensation.

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?

States a specific verb and resource ('Run Hyreflow onboarding for the signed-in person') and clearly distinguishes itself from every sibling, none of which handle onboarding. An agent immediately knows this is a stateful onboarding flow rather than a data or skill tool.

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

Usage Guidelines5/5

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

Explicitly maps each step to its use: 'start' is the default entry that returns instructions, 'progress' is called with a short note while working, and 'completed' is called at the end. The when-to-use sequence is fully specified with no inference required.

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

hyreflow_onet_lookupA
Read-only
Inspect

Resolve a job title to O*NET-SOC occupation codes, each with its official title and description. Matches marked loose ('rank dropped', 'root word') are approximate. The predictleads discover_job_openings method requires these codes as onet_codes. Free.

NameRequiredDescriptionDefault
limitNo
titleYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnly/openWorld/destructive, so the bar is lower. The description adds meaningful context beyond them: that some matches are approximate ('rank dropped', 'root word') and that the call is free, both of which affect how an agent should treat and cost the results.

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?

Purpose is front-loaded in the first clause, followed by match-quality caveat, downstream usage, and cost in three tight sentences with no redundancy. Every sentence carries distinct information.

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?

For a read-only, 2-param lookup with no output schema, the description covers purpose, result shape, match reliability, and downstream usage well enough to call it correctly. The only real gap is the undocumented `limit` parameter.

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

Parameters2/5

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

Schema description coverage is 0% for both parameters. `title` is self-evident from the purpose statement, but `limit` is never mentioned anywhere -- not in the schema, not in the description -- so its meaning and default must be guessed. The description does not compensate for the coverage gap.

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?

States a specific verb (Resolve) and resource (job title → O*NET-SOC occupation codes), plus what each result contains (official title and description). This is unambiguous and distinguishable from enrichment/skill siblings.

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?

Explains a concrete use case -- feeding `onet_codes` into predictleads discover_job_openings -- and notes the call is free, which helps an agent decide to invoke it. It gives no explicit alternatives or when-not-to-use conditions, so it stops short of a 5.

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

hyreflow_shortlistA
Destructive
Inspect

Bulk-screen candidates against a job description: one structured decision per candidate, ranked by score, with a tier (tier_1 | tier_2 | no_fit | unscored) and per-category scores. Takes job_spec plus either candidates (up to 1000 row objects, e.g. what a CRM/ATS search returned) or input (a ds_ dataset id, for a larger pool). Rows need work history; a pool of sourcing stubs without it is refused. The question set is generated from the job spec once and reused for every later screen of it. The call waits about 20s: a finished screen returns the top 25 ranked rows (name, row, shortlist cell); an unfinished one (including every first screen of a new job spec, which also writes its questions) returns {run_id, status, progress, poll_after_s}, and a call with only run_id returns the ranking once ready, at no charge. Every row, full profile included, is stored in the dataset at _meta.dataset_id. Resending an identical screen within 15 minutes returns the first one, charged 0. dry_run: true quotes the cost without running. Charges credits.

NameRequiredDescriptionDefault
inputNoA ds_ dataset id to screen instead of `candidates`.
run_idNoThe `run_id` of an earlier screen that returned unfinished. Sent alone, it returns that screen's progress or ranking. Free.
dry_runNo
job_specNoThe job description text.
min_scoreNo
questionsNoA custom question set to use instead of the generated one.
candidatesNo
must_havesNoHard requirements, each a gate: a clear no rejects the candidate, an unsure one is flagged under `unverified`. Draft them from the job spec and confirm them with the user before screening. Gate only what a work history shows (role, domain, location, stack), not language level, team size or degrees.
user_promptYesThe user's request that drove this call, verbatim as they phrased it. Recorded with the run so its trace reads as the ask followed by the calls it drove.
confirm_tokenNoThe `confirm_token` returned by a previous identical call that came back `confirmation_required`. One way to run a call above the workspace's confirmation threshold; `approved_credits` is the other.
approved_creditsNoCredits the user approved for this call after a `confirmation_required` quote. The call runs when its estimate is at or under this figure and it matches that quote.
allow_thin_profilesNo
regenerate_questionsNoReplace this job spec's stored question set.

TDQS

A4.5/5.0
Behavior5/5

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

With annotations only declaring destructive/openWorld, the description carries real operational weight: it discloses credit charging, dry-run quoting, the 15-minute idempotency window returning the first run at zero cost, the ~20s wait and the run_id polling contract that is free, plus the fact that questions and full row profiles are persisted to a dataset. It also flags the refusal behavior for thin sourcing stubs.

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

Conciseness4/5

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

The core capability and input choice are front-loaded, and nearly every sentence carries operative detail. The mid-section mixing polling, dataset storage, dedupe and charging is dense and slightly jumbled, but nothing is superfluous.

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?

For a 13-parameter, destructive, credit-charging tool with no output schema, the description does the heavy lifting: it explains both return shapes (ranked top-25 rows vs {run_id, status, progress, poll_after_s}) and the persisted dataset. Gaps remain around `min_score`, `allow_thin_profiles`, and `regenerate_questions` semantics.

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

Parameters4/5

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

Schema coverage is 69%, and the description adds genuine meaning for the main parameters: `job_spec`, `candidates` (row objects from a CRM/ATS search, needing work history), `input` (ds_ dataset id), `run_id`, `dry_run`, and the generated-and-reused `questions`. It leaves `min_score`, `allow_thin_profiles`, and `regenerate_questions` unaddressed, which the schema does only partially.

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 opens with a specific verb and resource ('Bulk-screen candidates against a job description') and immediately states the output shape: one structured decision per candidate, ranked, with tier and per-category scores. No sibling in the list does candidate screening, so an agent can identify this tool without reading the schema.

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?

It clearly distinguishes the two input paths (inline `candidates` up to 1000 rows vs a `ds_` dataset id via `input` for a larger pool), and explains the polling path via `run_id`. It does not address when to prefer a sibling like `hyreflow_enrich_job` or `hyreflow_dataset_read` instead, so routing between tools remains inferred.

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

hyreflow_skill_readA
Read-only
Inspect

Return one skill document in full. skill is the package name (e.g. 'hyreflow-recruit') and alone returns its SKILL.md; path selects a document inside it (e.g. 'provider-playbooks/apollo.md'), or takes a hyreflow://skills/ URI whole. Free.

NameRequiredDescriptionDefault
pathNo
skillYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly, non-destructive, open-world. The description adds meaningful context beyond them: that the full document is returned untruncated and that the call is free (no billing), which matters given the hyreflow_billing_balance sibling. It does not describe size limits or output shape.

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?

Two sentences, front-loaded with the core action, then parameter mechanics, then the cost note. No filler.

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?

For a 2-parameter read tool with no output schema, the description covers the action, both parameters with examples, and the no-cost property. Only the error/not-found behavior and return format boundaries are unstated, which is minor.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load and largely does: 'skill' is a package name with an example, 'path' selects a document inside it with an example, and a hyreflow://skills/ URI is accepted whole. Edge cases like path traversal or invalid names are not addressed.

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

Purpose4/5

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

States a specific verb+resource ("Return one skill document in full") and clarifies scope versus list/search siblings implicitly by emphasizing a single document. It does not explicitly differentiate from hyreflow_custom_skill_read, which is the closest sibling.

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

Usage Guidelines3/5

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

Usage is implied: use this when you need the content of a known skill or path. The 'skill' vs 'skill + path' selection logic is spelled out, but there is no explicit when-not guidance or named alternative (e.g., use hyreflow_skill_search to discover, this to read).

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

hyreflow_skills_listA
Read-only
Inspect

List the Hyreflow skill documents: recruiting playbooks, one provider playbook per vendor (access rules, payload shapes, known limits), pipeline recipes and sub-agent prompts. Free.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, covering the safety profile. The description adds that it is free and characterizes the documents, but says nothing about pagination, size, or format of the list. Adequate but not rich beyond the annotations.

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

Conciseness4/5

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

A single compact sentence front-loads the action and then enumerates the content, with 'Free' tacked on. Efficient, though the parenthetical is dense.

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?

For a zero-parameter, read-only listing tool with annotations covering safety and openness, the description tells the agent what will be returned. Adequate; only return format details are absent, which is minor for a simple list.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to explain; baseline 4 applies. The enumeration of document categories is content context rather than parameter guidance.

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?

States a specific verb (List) and resource (Hyreflow skill documents) and enumerates the content categories, which distinguishes it from siblings like hyreflow_skill_read and hyreflow_skill_search.

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

Usage Guidelines3/5

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

Implies a discovery/enumeration use case and notes it is free, but does not say when to prefer this over hyreflow_skill_search or hyreflow_skill_read. No exclusions or conditions given.

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

hyreflow_tools_describeA
Read-only
Inspect

Describe one Hyreflow tool and its methods, or one method in full: expected payload, credit cost, usage notes, and the skill document that covers it. Free.

NameRequiredDescriptionDefault
toolYes
methodNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description usefully adds that the call is free (no credit cost) and what the response contains, including the machine-consumable payload and the covering skill doc. It does not discuss auth or rate limits, but for a read-only descriptor that is a minor omission.

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?

A single front-loaded sentence with a colon-delimited list of return contents. No filler, no redundancy, and the core action precedes the payload enumeration.

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?

For a two-parameter, read-only descriptor with no output schema, the description covers what is returned and the cost. The notable gap is not telling the agent where valid tool/method identifiers originate, which matters given a sibling tools_search exists.

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 0% for both parameters, so the description must carry the load. It partially does: 'one Hyreflow tool and its methods' implies the required `tool` selects the tool and the optional `method` narrows to a single method. It gives no format or sourcing hints (e.g., that tool/method names come from tools_search), so the coverage gap is only partly closed.

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

Purpose4/5

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

States a specific verb (describe) and resource (a Hyreflow tool / one method), and enumerates the payload returned: expected payload, credit cost, usage notes, and covering skill document. It is clearly distinguishable from tools_execute or tools_search by intent, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

The 'tool and its methods, or one method in full' phrasing implies when to use the whole-tool form vs the method form, and 'Free' hints at cost considerations. However, it never states when to reach for this over hyreflow_tools_search or hyreflow_skill_read, leaving the routing to inference.

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

hyreflow_tools_executeA
Destructive
Inspect

Execute a Hyreflow tool method against live data providers. Charges credits at the described cost; dry_run: true returns a quote without running. Waterfall tools such as people_search take only payload. Enrichment waterfalls (email_enrichment, personal_email, linkedin_profile, phone_enrichment) also accept rows: up to 100 row objects enriched in one call, in place of payload and method. A row still processing at the provider comes back as still_enriching with a job_id, a resume {tool, method, id_arg} and, when the job is fetchable, a job {provider, job_id} handle. A still_enriching row is NOT a miss: its email is still being fetched and usually arrives within 1-2 minutes. _meta.pending counts such rows and _meta.instruction says how to re-check them (free) every _meta.poll_after_s seconds until _meta.pending is 0. A multi-row call stores its rows in a dataset (_meta.dataset_id), and a pending row completes in that dataset when its job finishes. Resending identical rows within about 15 minutes returns the first call's dataset at no charge (_meta.replayed); resending one pending row's payload starts and bills a new job. A call above the workspace's confirmation threshold returns confirmation_required with a cost estimate and a confirm_token instead of running; repeated unchanged by the same user within ten minutes, with approved_credits at or above the estimate or with the confirm_token, it runs once. A resend after that run is refused with no token, except an identical multi-row rows batch, which replays its stored dataset at no charge.

NameRequiredDescriptionDefault
rowsNo
toolYes
methodNo
channelNoPipeline the call serves: `work_email` (BD) or `personal` / `candidate`. A work-email-only finder (bettercontact) is refused on the personal channel.
dry_runNo
payloadNo
user_promptYesThe user's request that drove this call, verbatim as they phrased it. Recorded with the run so its trace reads as the ask followed by the calls it drove.
confirm_tokenNoThe `confirm_token` returned by a previous identical call that came back `confirmation_required`. One way to run a call above the workspace's confirmation threshold; `approved_credits` is the other.
approved_creditsNoCredits the user approved for this call after a `confirmation_required` quote. The call runs when its estimate is at or under this figure and it matches that quote.

TDQS

A4.1/5.0
Behavior5/5

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

Goes far beyond the annotations: credits are charged at the described cost, dry_run quotes without running, pending rows poll free, identical `rows` within ~15 minutes replay a stored dataset at no charge, and a resend after a run is refused. This is exactly the mutation/cost/side-effect detail an agent needs and annotations cannot convey.

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

Conciseness3/5

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

Nearly every sentence carries information, but it is one undifferentiated block and repeats the replay rule twice (the 15-minute dataset replay is restated at the end as 'an identical multi-row `rows` batch... replays its stored dataset at no charge'). The critical facts – cost, dry_run, confirmation – are front-loaded, which helps.

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?

No output schema exists, and the description compensates well by naming the response shapes: `still_enriching`, `job_id`, `resume`, `_meta.pending`, `_meta.instruction`, `_meta.poll_after_s`, `_meta.dataset_id`, `_meta.replayed`, `confirmation_required`. The main gap is that it never says how to obtain valid `tool`/`method` values, leaving discovery implicit.

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

Parameters4/5

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

With only 44% schema description coverage across 9 params, the description carries real weight: it explains that `rows` accepts up to 100 objects (mirroring maxItems) and substitutes for `payload` and `method`, and it explains `confirm_token`/`approved_credits` in context of the confirmation flow. `channel` and `user_prompt` are left to the schema, and `tool`/`method` semantics (how to discover valid values) are only implied.

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

Purpose4/5

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

States a specific verb and resource: 'Execute a Hyreflow tool method against live data providers', and immediately frames the charging model. It implicitly distinguishes itself from hyreflow_tools_search/describe (discovery vs execution) but never names those siblings, so an agent must infer the routing.

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?

Gives concrete operational conditions: `dry_run: true` for a quote, `rows` for enrichment waterfalls instead of `payload`/`method`, waterfall tools take only `payload`, and the confirmation-threshold path is spelled out. Missing explicit guidance on when to prefer this over hyreflow_enrich_run or hyreflow_workflow_run, so not a 5.

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

hyreflow_workflow_runA
Destructive
Inspect

Queue a run of a saved workflow in this workspace, by name or id. Returns the run id and initial status. A live run charges credits for the tools it calls.

NameRequiredDescriptionDefault
modeNo
inputNo
workflowYes
user_promptYesThe user's request that drove this call, verbatim as they phrased it. Recorded with the run so its trace reads as the ask followed by the calls it drove.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the description is not obliged to re-state the safety profile. It adds genuinely new behavior: a live run charges credits for the tools it calls, and it returns the run id plus initial status. It does not explain what dry_run or smoke_test actually do.

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?

Three short sentences, no filler, with the core action front-loaded and the cost caveat placed last where it matters most.

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

Completeness3/5

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

The description covers the queued-run model, the accepted workflow identifiers, and the return shape, and there is no output schema to explain. However, for a destructive, credit-charging, open-world mutation with an unexplained mode enum, the omission of dry_run/smoke_test semantics and of what 'input' does leaves a real gap before an agent can call it correctly.

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

Parameters2/5

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

Schema coverage is only 25%, so the description must carry the load, and it mostly does not. It clarifies that 'workflow' accepts a name or id, but the mode enum (live vs dry_run vs smoke_test) — the single most consequential parameter choice — and the nested 'input' object are left entirely unexplained; the credit note only obliquely implies what live means.

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

Purpose4/5

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

States a specific verb and resource ('Queue a run of a saved workflow in this workspace, by name or id'), which is clearly distinct from the sibling hyreflow_workflow_runs list tool. It stops short of naming that sibling explicitly, so it is clear but not fully self-differentiating.

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

Usage Guidelines3/5

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

The reader can infer this is the tool for kicking off an existing workflow rather than listing or defining one, and the credit caveat hints at cost trade-offs. There is no explicit when-to-use, when-not-to-use, or named alternative (e.g., preferring dry_run first, or using hyreflow_workflow_runs to poll).

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

hyreflow_workflow_runsB
Read-only
Inspect

List recent runs of a workflow with their status and timing. Free.

NameRequiredDescriptionDefault
limitNo
workflowYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description does add one behavioral fact not in structured data — the call is free — and hints at return content ('status and timing'), but says nothing about pagination, limits, or how 'recent' is bounded.

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

Conciseness4/5

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

Two short sentences with the resource and scope front-loaded and no filler. The terse 'Free' fragment is unconventional but does convey cost information efficiently.

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

Completeness3/5

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

For a simple read-only list tool whose annotations carry the safety profile, the description covers purpose but leaves the required 'workflow' identifier format and limit semantics unspecified, and no output schema exists to fill the return-shape gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter burden and does not: it never explains whether 'workflow' is a name, ID, or slug, nor what 'limit' defaults to or caps at. Only the loosely implied association between the workflow and its runs is conveyed.

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

Purpose4/5

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

The description gives a specific verb+resource ('List recent runs of a workflow') and adds scope detail ('status and timing'). It is clearly distinct from the singular sibling hyreflow_workflow_run and from hyreflow_workflows_list, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus hyreflow_workflow_run or hyreflow_workflows_list, and no prerequisites or exclusions are stated. The only usage signal is the implied cost note 'Free', which is about pricing, not selection.

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

hyreflow_workflows_listA
Read-only
Inspect

List the cloud workflows saved in this Hyreflow workspace. Free.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds the cost signal ('Free'), which is genuinely extra information not present in structured fields, but says nothing about result size, ordering, or pagination.

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?

Two short sentences with the resource front-loaded and zero filler. Every clause earns its place, including the cost note.

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?

For a zero-parameter, read-only list tool with no output schema, the description covers what is being listed and that it is free. It could be slightly more complete by noting ordering or result scope, but nothing critical for correct invocation is missing.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to document and the baseline is 4. Nothing in the description is needed to compensate for schema gaps.

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

Purpose4/5

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

States a specific verb ('List') and resource ('cloud workflows saved in this Hyreflow workspace'), so the agent knows exactly what it retrieves. It does not explicitly contrast itself with siblings like hyreflow_workflow_run or hyreflow_workflow_runs, but the 'saved workflows' scope is clear enough to distinguish it.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the sibling run-related tools, and no stated prerequisites or exclusions. The only contextual signal is 'Free', which hints at cost but not usage conditions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Removedhyreflow_monitor_items
    • Removedhyreflow_monitor_save
    • Removedhyreflow_monitors_list
  2. 1 tool update
    • Addedhyreflow_knowledge_import
  3. 3 tool updates
    • Changedhyreflow_enrich_run2 fields changed
      • addedInput schema / properties / approved_credits
        Added value: +{
        +  "description": "Credits the user approved for this call after a `confirmation_required` quote. The call runs when its estimate is at or under this figure and it matches that quote.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / confirm_token / description
        Previous value: -"The `confirm_token` returned by a previous identical call that came back `confirmation_required`. Required to run a call above the workspace's confirmation threshold."New value: +"The `confirm_token` returned by a previous identical call that came back `confirmation_required`. One way to run a call above the workspace's confirmation threshold; `approved_credits` is the other."
    • Changedhyreflow_shortlist2 fields changed
      • addedInput schema / properties / approved_credits
        Added value: +{
        +  "description": "Credits the user approved for this call after a `confirmation_required` quote. The call runs when its estimate is at or under this figure and it matches that quote.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / confirm_token / description
        Previous value: -"The `confirm_token` returned by a previous identical call that came back `confirmation_required`. Required to run a call above the workspace's confirmation threshold."New value: +"The `confirm_token` returned by a previous identical call that came back `confirmation_required`. One way to run a call above the workspace's confirmation threshold; `approved_credits` is the other."
    • Changedhyreflow_tools_execute2 fields changed
      • addedInput schema / properties / approved_credits
        Added value: +{
        +  "description": "Credits the user approved for this call after a `confirmation_required` quote. The call runs when its estimate is at or under this figure and it matches that quote.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / confirm_token / description
        Previous value: -"The `confirm_token` returned by a previous identical call that came back `confirmation_required`. Required to run a call above the workspace's confirmation threshold."New value: +"The `confirm_token` returned by a previous identical call that came back `confirmation_required`. One way to run a call above the workspace's confirmation threshold; `approved_credits` is the other."
  4. 4 tool updates
    • Addedhyreflow_knowledge_index
    • Addedhyreflow_knowledge_read
    • Addedhyreflow_knowledge_search
    • Addedhyreflow_knowledge_write
  5. 3 tool updates
    • Addedhyreflow_monitor_items
    • Addedhyreflow_monitor_save
    • Addedhyreflow_monitors_list
  6. 1 tool update
    • Addedhyreflow_onboarding
  7. 1 tool update
    • Changedhyreflow_extract_image2 fields changed
      • addedInput schema / properties / dataset_id
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "urls"
        -]
  8. 2 tool updates
    • Changedhyreflow_dataset_read1 field changed
      • addedInput schema / properties / columns
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
    • Changedhyreflow_shortlist1 field changed
      • changedInput schema / properties / must_haves / description
        Previous value: -"Hard requirements, each a pass/fail gate."New value: +"Hard requirements, each a gate: a clear no rejects the candidate, an unsure one is flagged under `unverified`. Draft them from the job spec and confirm them with the user before screening. Gate only what a work history shows (role, domain, location, stack), not language level, team size or degrees."
  9. 3 tool updates
    • Addedhyreflow_custom_skill_read
    • Addedhyreflow_custom_skill_save
    • Addedhyreflow_custom_skills_list

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to automate recruiter-side candidate sourcing by batch-searching, capturing resume screenshots and share links, scoring and filtering profiles, exporting reports, and sending greetings through a logged-in Chrome session.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to automate recruiter workflows by batch-searching candidates, capturing and OCR-ing resume screenshots, scoring and filtering applicants, extracting share links, greeting candidates, and exporting Markdown reports.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to automate recruiting workflows by batch-searching candidates, capturing resume screenshots, extracting share links, filtering and scoring profiles, greeting candidates, and exporting Markdown reports.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.