Tool tree
gradeNot graded
page: Every page
yubhub_search_jobsAction
Search YubHub for jobs by title, employer, or keyword. Navigates the current tab to the search results page. Prefer yubhub_shortlist or yubhub_fetch_facet if you want data back instead of navigating the user away.
View tool JSON
{
"name": "yubhub_search_jobs",
"kind": "act",
"impl": "imperative",
"description": "Search YubHub for jobs by title, employer, or keyword. Navigates the current tab to the search results page. Prefer yubhub_shortlist or yubhub_fetch_facet if you want data back instead of navigating the user away.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Job title, company name, or any keyword (2-100 chars)",
"minLength": 2,
"maxLength": 100
}
},
"required": [
"query"
]
},
"page": "/"
}yubhub_browse_jobsAction
Browse YubHub jobs filtered by a single facet, title, category, industry, employer (company), or skill. Navigates to the archive page. Example: type="industry", slug="motorsport" opens /jobs/industry/motorsport.
View tool JSON
{
"name": "yubhub_browse_jobs",
"kind": "act",
"impl": "imperative",
"description": "Browse YubHub jobs filtered by a single facet, title, category, industry, employer (company), or skill. Navigates to the archive page. Example: type=\"industry\", slug=\"motorsport\" opens /jobs/industry/motorsport.",
"inputSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"title",
"category",
"industry",
"company",
"skill"
]
},
"slug": {
"type": "string",
"description": "URL slug for the facet value (lowercase, hyphenated)"
}
},
"required": [
"type",
"slug"
]
},
"page": "/"
}yubhub_open_jobAction
Open a specific YubHub job posting by its ID. The page emits JobPosting JSON-LD with Wikidata sameAs on the hiringOrganization.
View tool JSON
{
"name": "yubhub_open_job",
"kind": "act",
"impl": "imperative",
"description": "Open a specific YubHub job posting by its ID. The page emits JobPosting JSON-LD with Wikidata sameAs on the hiringOrganization.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Job ID, e.g. job_abc123def456",
"pattern": "^job_[a-z0-9_-]+$"
}
},
"required": [
"id"
]
},
"page": "/"
}yubhub_api_infoAnswer
Returns URLs of YubHub machine-readable resources: REST API, OpenAPI spec, MCP manifest, api-catalog, agent-skills, llms.txt, per-facet XML+JSON feeds, and per-job markdown endpoints.
View tool JSON
{
"name": "yubhub_api_info",
"kind": "answer",
"impl": "imperative",
"description": "Returns URLs of YubHub machine-readable resources: REST API, OpenAPI spec, MCP manifest, api-catalog, agent-skills, llms.txt, per-facet XML+JSON feeds, and per-job markdown endpoints.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}yubhub_fetch_facetAnswer
Fetch the jobs.json feed for a YubHub facet. Returns up to 100 jobs as schema.org/JobPosting entries (title, hiringOrganization, jobLocation, baseSalary, description, url). Use to reason about jobs without navigating the user away.
View tool JSON
{
"name": "yubhub_fetch_facet",
"kind": "answer",
"impl": "imperative",
"description": "Fetch the jobs.json feed for a YubHub facet. Returns up to 100 jobs as schema.org/JobPosting entries (title, hiringOrganization, jobLocation, baseSalary, description, url). Use to reason about jobs without navigating the user away.",
"inputSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"title",
"category",
"industry",
"skill",
"company"
]
},
"slug": {
"type": "string",
"description": "URL slug (lowercase, hyphenated)"
}
},
"required": [
"type",
"slug"
]
},
"page": "/"
}yubhub_fetch_jobAnswer
Fetch a single YubHub job as clean markdown (company, location, salary, work arrangement, full description, apply URL, skills). More token-efficient than the HTML page.
View tool JSON
{
"name": "yubhub_fetch_job",
"kind": "answer",
"impl": "imperative",
"description": "Fetch a single YubHub job as clean markdown (company, location, salary, work arrangement, full description, apply URL, skills). More token-efficient than the HTML page.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Job ID, e.g. job_abc123def456",
"pattern": "^job_[a-z0-9_-]+$"
}
},
"required": [
"id"
]
},
"page": "/"
}yubhub_shortlistAction
Build a ranked job shortlist from a YubHub facet with client-side filters. IMPORTANT: searches the most-recently-enriched 100 jobs in the facet, NOT the full corpus, so "top" means "highest-paying within the recent 100" (when salaryFloor is set) or "newest" (otherwise). For broad searches use yubhub_search_jobs or call yubhub_fetch_facet across multiple facets and intersect client-side. When filtering by salary, prefer salaryFloorStrict:true to exclude undisclosed-salary jobs, otherwise they pass the filter and may misleadingly appear to "meet" the floor.
View tool JSON
{
"name": "yubhub_shortlist",
"kind": "act",
"impl": "imperative",
"description": "Build a ranked job shortlist from a YubHub facet with client-side filters. IMPORTANT: searches the most-recently-enriched 100 jobs in the facet, NOT the full corpus, so \"top\" means \"highest-paying within the recent 100\" (when salaryFloor is set) or \"newest\" (otherwise). For broad searches use yubhub_search_jobs or call yubhub_fetch_facet across multiple facets and intersect client-side. When filtering by salary, prefer salaryFloorStrict:true to exclude undisclosed-salary jobs, otherwise they pass the filter and may misleadingly appear to \"meet\" the floor.",
"inputSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"title",
"category",
"industry",
"skill",
"company"
]
},
"slug": {
"type": "string"
},
"remoteOnly": {
"type": "boolean",
"default": false
},
"salaryFloor": {
"type": "number",
"description": "Minimum baseSalary.value.maxValue in the feed's currency. Default behaviour KEEPS jobs without parseable salary, set salaryFloorStrict:true to exclude them."
},
"salaryFloorStrict": {
"type": "boolean",
"default": false,
"description": "When true AND salaryFloor is set, jobs with no parseable baseSalary are EXCLUDED. Use this when the user explicitly asks for jobs above a salary threshold and you want to avoid returning jobs with unknown pay."
},
"titleContains": {
"type": "string",
"description": "Case-insensitive substring the title must contain."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"required": [
"type",
"slug"
]
},
"page": "/"
}yubhub_searchAction
Search YubHub's enriched job board by free-text query, title, company, or keyword. Submits a GET to /jobs/search and renders the results page.
View tool JSON
{
"name": "yubhub_search",
"kind": "act",
"impl": "declarative",
"description": "Search YubHub's enriched job board by free-text query, title, company, or keyword. Submits a GET to /jobs/search and renders the results page.",
"inputSchema": {
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search jobs or companies"
}
}
},
"page": "/"
}