Skip to main content
Glama

Find jobs

find_jobs
Read-onlyIdempotent

Open job listings, newest first: jobs read from employers' own job boards, jobs posted on Noozra, and jobs from We Work Remotely, RemoteOK and Arbeitnow. A job from another job board names its source and links to the original listing; an employer's own job and a job posted on Noozra also carry the employer's text, cut short here. Name the source and link the job's url when you show it. A free key reaches jobs posted in the last 14 days.

Input Schema

NameRequiredDescriptionDefault
limitNoHow many jobs to return (1 to 100).
queryNoWords to find in the job title or the company, e.g. "rust engineer".
remoteNoOnly fully remote jobs. Remote does not say which countries the employer hires from; the job's location often does, e.g. 'Remote, US'.
companyNoOnly this company's jobs: its whole name, any case, e.g. "Stripe".
countryNoOnly jobs whose listing names this country, as a two-letter code such as DE. A job that names no country is left out, so jobs from We Work Remotely, RemoteOK and Arbeitnow never match; an employer's job names one when its location does. The country is where the listing places the job, not where a remote employer can hire.
categoryNoOnly jobs in this category. Leave it out for every category.
from_employerNoOnly jobs read from employers' own job boards.

Output Schema

NameRequiredDescriptionDefault
jobsYesNewest first.
countYesHow many jobs are in jobs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / country / description
      Previous value: -"Only jobs in this country, as a two-letter code such as DE. Jobs from other job boards name no country, and an employer's job names one when its location does."New value: +"Only jobs whose listing names this country, as a two-letter code such as DE. A job that names no country is left out, so jobs from We Work Remotely, RemoteOK and Arbeitnow never match; an employer's job names one when its location does. The country is where the listing places the job, not where a remote employer can hire."
    • changedInput schema / properties / remote / description
      Previous value: -"Only fully remote jobs."New value: +"Only fully remote jobs. Remote does not say which countries the employer hires from; the job's location often does, e.g. 'Remote, US'."
    • changedOutput schema / properties / jobs / items / properties / country / description
      Previous value: -"The country as a two-letter ISO 3166-1 code, e.g. DE, when the listing names one; jobs from other job boards and from employers' Greenhouse boards never do. Null otherwise."New value: +"The country as a two-letter ISO 3166-1 code, e.g. DE, when the listing's location names one; jobs from other job boards never do. Null otherwise. It is where the listing places the job, not where a remote employer can hire."
  2. Changed1 schema field changed
    • changedInput schema / properties / country / description
      Previous value: -"Only jobs in this country, as a two-letter code such as DE. Jobs from other job boards, and from employers' Greenhouse boards, name no country."New value: +"Only jobs in this country, as a two-letter code such as DE. Jobs from other job boards name no country, and an employer's job names one when its location does."
  3. Changed10 schema fields changed
    • addedInput schema / properties / company
      Added value: +{
      +  "description": "Only this company's jobs: its whole name, any case, e.g. \"Stripe\".",
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • changedInput schema / properties / country / description
      Previous value: -"Only jobs in this country, as a two-letter code such as DE. Only jobs posted on Noozra name a country."New value: +"Only jobs in this country, as a two-letter code such as DE. Jobs from other job boards, and from employers' Greenhouse boards, name no country."
    • addedInput schema / properties / from_employer
      Added value: +{
      +  "default": false,
      +  "description": "Only jobs read from employers' own job boards.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / jobs / items / properties / apply_url / description
      Previous value: -"Only for some jobs posted on Noozra: the employer's application link."New value: +"Only for an employer's own job or one posted on Noozra: where to apply."
    • changedOutput schema / properties / jobs / items / properties / country / description
      Previous value: -"The country as a two-letter ISO 3166-1 code, e.g. DE. Only jobs posted on Noozra name one; null otherwise."New value: +"The country as a two-letter ISO 3166-1 code, e.g. DE, when the listing names one; jobs from other job boards and from employers' Greenhouse boards never do. Null otherwise."
    • changedOutput schema / properties / jobs / items / properties / description / description
      Previous value: -"Only for a job posted on Noozra: the employer's text, cut to 600 characters and ended with … when longer."New value: +"Only for an employer's own job or one posted on Noozra: the employer's text, cut to 600 characters and ended with … when longer."
    • addedOutput schema / properties / jobs / items / properties / from_employer
      Added value: +{
      +  "description": "Read from the employer's own job board.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / jobs / items / properties / noozra_url / description
      Previous value: -"The job's page on Noozra, with its discussion."New value: +"The job's page on Noozra."
    • changedOutput schema / properties / jobs / items / properties / source / description
      Previous value: -"Where the job was posted, e.g. Noozra, We Work Remotely, RemoteOK or Arbeitnow."New value: +"Where the job was posted, e.g. Stripe careers, Noozra, We Work Remotely, RemoteOK or Arbeitnow."
    • changedOutput schema / properties / jobs / items / required
      Previous value: -[
      -  "id",
      -  "title",
      -  "company",
      -  "location",
      -  "country",
      -  "remote",
      -  "hybrid",
      -  "employment_type",
      -  "categories",
      -  "posted_at",
      -  "expires_at",
      -  "source",
      -  "url",
      -  "noozra_url"
      -]New value: +[
      +  "id",
      +  "title",
      +  "company",
      +  "location",
      +  "country",
      +  "remote",
      +  "hybrid",
      +  "employment_type",
      +  "categories",
      +  "posted_at",
      +  "expires_at",
      +  "source",
      +  "from_employer",
      +  "url",
      +  "noozra_url"
      +]
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "How many jobs are in jobs.",
      +      "type": "integer"
      +    },
      +    "jobs": {
      +      "description": "Newest first.",
      +      "items": {
      +        "description": "One job.",
      +        "properties": {
      +          "apply_url": {
      +            "description": "Only for some jobs posted on Noozra: the employer's application link.",
      +            "type": "string"
      +          },
      +          "categories": {
      +            "description": "The categories it is listed under; [\"any\"] means every category.",
      +            "items": {
      +              "description": "A category slug.",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "company": {
      +            "description": "The hiring company.",
      +            "type": "string"
      +          },
      +          "country": {
      +            "description": "The country as a two-letter ISO 3166-1 code, e.g. DE. Only jobs posted on Noozra name one; null otherwise.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "description": {
      +            "description": "Only for a job posted on Noozra: the employer's text, cut to 600 characters and ended with … when longer.",
      +            "type": "string"
      +          },
      +          "description_truncated": {
      +            "description": "Present with description: true when it was cut.",
      +            "type": "boolean"
      +          },
      +          "employment_type": {
      +            "description": "FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN or OTHER; null when the listing does not say.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "expires_at": {
      +            "description": "When the listing closes, as an RFC 3339 time in UTC.",
      +            "type": "string"
      +          },
      +          "hybrid": {
      +            "description": "Part on site, part remote.",
      +            "type": "boolean"
      +          },
      +          "id": {
      +            "description": "The listing's id.",
      +            "type": "string"
      +          },
      +          "location": {
      +            "description": "Where the job is, as the listing says, e.g. Remote.",
      +            "type": "string"
      +          },
      +          "noozra_url": {
      +            "description": "The job's page on Noozra, with its discussion.",
      +            "type": "string"
      +          },
      +          "posted_at": {
      +            "description": "When it was posted, as an RFC 3339 time in UTC.",
      +            "type": "string"
      +          },
      +          "remote": {
      +            "description": "Fully remote.",
      +            "type": "boolean"
      +          },
      +          "salary": {
      +            "description": "The salary, only when the listing gives one.",
      +            "properties": {
      +              "currency": {
      +                "description": "An ISO 4217 code, e.g. USD.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "max": {
      +                "description": "Upper bound.",
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              },
      +              "min": {
      +                "description": "Lower bound, per year unless the listing says otherwise.",
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "min",
      +              "max",
      +              "currency"
      +            ],
      +            "type": "object"
      +          },
      +          "source": {
      +            "description": "Where the job was posted, e.g. Noozra, We Work Remotely, RemoteOK or Arbeitnow.",
      +            "type": "string"
      +          },
      +          "title": {
      +            "description": "The job title.",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "The original listing, or the job's page on Noozra for a job posted there: link this when you show it.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title",
      +          "company",
      +          "location",
      +          "country",
      +          "remote",
      +          "hybrid",
      +          "employment_type",
      +          "categories",
      +          "posted_at",
      +          "expires_at",
      +          "source",
      +          "url",
      +          "noozra_url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "jobs",
      +    "count"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld safety, so the bar is lower. The description nevertheless adds real behavioral context: newest-first ordering, source attribution rules, truncation of employer text ('cut short here'), and a tiered access limit for free keys. It does not describe pagination or result volume, but the added disclosure is substantive.

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 sentences, front-loaded with the core behavior (what is returned and in what order) before source provenance, attribution, and access limits. Slightly verbose in the source enumeration, but every sentence carries 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?

With an output schema present, return values need not be explained, and the description covers sources, ordering, attribution rules, and the free-key window. Combined with the fully documented schema and safety annotations, an agent has enough to call the tool correctly; only pagination/result-size behavior is unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all seven parameters (including the country-source caveat and the remote/location caveat). The description itself contributes essentially nothing about parameter syntax or semantics, so the baseline 3 applies.

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

Purpose5/5

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

The description states a concrete verb and resource (open job listings) plus scope: newest-first ordering and the three source types (employer boards, Noozra posts, We Work Remotely/RemoteOK/Arbeitnow). The sibling tools are all news/post tools, so no job-related disambiguation is required, and an agent can immediately tell what this returns.

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 (find job listings); no sibling alternative is named and no explicit when-to-use or when-not-to-use condition is given. It does add a practical constraint ('a free key reaches jobs posted in the last 14 days') and presentation guidance ('Name the source and link the job's url when you show it'), which lifts it above pure implication but not to explicit routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources