Skip to main content
Glama
gzchenhao

OpenHire — Real Job Postings, Ghost Jobs Scored

Add an employer to my index

add_employer
Idempotent

Add a named employer's careers board to your local index and crawl it now, so jobs, posting dates, and ghost scores appear in search and can be watched and refreshed.

Instructions

Put one employer's public job board into the index on THIS machine, and crawl it now.

The public index is a curated list (AI infra, autonomous driving, embodied AI). The employers a user actually targets are wider than that, so any board a vendor adapter can read goes into the user's own index on request: Greenhouse, Lever, Ashby, Moka, 北森, Workable, SmartRecruiters or Workday (.wd5.myworkdayjobs.com/), any sector. After this call the employer behaves like a seeded one: search_jobs(company=...) with the board's own posting dates, days_open and ghost_score; watch_intent on it; refresh_index re-crawls it; the weekly refresh keeps it. It is flagged user_added, is never part of the public snapshot, and remove_employer takes it out.

Use it when the user names an employer this index does not carry and has its careers URL (read_board shows the board first without storing anything; add_employer is the step after, when the user wants it watched). A closed portal (Feishu Hire, SuccessFactors, Taleo, iCIMS, LinkedIn, BOSS直聘) is refused with the reason, as read_board refuses it.

Privacy: the vendor sees the same tenant read the weekly crawl makes; nothing about the user is sent anywhere, and which employers a user added stays on this machine.

Args: url: the careers or board URL as the user pasted it. name: the employer's display name (defaults to the board's tenant name).

Returns: added, company_id, jobs_indexed, count_on_board, and suggest_for_public_index, a prefilled GitHub issue link the user may open to propose the employer for everyone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
nameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.13

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare it as a non-readOnly, open-world, idempotent, non-destructive call; the description adds substantial behavior: the employer is flagged user_added, never enters the public snapshot, participates in search_jobs/watch_intent/refresh_index/weekly refresh like a seeded employer, and is reversible via remove_employer. It also discloses the privacy model (vendor sees only the same tenant read the weekly crawl makes; added-employer data stays on the machine).

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 and its scope, then routing, refusal cases, and privacy. Information-dense, but the vendor list and refusal list add bulk that could be trimmed without losing much guidance.

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 exists, yet the description enumerates the return fields (added, company_id, jobs_indexed, count_on_board, suggest_for_public_index with its purpose). Combined with the refusal reasons and lifecycle disclosure, an agent has everything needed to call and interpret it.

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: url is the careers/board URL as pasted (with a Workday format example), and name is the display name defaulting to the board's tenant name. Both parameters gain meaning not present in 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?

Specific verb+resource+scope: it puts one employer's board into the index on THIS machine and crawls it now. It explicitly distinguishes itself from siblings, naming read_board as the non-storing preview step and remove_employer as the inverse, and contrasting the user's own index with the curated public snapshot.

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?

States when to use (user names an employer the index lacks and has its careers URL), the alternative and the ordering (read_board shows the board first without storing; add_employer is the step after when the user wants it watched), and when the tool is refused (closed portals such as Feishu Hire, SuccessFactors, Taleo, iCIMS, LinkedIn, BOSS直聘).

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