Skip to main content
Glama

FoundRole — AI Job Search & Application Tracker MCP for Claude & ChatGPT

Server Details

AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.

Ownership verified
Status
Healthy
Uptime
24.5% over 69 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
foundrole/jobs-mcp-proxy
GitHub Stars
0
Server Listing
FoundRole Jobs - AI Job Search & Application Tracker

TDQS

A3.7/5.0

Scored across 21 tools

Disambiguation4/5

Most tools target a clear resource+action, and the descriptions explicitly distinguish jobs_search from jobs_recommendations and tracker_add from tracker_add_external. However, reminder_set/reminder_delete overlap with tracker_update's reminder_at field, and search vs. recommendations can still return the same personalized feed, creating some misselection risk.

Naming Consistency4/5

Tools consistently use snake_case with a resource-first, action-second pattern (job_alert_list, tracker_add, reminder_set, knowledge_search). Minor deviations exist: singular job_alert_* versus plural jobs_*, and noun-style actions such as jobs_details and jobs_recommendations.

Tool Count3/5

At 21 tools this is a heavy surface for a job-search MCP, falling into the borderline 16–25 range. Several operations could be consolidated—reminders into tracker_update, and bulk alert unsubscribe into a parameter—though the broad domain does justify many tools.

Completeness4/5

The surface covers the core lifecycle: job search/details/recommendations/compare, external analysis, tracker CRUD and status updates, alerts, reminders, resume checking, and knowledge lookup. Remaining gaps are minor—no saved-search listing or profile/resume upload management—but agents can work around them.

Available Tools

21 tools
job_alert_listList job alertsA
Read-only
Inspect

Lists the authenticated user's job alerts across all subscription sources (regular, company page, MCP).

Input:

  • status: Filter by status — one of pending, active, unsubscribed (optional, default: all statuses)

  • limit: Number of results to return (default 20, max 50)

  • offset: Number of results to skip (default 0)

Output: Returns the user's job alerts with pagination info and a summary of the underlying job search (query, location, company where available). Each response includes a system_instruction describing how to present the results for the current client.

NameRequiredDescriptionDefault
limitNoNumber of results to return (default 20, max 50)
offsetNoNumber of results to skip (default 0)
statusNoFilter by status: pending, active, unsubscribed

Output Schema

NameRequiredDescription
hasMoreNo
jobAlertsNo
totalCountNo
frequenciesNo

TDQS

A3.9/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=false), so the bar is lower, and the description adds real behavioral context: responses carry pagination info, a summary of the underlying job search (query, location, company), and a system_instruction governing how results should be presented for the current client. That presentation-instruction detail is not derivable from 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?

Front-loaded purpose sentence followed by clearly labeled Input/Output blocks; the structure aids scanning. It is slightly padded by restating parameter text already present in the schema.

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 low-risk, zero-required-parameter list tool with a full output schema and covering annotations, this is close to complete. Return-value detail is technically redundant given the output schema, but the mention of the system_instruction field adds genuine completeness.

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 limit, offset and status, and the description largely repeats them. It does add one piece of meaning the schema omits — that status is optional and defaults to all statuses — but nothing about syntax beyond that.

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 opening sentence states a specific verb (Lists), resource (job alerts), owner scope (authenticated user's) and breadth (all subscription sources: regular, company page, MCP). This clearly distinguishes it from the job_alert_subscribe/unsubscribe siblings without needing 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?

Usage is implied — you call this to enumerate the user's existing alerts — and the sibling mutations (subscribe/unsubscribe) are obviously different operations. However, the description never states when to prefer this over e.g. job_alert_unsubscribe_all or tracker_list, nor any preconditions or exclusions.

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

job_alert_subscribeCreate a job alertA
DestructiveIdempotent
Inspect

Subscribes the authenticated user to job alerts for a specific saved job search.

Input:

  • job_search_id: The job search identifier to subscribe to (required). Accepts either the job search UUID or the composite job ID returned by jobs_search / jobs_details (format: "seo_id--job_search_id").

  • delivery: digest, fast (optional). Fast email is not available on every account and needs enough new matches for the exact saved search. Unsupported fast selection returns a validation error and keeps the existing delivery mode.

  • frequency: Alert frequency — one of daily, weekly, monthly (optional, defaults to "weekly")

Output: Returns the created or updated job alert with id, status, and frequency. Idempotent: calling this tool for an already-subscribed search updates the existing alert without creating a duplicate. An existing active alert with the same query text, location, company and filters, and at least the same radius, is returned instead of a new one, with the requested frequency applied to it. A user keeps one alert per query and place. When they already have an active alert for the same query and place with other filters, radius or sort, this tool changes that alert to the new search instead of adding a second one: the returned jobAlert.id is the existing alert, jobSearchId is the new search, and message says the alert was changed.

Delivery: Digest alerts arrive together in one email, one section per query and place. Opted-in fast alerts are sent separately while the account has them: matches found overnight arrive in one morning email at the hour the user usually starts the day, and later matches follow at least 3 hours after the previous email, up to 3 emails per local day. A fast email carries only jobs found since the previous one, never a job already sent to the user, a role from the same employer sent in the last 30 days, or a job in the user's tracker. When the account no longer has fast alerts they return to the ordinary digest and retain the saved fast preference. Each section applies every filter and the sort of its saved search, the same way jobs_search does for that account. A job appears in the digest once, even when it matches several alerts, and no email is sent when there are no new matches. The digest follows the most frequent alert, and arrives less often when the user has not used FoundRole for a while.

NameRequiredDescriptionDefault
deliveryNoDelivery mode: digest, fast; fast is not available on every account and needs a qualifying search
frequencyNoAlert frequency: daily, weekly, monthly (defaults to "weekly")
job_search_idYesJob search UUID or composite job id ("seo_id--job_search_id") from jobs_search results

Output Schema

NameRequiredDescription
jobAlertNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and idempotentHint=true, but do not explain what is destroyed or how idempotency works. The description adds crucial context: it explains that active alerts can be changed rather than duplicated, details delivery modes and their constraints, describes digest vs fast email behavior, and clarifies the resulting email content. This goes well beyond what annotations provide.

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 description is structured with clear sections (Input, Output, Delivery) and uses bullet points. It is somewhat lengthy, particularly the Delivery section, but every part earns its place by explaining important behavior. It is well front-loaded with the core action.

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?

Given the tool's complexity (idempotent updates, delivery options, email scheduling) and the presence of an output schema, the description is remarkably complete. It covers input validation, idempotency, conflict resolution, and delivery mechanics in detail, leaving no critical gaps for correct invocation.

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 parameters. The description adds some value by explaining the composite job ID format and the effect of unsupported fast delivery (validation error, keeping existing mode). However, it largely repeats schema details, so a baseline 3 is appropriate.

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 clearly: subscribes the authenticated user to alerts for a saved job search. Distinguishes itself from siblings like job_alert_list and job_alert_unsubscribe by focusing on creation/update of alerts. The idempotent-update semantics further differentiate it from any pure 'create' sibling.

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?

Description provides clear context for when to use it (subscribing to a saved search) and describes idempotent behavior on re-call, which implies repeated use is safe. However, it does not explicitly name alternative tools or provide when-not-to-use guidance, such as what to do if the user wants to unsubscribe or list alerts.

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

job_alert_unsubscribeUnsubscribe from a job alertA
Destructive
Inspect

Unsubscribes the authenticated user from job alerts for a specific job search.

Input:

  • job_search_id: The job search identifier to unsubscribe from (required). Accepts either the job search UUID or the composite job ID returned by jobs_search / jobs_details (format: "seo_id--job_search_id").

Output: Confirms the alert has been unsubscribed. Idempotent: returns success even when the user was not subscribed or is already unsubscribed.

NameRequiredDescriptionDefault
job_search_idYesJob search UUID or composite job id ("seo_id--job_search_id") from jobs_search results

Output Schema

NameRequiredDescription
messageNo
successYes

TDQS

A3.6/5.0
Behavior1/5

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

The description explicitly claims 'Idempotent: returns success even when the user was not subscribed or is already unsubscribed,' but the annotations declare idempotentHint=false. This is a direct contradiction of a declared behavioral trait, which is the most consequential kind of error for an agent deciding whether retries are safe.

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?

Roughly four sentences, front-loaded with the action, then clearly delimited Input/Output sections. The Input paragraph carries real information (accepted ID formats and their origin) rather than padding, and nothing is wasted.

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?

An output schema exists, so return values need not be explained, and the description still adds the ID-sourcing guidance and the idempotency/error behavior an agent needs. The only gap is the missing contrast with job_alert_unsubscribe_all, and the idempotency claim is contradicted rather than merely incomplete.

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 already 100%, so the baseline is 3; the description goes slightly beyond by naming the tools that produce the composite 'seo_id--job_search_id' value (jobs_search / jobs_details) and by restating requiredness, which helps an agent source the value correctly.

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 (unsubscribes), resource (job alerts), and scope (for a specific job search, by the authenticated user), which naturally distinguishes it from job_alert_unsubscribe_all and job_alert_subscribe. An agent can pick this tool over its siblings 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?

Usage is implied by the name and the 'specific job search' scoping, and the description helpfully says where the accepted ID format comes from (jobs_search / jobs_details). However, it never states when to prefer this over job_alert_unsubscribe_all, nor any prerequisites (e.g., auth/scope requirements) or exclusions.

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

job_alert_unsubscribe_allUnsubscribe from all job alertsA
DestructiveIdempotent
Inspect

Unsubscribes the authenticated user from ALL of their job alerts at once, across every subscription source (regular, company page, MCP).

Input:

  • confirm: Must be true to execute. The call is rejected when omitted or not true — this guards against an unintended bulk unsubscribe.

Output: Confirms how many alerts were unsubscribed. Idempotent: returns success even when the user has no active alerts.

NameRequiredDescriptionDefault
confirmYesSet to true to confirm unsubscribing from every alert; the call is rejected otherwise

Output Schema

NameRequiredDescription
messageNo
successYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds real behavioral substance beyond them: the call is rejected unless confirm is true, and it returns success even when no alerts are active. It also states the output shape (a count of alerts unsubscribed). It restates idempotency that annotations already carry, which keeps it from 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?

Content is front-loaded with the core action in the first sentence and the guard/idempotency details after. The Input/Output headings are slightly heavy for a single-parameter tool, costing a little structure economy, but every sentence carries information.

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 one-parameter destructive bulk operation with an output schema and rich annotations, nothing an agent needs is missing: scope, the confirmation precondition, the rejection behavior, idempotency, and the return summary are all covered.

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% and the schema already documents that confirm must be true and that the call is rejected otherwise. The description adds only the rationale ('guards against an unintended bulk unsubscribe'), which is useful intent but no new syntax or format information. Baseline 3 is appropriate when the schema carries the parameter semantics.

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 ('Unsubscribes ... from ALL of their job alerts') and scopes the operation precisely ('at once, across every subscription source (regular, company page, MCP)'). This cleanly distinguishes it from the sibling job_alert_unsubscribe, which handles a single alert, without the agent needing to open either 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?

The 'ALL ... at once' framing makes the bulk-use case clear and implicitly routes single-alert requests to job_alert_unsubscribe, and the confirm guard establishes a precondition for execution. However, it never names the alternative tool explicitly or states when NOT to use this bulk operation, so it stops short of full when/when-not guidance.

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

jobs_analyze_externalAnalyze a job from another siteAInspect

Analyzes one job found outside FoundRole using the authenticated user's FoundRole profile and the same signals used for FoundRole jobs: resume match, missing skills, H-1B sponsorship history, E-Verify, ghost-job risk, posted compensation, and market salary estimates. Use tracker_add_external only when the user asks to save without analysis.

The input represents the direct posting URL and all job content already available in the conversation. The five text identity fields are required; every structured fact field is optional, with a fact the source does not state simply omitted (or null). The optional client_extraction object carries evidence-backed skills, technology, benefits, bonuses, seniority, industry, management, clearance, visa, and remote-scope labels when source excerpts for them exist. FoundRole validates the evidence, stores the client extraction separately, derives missing deterministic facts, and reports which values were provided, derived, accepted, rejected, or remain unknown.

The output includes comparisonRef; retain it exactly for a later jobs_compare call. The analysis is a decision aid, not a guarantee about sponsorship, legitimacy, compensation, or hiring outcome.

NameRequiredDescriptionDefault
urlYesDirect URL of the specific job posting; a company homepage is invalid
posted_atNoPosting date as ISO 8601, when the source states it
title_nameYesJob title from the posting
descriptionYesComplete posting text available in the conversation; a source summary is valid only when no fuller posting text is available
salary_typeNoSalary period: year, month, week, day, hour
company_nameYesCompany name from the posting
salary_valueNoSingle salary amount, when the posting gives one figure instead of a range
location_nameYesLocation text from the posting, including Remote when stated
employment_typeNoEmployment types: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other
salary_currencyNoISO 4217 salary currency code, when stated
salary_max_valueNoSalary range maximum, when stated
salary_min_valueNoSalary range minimum, when stated
client_extractionNoEvidence-backed facts extracted by the client model from the posting; non-null evidence is a short source excerpt rather than an inference. Fields absent from the source are omitted or null.
experience_monthsNoMinimum required experience in months, when stated
work_location_typeNoWork arrangement: on_site, remote, hybrid
education_requirementsNoEducation requirements: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree

Output Schema

NameRequiredDescription
jobsYes
modeYes
studioUrlNo
statusOrderYes
derivedFieldsYes
trackerWebUrlYes
unknownFieldsYes
providedFieldsYes
clientExtractionYes
system_instructionNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare the write/safety profile (readOnlyHint=false, non-destructive, non-idempotent). The description goes well beyond that: it discloses that facts are validated, client extraction is stored separately, deterministic facts are derived, and results are reported as provided/derived/accepted/rejected/unknown, plus an explicit disclaimer that the analysis is a decision aid rather than a guarantee. No rate limits or failure modes are mentioned, so a 4 rather than 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?

Three paragraphs for a 16-parameter tool with a nested extraction object is proportionate, and the purpose plus the sibling alternative are front-loaded in the first sentence. The middle paragraph is dense but each sentence carries distinct information; minor redundancy around whether fields are omitted or null.

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?

An output schema exists, yet the description still flags the one output value that matters downstream (comparisonRef to retain for jobs_compare) without wasting words on the rest. Combined with required/optional rules, evidence requirements, storage behavior, and scope disclaimers, an agent has everything needed to call it correctly.

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 100% schema coverage the baseline is 3, and the description adds real meaning: the five text identity fields are required, structured fact fields are optional and omitted/null when unstated, and client_extraction entries must be evidence-backed source excerpts rather than inferences. It does not clarify individual field semantics beyond the schema, keeping it at 4.

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 ("Analyzes one job found outside FoundRole") and scopes it precisely to external postings, contrasting with FoundRole-hosted jobs. It also names the sibling tool it is not (tracker_add_external), so an agent can route without opening either 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?

Gives an explicit alternative and its selecting condition: "Use tracker_add_external only when the user asks to save without analysis." It does not, however, distinguish itself from jobs_details or jobs_search for hosted jobs, so the when-to-use matrix is one-directional rather than exhaustive.

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

jobs_compareCompare jobsA
Read-only
Inspect

Compares 2 to 4 jobs side by side using the same FoundRole analysis fields: resume match, missing skills, H-1B and E-Verify signals, ghost-job risk, posted pay, and market salary estimates.

comparison_refs accepts exact FoundRole job IDs returned by jobs_search and exact external comparisonRef URLs returned by jobs_analyze_external. Analyze each outside job first; a bare URL that has not been analyzed cannot be compared because FoundRole does not have its posting facts. Preserve every reference exactly, keep the user's requested order, and do not send duplicates.

NameRequiredDescriptionDefault
comparison_refsYesTwo to four exact FoundRole job IDs or external comparisonRef URLs

Output Schema

NameRequiredDescription
jobsYes
modeYes
studioUrlNo
statusOrderYes
trackerWebUrlYes
system_instructionNo

TDQS

A4.4/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, so safety is covered. The description adds genuine behavioral context beyond that: the analysis fields produced, the hard constraint that un-analyzed URLs cannot be compared, and the ordering/dedup invariants the caller must respect. It stops short of describing output format, but that is carried by the output schema.

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 comparison fields, then a focused second sentence on input constraints. Every sentence earns its place; the field enumeration is slightly long but directly useful for setting caller expectations.

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?

An output schema exists, so return values need not be explained, and the description fully covers the one input's format, provenance, and invariants against the annotation-provided safety profile. Nothing an agent needs to invoke it correctly 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?

Schema coverage is 100% with effectively one parameter, so baseline is 3. The description adds real meaning beyond the schema by specifying the exact provenance (FoundRole job IDs from jobs_search, external comparisonRef URLs from jobs_analyze_external) and the invariants (preserve exact references, keep requested order, no duplicates).

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 (compares) and resource (jobs) with explicit scope (2 to 4, side by side) and enumerates the exact analysis fields returned (resume match, missing skills, H-1B/E-Verify, ghost-job risk, pay, salary estimates). An agent can distinguish this from jobs_search or jobs_analyze_external, which are named as the sources of its inputs.

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 prerequisite workflow: analyze each outside job first via jobs_analyze_external, and notes that a bare un-analyzed URL cannot be compared. Names the sibling tools that produce valid refs. No explicit 'when-not-to-use' exclusion, but the conditional guidance is strong and actionable.

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

jobs_detailsGet job detailsAInspect

Fetches full details for one job by the id returned from jobs_search — the deeper view behind a search result.

Input:

  • job_id: The exact ID string from the id field of a jobs_search result.

  • result_item_id: The matching occurrence ID from that result's resultItemId field, when available.

Output: Complete job details: description, skills, benefits, requirements, salary benchmark, resume match, H-1B and E-Verify signals, job-trust analysis, and application link. A posting that passed the fully-remote check carries remoteCheck: the posting lines that make the role remote and where the employee may work from, or an unknown scope when the posting does not say. Personalized and extended insight fields follow the authenticated user's current entitlements.

NameRequiredDescriptionDefault
job_idYesThe unique identifier of the job from jobs_search results
result_item_idNoThe result occurrence ID returned with the selected job

Output Schema

NameRequiredDescription
jobNo
studioUrlNo
trackedJobNo
statusOrderNo
trackerWebUrlNo

TDQS

A4.4/5.0
Behavior4/5

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

The description goes well beyond the annotations by enumerating what the payload contains (description, skills, benefits, salary benchmark, resume match, H-1B/E-Verify signals, trust analysis, application link), explaining the conditional `remoteCheck` field, and noting that personalized/extended fields depend on the caller's entitlements. There is mild tension with the structured hints (readOnlyHint=false and idempotentHint=false on what is described as a fetch), but the description itself discloses no destructive or mutating behavior and the hints appear to be conservative defaults rather than a substantive conflict.

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 purpose, then cleanly separated into Input and Output blocks, with zero filler sentences. The Output block is somewhat long given that an output schema already exists, so it is more verbose than strictly necessary, but each listed item carries semantic meaning.

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?

Covers everything an agent needs: where each identifier comes from, what the single required parameter must be, what the response contains, the conditional `remoteCheck` semantics, and the entitlement-dependent nature of personalized fields. With an output schema present, this is more than sufficient.

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 100%, so the baseline is 3, but the description adds provenance meaning the schema lacks: `job_id` must be 'the exact ID string from the `id` field of a jobs_search result' and `result_item_id` is the matching `resultItemId` 'when available', clarifying that one of the two identifiers is conditional.

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 ('Fetches full details for one job') and immediately positions it against the sibling that produces the input ('the deeper view behind a search result', keyed by the id from jobs_search). An agent can distinguish it from jobs_search, jobs_compare, and jobs_recommendations 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?

Gives clear retrieval context: call it with the `id` from a jobs_search result, optionally paired with that result's `resultItemId`. It does not explicitly state when not to use it (e.g., to discover jobs in the first place, use jobs_search), but the sequencing dependency is unambiguous enough for correct routing.

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

jobs_recommendationsRecommend jobs for my profileA
Idempotent
Inspect

Returns the authenticated user's personalized job recommendations built from their resume, skills, target roles, and preferred location. Results are ranked by fit, may include related roles, and carry the same salary, match, H-1B, and job-trust insight payload used by job search. The search filters and sort parameters apply to this personalized feed too. One call returns one answer: there is no next page, and the response links to the same feed on the FoundRole website. An explicit query for a different or unrecognized profession uses the same general job search as jobs_search, preserving the query and filters instead of substituting the profile's target roles.

A processing status means the personalized feed is still being prepared; a later call returns the completed feed.

NameRequiredDescriptionDefault
sortNoResult order (score, posted_at, match, salary): score is relevance and the default, posted_at is newest first, salary is highest pay first, match is best personal fit first and needs a resume. Ordering by salary or match is an advanced option.
queryNoThe full job title or skill (e.g., "Ruby Developer", NOT just "Ruby")
radiusNoSearch radius in miles around a city location (default 40); not used for state, country or remote searches.
remoteNoAdvanced filter: only remote-eligible jobs, matched across the whole country of the requested location rather than its radius.
companyNoThe official company name, or the domain of one employer
benefitsNoAdvanced filter: benefit names such as "health insurance", "401k" or "parental leave"; a job qualifies only when it states every listed benefit. Names that match no known benefit are ignored.
locationNoGeographic location (e.g., 'Boston, MA')
companiesNoFilter: official company names; a job from any of them qualifies, across every job board each employer posts on. More than one company makes it an advanced filter. Next to company, a job has to match both; hiring_brand narrows company only.
educationNoFilter: jobs whose posting requires one of these education levels (no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree); bachelor_degree means the posting asks for a bachelor degree, not that it suits someone holding one.
min_matchNoAdvanced filter: lowest personal FoundRole match grade to keep, the same letter each job shows in insights.match.grade. A and A- are rare even for a strong resume; B keeps good and strong matches; C+ also keeps fair ones. Needs a resume on the account.
work_modesNoAdvanced filter: jobs in any of these work modes (on_site, remote, hybrid). remote is matched across the whole country of the location, the others within the radius. ["remote"] is the same search as remote: true.
bonuses_onlyNoAdvanced filter: only jobs that state a bonus (sign-on, performance, referral, commission and the like).
hiring_brandNoFilter: one brand inside the company, for example company "Google" with hiring_brand "YouTube"; used only together with company.
salary_floorNoAdvanced filter: minimum annualized salary in USD; a posting qualifies when the lower bound of its pay band reaches the floor. Jobs without a USD salary are dropped.
posted_days_agoNoNumber of days ago to search for jobs (1-365)
employment_typesNoFilter: jobs offered as any of these employment types (full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other).
exclude_companiesNoAdvanced filter: official company names whose jobs are removed from the results, across every job board each employer posts on.
experience_levelsNoFilter: jobs at any of these experience levels (entry_level, mid_level, senior_level, executive, level_not_stated). The level comes from the years of experience the posting asks for and the seniority in its title, the higher of the two; entry_level never includes a posting asking for more than two years. level_not_stated selects jobs whose level cannot be derived; it can be selected alone or alongside other levels.
h1b_sponsors_onlyNoAdvanced filter: only companies known to sponsor H1B visas.

Output Schema

NameRequiredDescription
jobsNo
previewNo
feedKindNo
feedStatusNo
totalCountNo
continueUrlNo
jobSearchIdNo
resultSetIdNo
statusOrderNo
revalidatingNo
resultBatchIdNo
trackerWebUrlNo
profileSetupUrlNo
profileSetupStateNo
lowRelevanceNoticeNo
system_instructionNo

TDQS

A4.5/5.0
Behavior4/5

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

Beyond annotations, the description discloses that results are ranked by fit, may include related roles, carry the same insight payload as job search, and that there is no next page. It also explains that a processing status means the personalized feed is still being prepared, which is valuable behavioral context for a tool with readOnlyHint=false.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and then adds only operationally relevant details: ranking, filters, no pagination, fallback behavior, and processing status. Each sentence contributes useful context for a complex 19-parameter tool.

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?

Given 19 optional parameters, full schema coverage, annotations, and an output schema, the description provides the missing behavioral context an agent needs: personalization source, ranking, filter applicability, no pagination, sibling fallback, and processing status. Nothing critical appears absent.

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 100%, so the parameter definitions are already well documented. The description adds useful semantic context that search filters and sort parameters apply to this personalized feed and that a different-profession query preserves the query and filters rather than substituting profile target roles.

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

Purpose5/5

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

The description states a specific verb and resource: returns the authenticated user's personalized job recommendations built from resume, skills, target roles, and location. It also distinguishes this personalized feed from general job search by explaining that explicit queries for different professions fall back to the same search as jobs_search.

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 frames this as the personalized recommendation feed and explains how to handle an explicit query for a different or unrecognized profession by using the same general job search as jobs_search. It does not give a full when-to-use-this-vs-jobs_search matrix, but the intended usage is clear.

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

knowledge_topicsList career guide topicsA
Read-onlyIdempotent
Inspect

Lists what FoundRole's published career-guidance blog covers: every category and the most-used tags, each with its published-article count and url, plus the total number of published articles. This is the factual source for questions about the blog's topics or overall coverage. It takes no parameters and reflects the live published corpus. It does not retrieve articles for a specific question; knowledge_search does that.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
tagsNo
categoriesNo
totalArticlesNo
system_instructionNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so safety is covered. The description adds genuinely new context beyond that: no parameters, freshness ('reflects the live published corpus'), and the shape of what comes back. It stops short of noting volatility of counts or any caching/rate behavior, 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.

Conciseness4/5

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

Front-loads the payload, then follows with scope, freshness, and the exclusion/alternative in short sentences. The opening sentence is somewhat clause-heavy (categories, tags, counts, urls, totals) but every element carries information an agent can act on; 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?

An output schema exists, so return-value documentation is not required, and the annotations cover the safety profile. Combined with explicit no-parameter confirmation and the sibling routing note, an agent has everything needed to select and call this tool correctly.

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 schema is trivially complete and the description explicitly confirms 'It takes no parameters,' which usefully tells the agent not to hunt for filters like category or tag. There is no further semantic depth available to add for a parameterless tool.

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 (Lists) and resource (categories, most-used tags) with their payload (article counts, url, total article count). Explicitly positions itself against the sibling knowledge_search, so an agent can distinguish the two without opening either schema.

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?

Gives both when to use it ('factual source for questions about the blog's topics or overall coverage') and when not ('does not retrieve articles for a specific question'), and names the alternative that handles that case. This is precisely the routing information an agent needs.

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

reminder_deleteDelete a reminderB
Destructive
Inspect

Deletes a reminder from a tracked job.

Input:

  • tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required)

Output: Returns the updated tracked job with reminderAt cleared.

NameRequiredDescriptionDefault
tracked_job_idYesThe tracked job ID — `trackedJobs[].id` from tracker_list output, distinct from `trackable.id` and `job.id` (required)

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact beyond the annotations: the effect is clearing `reminderAt` on the tracked job rather than removing the job. It does not address what happens if no reminder exists, which matters given idempotentHint=false.

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?

The core sentence is front-loaded and clear, but the Input and Output blocks largely duplicate the input schema's parameter description and the output schema respectively. Those sections dilute rather than sharpen the definition, though the total length remains short.

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 one required parameter, full schema coverage, an output schema, and annotations, the definition covers the essentials: what it does, which ID to supply, and the resulting state. The remaining gap is failure behavior (deleting a non-existent reminder) for a mutation flagged as non-idempotent.

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% for the single parameter, so the schema already carries the semantics. The Input section of the description restates the schema text nearly verbatim, adding no syntax, format, or sourcing detail beyond what the schema provides; baseline 3 applies.

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 opens with a specific verb+resource: 'Deletes a reminder from a tracked job,' which clearly separates it from sibling verbs like reminder_set or reminder_list without opening a schema. It does not, however, explicitly name an alternative or contrast itself with them, so it stops short of full sibling differentiation.

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?

There is no explicit when-to-use/when-not-to-use guidance or named alternative (e.g., reminder_set for replacing a reminder). The only guidance is implicit and ID-scoped: the description warns that `tracked_job_id` must come from `tracker_list` output and is distinct from `trackable.id` and `job.id`, which is a partial disambiguation guideline at best.

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

reminder_listList remindersB
Read-only
Inspect

Lists tracked jobs that have reminders set, ordered by reminder time (soonest first).

Input:

  • limit: Number of results to return (default 20, max 50)

Output: Returns a list of tracked jobs with active reminders.

NameRequiredDescriptionDefault
limitNoNumber of results to return (default 20, max 50)

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description usefully adds the sort order (soonest first) and that only jobs with *active* reminders appear, but says nothing about pagination, total counts, or how to page past the 50-result cap.

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?

The lead sentence is front-loaded and earns its place. The Input section duplicates the schema description word-for-word and the Output section restates what the output schema already covers, so roughly a third of the text is redundant padding.

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 list with one optional, fully documented parameter and an existing output schema, the description is nearly sufficient — the agent needs no return-value detail. The remaining gap is routing guidance among the many sibling list/search/alert tools.

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% and the single `limit` parameter is fully documented in the schema. The Input block merely restates it verbatim, adding no syntax, ordering, or default behavior beyond what the schema already provides.

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 with scope ("Lists tracked jobs that have reminders set") plus an ordering guarantee (soonest first), which separates it from tracker_list and jobs_search. It stops short of naming a sibling to prefer or avoid, so it is clear but not fully differentiated.

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 when-to-use or when-not-to-use guidance. With siblings like tracker_list and reminder_set/reminder_delete in the same namespace, the description never says which one to pick when an agent wants jobs versus reminders versus alerts.

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

reminder_setSet a follow-up reminderA
Destructive
Inspect

Sets a reminder for a tracked job. Sends a confirmation email with .ics calendar attachment.

Input:

  • tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required)

  • remind_at: Reminder date/time in ISO 8601 format, e.g. "2025-03-15T10:00:00Z" (required, must be in the future)

Output: Returns the updated tracked job with reminderAt field.

NameRequiredDescriptionDefault
remind_atYesISO 8601 datetime, e.g. "2025-03-15T10:00:00Z" (must be in the future)
tracked_job_idYesThe tracked job ID — `trackedJobs[].id` from tracker_list output, distinct from `trackable.id` and `job.id` (required)

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveness/idempotency/open-world, and the description adds genuinely new context: an outbound confirmation email with a calendar attachment is sent, and remind_at must be in the future. It doesn't address reversibility or what happens on repeat calls, which matters given idempotentHint=false, but the email side effect is a real disclosure beyond structured fields.

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 one-sentence purpose followed by clearly labeled Input/Output sections with short bullets. Slightly redundant: the Output section restates return data that the output schema already defines, and the Input bullets duplicate the schema descriptions.

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?

An output schema exists, so return values need not be explained, and the description covers purpose, side effect, and both parameter constraints. What's missing for a non-idempotent, destructive-hinted mutation is any note on repeat-call behavior or how to undo it (e.g., pointing at reminder_delete).

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 100% and the description's parameter notes are essentially verbatim copies of the schema property descriptions (including the trackedJobs[].id vs trackable.id/job.id disambiguation and the future-datetime constraint). It adds no syntax, format, or default information beyond the schema, 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?

States a specific verb and resource ('Sets a reminder for a tracked job') and immediately names the observable side effect (confirmation email with .ics attachment). The scope is narrow enough that an agent can separate it from reminder_list/reminder_delete and from tracker_* siblings without opening a 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?

Usage is implied by the tool's narrow scope and by the hint that tracked_job_id comes from tracker_list, but the description never states when to use this versus reminder_delete or reminder_list, nor any prerequisites for setting up a reminder. No explicit when/when-not guidance is present.

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

resume_checkCheck how hiring software reads a resumeA
Read-onlyIdempotent
Inspect

Checks resume text for machine-readable sections, recognized skills, contact channels, a headline, and experience date ranges using FoundRole's deterministic parser.

Pass resume_text to check plain text supplied in the conversation. If resume_text is omitted, the tool reads the previously extracted text of the primary resume in the authenticated user's FoundRole account. It returns a readability band (strong, good, partial) and the single biggest loss. Depending on the account it also returns additional findings and the parsed facts (headline, years of experience, sections, contact channels, recognized skill count). Each finding includes a suggested fix. A saved report link is returned only when the account already has access to that report. This is FoundRole's text-readability assessment, not a test against a named ATS, a hiring prediction, or a file-layout check. Pasted text does not preserve the original PDF or DOCX layout.

The tool does not upload a file, create a saved resume or report, change the user's profile, submit an application, or fetch URLs found in the text. It may return a FoundRole website link; opening that link and uploading or editing a resume are separate user actions. Operational request records and diagnostics may retain tool inputs; this tool does not promise that submitted text is never stored.

NameRequiredDescriptionDefault
resume_textNoPlain text of the resume to check, when it is available in the conversation. Omit to check the resume uploaded to the user's FoundRole account. Minimum 200 characters.

Output Schema

NameRequiredDescription
bandNo
modeYes
findingsNo
parsedAsNo
profileSetupUrlNo
studioReportUrlNo
system_instructionNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare the safe read-only/idempotent profile, yet the description adds real behavioral context beyond them: the parse is deterministic (not a named-ATS simulation), the report link appears only when the account has access, pasted text loses PDF/DOCX layout, and inputs may be retained in operational logs. This level of disclosure is far above the annotation baseline.

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 the two usage modes, and most sentences carry non-redundant scope or retention information. It is somewhat long and the negative-scope claims ('not a named ATS... not a file-layout check' plus the 'does not upload/create/change/submit/fetch' list) overlap enough that a tighter phrasing would lose nothing.

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?

Even though an output schema exists, the description still names the return shape (readability band, biggest loss, findings with suggested fixes, parsed facts) and covers retention and safety. For a low-complexity one-param tool with annotations and an output schema, nothing an agent needs to invoke it correctly is missing.

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 single resume_text parameter, its omit-to-use-account fallback, and the 200-character minimum are already documented in the schema. The description restates this rather than adding syntax or format detail beyond it, 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?

States a specific verb ('Checks') and resource ('resume text') plus the exact facets examined: machine-readable sections, recognized skills, contact channels, headline, and experience date ranges. No sibling overlaps with this capability, and the description also explicitly bounds what it is not (not an ATS test, hiring prediction, or layout check).

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 distinguishes the two invocation modes: pass resume_text for conversation-supplied text, omit it to read the account's primary resume. It also states exclusions (no upload, no saved resume/report, no application submission, no URL fetching), so the agent knows when this tool is and is not appropriate.

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

tracker_addSave a job to the trackerA
Idempotent
Inspect

Tracks a job from jobs_search results in the user's job tracker, identified by its job_id. For a job found elsewhere on the open web (with a URL but no jobs_search job_id), tracker_add_external is the right tool instead.

Fields:

  • job_id: the job ID from jobs_search results (required)

  • status: initial status (saved, applied, interviewing, offered, archived); defaults to "saved"

  • sub_status: sub-status within the main status: saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company

  • notes: notes about the job

Returns the tracked job with its details. Repeated saves return the existing tracked job. A job that was previously removed from the tracker is restored with its earlier status and notes.

NameRequiredDescriptionDefault
notesNoNotes about this job
job_idYesThe job ID from jobs.search results
statusNoInitial tracking status: saved, applied, interviewing, offered, archived
sub_statusNoSub-status within the main status, valid only for that status — saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company
result_item_idNoThe result occurrence ID returned with the selected job

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, and the description reinforces this ('repeated saves return the existing tracked job'). More valuable is the non-obvious disclosure that a previously removed job is restored with its earlier status and notes — a side effect an agent could not infer from annotations. It stops short of covering auth or rate-limit behavior, 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.

Conciseness4/5

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

Purpose and the sibling routing rule are front-loaded in the first two sentences, which is the right ordering. The long sub_status enumeration duplicates the schema description nearly verbatim and inflates length, but the field list is otherwise tight and each remaining sentence (idempotency, restore behavior) 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 still summarizes the return shape. Idempotency, restoration semantics, and the external-tool alternative are all covered, so an agent has enough to call it correctly; only the undocumented result_item_id parameter and lack of permission context leave 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 description coverage is already 100%, so the baseline is 3, but the description adds the default value ('status defaults to "saved"') which the schema does not state, plus an enumeration of valid status values in one place. It omits the schema's result_item_id parameter entirely, keeping it from a 5.

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 (tracks/saves) and resource (a job from jobs_search results into the user's job tracker), with the identifying key (job_id) named up front. It explicitly differentiates itself from the sibling tracker_add_external, so an agent can route without opening either schema.

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?

Gives an explicit when-to-use and when-not-to-use: jobs with a jobs_search job_id go here, while jobs found on the open web (URL, no job_id) must go to tracker_add_external. That is a concrete routing rule to the correct sibling, not just implied context.

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

tracker_add_externalSave a job from another site to the trackerA
Idempotent
Inspect

Saves a job posting found anywhere on the open web into the user's tracker. For jobs that came from jobs_search results, tracker_add (which takes a job_id) is the right tool instead. A job seen elsewhere in the conversation needs no prior jobs_search call — its URL and details from the conversation are sufficient input.

url, company_name, title_name, location_name, and description identify the posting and are the only required fields. Every structured fact field (salary, dates, employment type, education, experience) is optional: a fact the source does not state is simply omitted (or null), and FoundRole's own extractors derive missing salary, employment, work-arrangement, education, experience, skills, benefits, and bonuses from the description. A save never waits on facts the source did not provide. The optional client_extraction object carries evidence-backed skills, technology, benefits, bonuses, seniority, industry, management, clearance, visa, and remote-scope labels when source excerpts for them exist; FoundRole validates and stores those labels separately.

Fields:

  • url: the job posting's direct URL (required; not a company homepage)

  • company_name: company name (required)

  • title_name: job title (required)

  • location_name: location, e.g. "New York, NY" (required)

  • description: the posting's description from the source result; a short summary is acceptable (required)

  • salary_min_value / salary_max_value: salary range bounds (numbers)

  • salary_value: a single salary figure when there is no range (number)

  • posted_at: ISO 8601 posting date

  • salary_currency: ISO 4217 currency code

  • salary_type: one of year, month, week, day, hour

  • employment_type: array of full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other

  • work_location_type: one of on_site, remote, hybrid

  • education_requirements: array of no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree

  • experience_months: minimum required experience in months (number)

  • client_extraction: evidence-backed extraction object; fields without source evidence are omitted

  • status: initial tracking status (saved, applied, interviewing, offered, archived); defaults to "saved"

  • sub_status: sub-status within the main status: saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company

  • notes: notes about the job

Returns the tracked job. Repeated saves return the existing tracked job.

NameRequiredDescriptionDefault
urlYesDirect URL of the specific job posting; a company homepage is invalid
notesNoNotes about this job
statusNoInitial tracking status: saved, applied, interviewing, offered, archived
posted_atNoPosting date as ISO 8601, when the source states it
sub_statusNoSub-status within the main status, valid only for that status — saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company
title_nameYesJob title from the posting
descriptionYesComplete posting text available in the conversation; a source summary is valid only when no fuller posting text is available
salary_typeNoSalary period: year, month, week, day, hour
company_nameYesCompany name from the posting
salary_valueNoSingle salary amount, when the posting gives one figure instead of a range
location_nameYesLocation text from the posting, including Remote when stated
employment_typeNoEmployment types: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other
salary_currencyNoISO 4217 salary currency code, when stated
salary_max_valueNoSalary range maximum, when stated
salary_min_valueNoSalary range minimum, when stated
client_extractionNoEvidence-backed facts extracted by the client model from the posting; non-null evidence is a short source excerpt rather than an inference. Fields absent from the source are omitted or null.
experience_monthsNoMinimum required experience in months, when stated
work_location_typeNoWork arrangement: on_site, remote, hybrid
education_requirementsNoEducation requirements: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

A4.5/5.0
Behavior4/5

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

Goes beyond annotations by disclosing that a save never waits on facts the source omits, that FoundRole extractors derive missing salary/employment/education/skills, that client_extraction labels are validated and stored separately, and that repeated saves return the existing record (reinforcing idempotentHint). No auth or rate-limit context, but the mutation/extraction behavior is well covered.

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?

The opening two paragraphs are tight and front-loaded, but the extended field enumeration largely restates a schema that already has 100% description coverage, repeating enums verbatim. Structured well, yet noticeably longer than it needs to be for an agent that will read the schema anyway.

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 19-parameter mutation tool, the description covers required vs optional fields, the derivation/omission policy, the client_extraction evidence contract, and idempotent re-save behavior; return values are covered by the output schema. Nothing an agent needs in order to invoke it correctly 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?

Schema coverage is 100%, so baseline is 3, but the description adds genuine meaning: status 'defaults to saved', the fact that non-source facts are simply omitted or null, and that the description field accepts a short summary. The bulk of the field list duplicates schema enums, so it does not reach the top of the scale.

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 ('saves a job posting found anywhere on the open web into the user's tracker') with explicit scope, and directly names the sibling it is not (tracker_add, which takes a job_id). An agent can distinguish it from tracker_add without opening either schema.

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 states when to use the alternative ('For jobs that came from jobs_search results, tracker_add ... is the right tool instead') and removes a common false prerequisite ('needs no prior jobs_search call'). Both the selection condition and the exclusion are spelled out.

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

tracker_listList tracked jobsA
Read-only
Inspect

Lists the user's tracked jobs with optional filtering and pagination.

Input:

  • status: Filter by status (saved, applied, interviewing, offered, archived)

  • limit: Number of results per page (default 20, max 50)

  • offset: Number of results to skip (default 0)

Output: Returns a list of tracked jobs grouped by status with pagination info. Each response includes a system_instruction describing how to present the results for the current client.

NameRequiredDescriptionDefault
limitNoNumber of results per page (default 20, max 50)
offsetNoNumber of results to skip (default 0)
statusNoFilter by status: saved, applied, interviewing, offered, archived

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

A3.5/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, so the safety profile is covered. The description adds genuinely new behavioral context: results are grouped by status and each response carries a system_instruction on how to present results for the current client, which is not derivable from the input schema or 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?

The layout is front-loaded and scannable with clear Input/Output sections, and the opening sentence carries the core purpose. The Input block largely duplicates the schema, which costs a little, but the overall size is appropriate.

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, no-required-parameter list tool with a rich input schema, annotations, and an output schema, the description covers purpose, parameters, and return shape adequately. The only real omission is routing guidance versus sibling tracker_* and job_alert_* tools.

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 three parameters, their defaults, and bounds. The description restates the same information verbatim (status values, default 20/max 50, default 0) without adding format, syntax, or edge-case meaning, so baseline 3 applies.

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 states a specific verb and resource ('Lists the user's tracked jobs') with scope details (filtering, pagination). It is clear what the tool returns, but it never distinguishes itself from sibling read tools like job_alert_list or jobs_search, so an agent must infer the boundary from the name alone.

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 explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as job_alert_list or jobs_search. The mention of 'optional filtering and pagination' describes behavior rather than the conditions under which this tool should be chosen.

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

tracker_removeRemove a job from the trackerA
Destructive
Inspect

Removes a job from the user's job tracker.

Input:

  • tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required)

Output: Confirms the job was removed from tracking.

NameRequiredDescriptionDefault
tracked_job_idYesThe tracked job ID — `trackedJobs[].id` from tracker_list output, distinct from `trackable.id` and `job.id` (required)

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, non-idempotent, non-read-only, so the safety profile is covered. The description adds only that the operation is confirmed on completion; it does not disclose whether removal is reversible, whether it requires the job to exist, or what happens on repeat calls — useful context given destructiveHint.

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 action, then cleanly sectioned into Input and Output. Slight redundancy: the Input block duplicates the schema description word-for-word, and the Output line restates what an output schema already conveys.

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 a single fully documented required parameter, an output schema, and annotations carrying the destructive/idempotency profile, little is missing. The gap is the absence of any note on reversibility or precondition behavior worth having for a destructive single-target operation.

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 100% and the description's Input block reproduces the schema text verbatim, so no meaning is added beyond the structured field. Baseline 3 applies when the schema does the heavy lifting.

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 (removes) and resource (a job from the user's job tracker), and the intent is unambiguous against siblings like tracker_add, tracker_update, and tracker_list. An agent can distinguish the removal operation 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 Guidelines2/5

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

No statement of when to use this versus tracker_update or tracker_update_status, and no prerequisites or conditions. The only routing help is implicit — the ID distinction hints that tracker_list should be consulted first, but that is left to inference.

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

tracker_updateUpdate a tracked jobA
Destructive
Inspect

Updates details of a tracked job (notes, deadline, salary, tags).

Input:

  • tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required)

  • notes: Updated notes

  • deadline: Deadline date (ISO 8601 format)

  • salary_offered: Salary amount

  • salary_offered_type: Salary type: year, month, week, day, hour

  • tags: Comma-separated tags (e.g., "remote,startup,tech")

  • reminder_at: Reminder date/time in ISO 8601 format, e.g. "2025-03-15T10:00:00Z" (must be in the future, or empty to clear)

Output: Returns the updated tracked job.

NameRequiredDescriptionDefault
tagsNoComma-separated tags (e.g., "remote,startup,tech")
notesNoNotes about this job
deadlineNoDeadline date in ISO 8601 format
reminder_atNoISO 8601 datetime, e.g. "2025-03-15T10:00:00Z" (must be in the future, or empty to clear)
salary_offeredNoSalary amount
tracked_job_idYesThe tracked job ID — `trackedJobs[].id` from tracker_list output, distinct from `trackable.id` and `job.id` (required)
salary_offered_typeNoSalary type: year, month, week, day, hour

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is carried by structured data. The description adds modest value by listing the mutable fields and the reminder 'must be in the future, or empty to clear' rule, but it never addresses the key non-idempotent-update question: whether omitting a field preserves or clears it.

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 header/Input/Output structure front-loads the operation and the fields, and the required ID guidance comes first. It is somewhat verbose because it duplicates the schema field descriptions line for line, but nothing is incoherent or buried.

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 7-parameter mutation tool with full schema coverage and an output schema, the description covers the required ID sourcing, the field set, and the one datetime constraint. The main remaining gap is partial-update semantics for omitted fields, which matters given idempotentHint=false.

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 every parameter is already documented in the schema, and the description largely restates those same descriptions verbatim. It adds no new syntax, format, or interaction detail beyond what the schema provides, so the baseline of 3 applies.

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 (updates a tracked job) and enumerates which fields can be changed, which implicitly separates it from tracker_update_status and tracker_remove. It never names those siblings explicitly, so the differentiation is inferable 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?

It usefully tells the agent where the required ID comes from (tracker_list output) and warns it is distinct from trackable.id and job.id, which is real guidance. However, there is no explicit when-to-use vs tracker_update_status, nor any statement of when not to use this tool.

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

tracker_update_statusMove a tracked job to another stageC
Destructive
Inspect

Updates the status of a tracked job.

Input:

  • tracked_job_id: The tracked job ID — trackedJobs[].id from tracker_list output, distinct from trackable.id and job.id (required)

  • status: New status: saved, applied, interviewing, offered, archived (required)

  • sub_status: Sub-status within the main status, valid only for that status (optional): saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company

Output: Returns the updated tracked job.

NameRequiredDescriptionDefault
statusYesNew status: saved, applied, interviewing, offered, archived
sub_statusNoSub-status within the main status, valid only for that status — saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company
tracked_job_idYesThe tracked job ID — `trackedJobs[].id` from tracker_list output, distinct from `trackable.id` and `job.id` (required)

Output Schema

NameRequiredDescription
hasMoreNo
totalCountNo
trackedJobNo
statusOrderNo
trackedJobsNo
trackerWebUrlNo
subStatusOrderNo

TDQS

C2.9/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered by structured data. The description does add one genuinely useful behavioral constraint — that sub_status is 'valid only for that status' — plus the fact that the updated tracked job is returned. It does not say whether the prior status is lost, whether the transition is reversible, or any auth requirements, but with rich annotations a 3 is appropriate.

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

Conciseness2/5

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

The purpose is front-loaded in one clean sentence, but the 'Input' section re-enumerates every parameter and its full enum value list, all of which already exist verbatim in the schema. That duplication roughly triples the length without adding information, which is padding rather than concision.

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?

With an output schema present, the description is not obligated to describe return values, and annotations carry the safety profile, so the core coverage is adequate. The missing piece is routing: for a status-mutation tool sitting beside tracker_update, the absence of any when-to-use guidance leaves the main decision an agent faces unresolved.

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 baseline is 3. The description restates the parameter list essentially verbatim from the schema, adding no syntax, format, or edge-case guidance beyond what is already structured — notably it does not explain what happens if a mismatched sub_status is supplied.

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 first sentence states a specific verb and resource ('Updates the status of a tracked job'), and the title adds the 'move to another stage' framing, which separates it from tracker_update. However, it never explicitly names tracker_update or explains what that sibling does differently, so the differentiation is left to inference.

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 statement of when to use this tool versus the many siblings, most notably tracker_update and tracker_add. The description only lists inputs and outputs; an agent must guess whether status changes belong here or in tracker_update.

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. 2 tool updates
    • Changedjobs_recommendations3 fields changed
      • changedInput schema / properties / company / description
        Previous value: -"The official company name"New value: +"The official company name, or the domain of one employer"
      • removedInput schema / properties / confirmed_work_from
        Removed value: -{
        -  "description": "Advanced filter: with strict_remote, also leaves out postings that do not say where the work can be done from.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / strict_remote
        Removed value: -{
        -  "description": "Advanced filter: only postings checked as fully remote that can be worked from the requested location: the posting names that area, allows anywhere, or does not say where. Stricter than remote; work_modes other than remote do not apply with it.",
        -  "type": "boolean"
        -}
    • Changedjobs_search3 fields changed
      • changedInput schema / properties / company / description
        Previous value: -"The official company name"New value: +"The official company name, or the domain of one employer"
      • removedInput schema / properties / confirmed_work_from
        Removed value: -{
        -  "description": "Advanced filter: with strict_remote, also leaves out postings that do not say where the work can be done from.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / strict_remote
        Removed value: -{
        -  "description": "Advanced filter: only postings checked as fully remote that can be worked from the requested location: the posting names that area, allows anywhere, or does not say where. Stricter than remote; work_modes other than remote do not apply with it.",
        -  "type": "boolean"
        -}
  2. 1 tool update
    • Changedresume_check5 fields changed
      • addedOutput schema / properties / findings / items / properties / fix
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / limited
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / moreFindings
        Removed value: -{
        -  "type": "integer"
        -}
      • addedOutput schema / properties / profileSetupUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • removedOutput schema / properties / uploadUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
  3. 5 tool updates
    • Changedjobs_analyze_external1 field changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / employerFilingHistory
        Added value: +{
        +  "properties": {
        +    "attribution": {
        +      "enum": [
        +        "FILED_BY"
        +      ],
        +      "type": "string"
        +    },
        +    "availability": {
        +      "enum": [
        +        "AVAILABLE",
        +        "NO_FILINGS",
        +        "UNRESOLVED_EMPLOYER",
        +        "NOT_READY"
        +      ],
        +      "type": "string"
        +    },
        +    "bindingStatus": {
        +      "enum": [
        +        "LEGACY_UNREVIEWED",
        +        "UNRESOLVED"
        +      ],
        +      "type": "string"
        +    },
        +    "coverage": {
        +      "items": {
        +        "properties": {
        +          "fiscalYear": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "quarter": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "current": {
        +      "properties": {
        +        "filings": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "workerPositions": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "currentPeriod": {
        +      "properties": {
        +        "complete": {
        +          "type": "boolean"
        +        },
        +        "coveredQuarters": {
        +          "items": {
        +            "properties": {
        +              "fiscalYear": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "quarter": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "endFiscalYear": {
        +          "type": "integer"
        +        },
        +        "endQuarter": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "startFiscalYear": {
        +          "type": "integer"
        +        },
        +        "startQuarter": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "history": {
        +      "properties": {
        +        "access": {
        +          "enum": [
        +            "AVAILABLE",
        +            "RESTRICTED",
        +            "UNAVAILABLE"
        +          ],
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "points": {
        +          "items": {
        +            "properties": {
        +              "filings": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "period": {
        +                "properties": {
        +                  "complete": {
        +                    "type": "boolean"
        +                  },
        +                  "coveredQuarters": {
        +                    "items": {
        +                      "properties": {
        +                        "fiscalYear": {
        +                          "type": "integer"
        +                        },
        +                        "id": {
        +                          "type": "string"
        +                        },
        +                        "quarter": {
        +                          "type": "integer"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "endFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "endQuarter": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "startFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "startQuarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": [
        +                  "object",
        +                  "null"
        +                ]
        +              },
        +              "workerPositions": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "subject": {
        +      "properties": {
        +        "domain": {
        +          "type": "string"
        +        },
        +        "domainDictionaryId": {
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "wageLevel": {
        +      "properties": {
        +        "availability": {
        +          "enum": [
        +            "AVAILABLE",
        +            "NO_FILINGS",
        +            "INSUFFICIENT_SAMPLE",
        +            "NOT_STATED",
        +            "NOT_READY",
        +            "UNRESOLVED_EMPLOYER"
        +          ],
        +          "type": "string"
        +        },
        +        "breakdown": {
        +          "properties": {
        +            "level1Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level2Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level3Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level4Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "notStatedPct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "period": {
        +          "properties": {
        +            "complete": {
        +              "type": "boolean"
        +            },
        +            "coveredQuarters": {
        +              "items": {
        +                "properties": {
        +                  "fiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "quarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "endFiscalYear": {
        +              "type": "integer"
        +            },
        +            "endQuarter": {
        +              "type": "integer"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "startFiscalYear": {
        +              "type": "integer"
        +            },
        +            "startQuarter": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "sampleSize": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedjobs_compare1 field changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / employerFilingHistory
        Added value: +{
        +  "properties": {
        +    "attribution": {
        +      "enum": [
        +        "FILED_BY"
        +      ],
        +      "type": "string"
        +    },
        +    "availability": {
        +      "enum": [
        +        "AVAILABLE",
        +        "NO_FILINGS",
        +        "UNRESOLVED_EMPLOYER",
        +        "NOT_READY"
        +      ],
        +      "type": "string"
        +    },
        +    "bindingStatus": {
        +      "enum": [
        +        "LEGACY_UNREVIEWED",
        +        "UNRESOLVED"
        +      ],
        +      "type": "string"
        +    },
        +    "coverage": {
        +      "items": {
        +        "properties": {
        +          "fiscalYear": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "quarter": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "current": {
        +      "properties": {
        +        "filings": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "workerPositions": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "currentPeriod": {
        +      "properties": {
        +        "complete": {
        +          "type": "boolean"
        +        },
        +        "coveredQuarters": {
        +          "items": {
        +            "properties": {
        +              "fiscalYear": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "quarter": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "endFiscalYear": {
        +          "type": "integer"
        +        },
        +        "endQuarter": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "startFiscalYear": {
        +          "type": "integer"
        +        },
        +        "startQuarter": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "history": {
        +      "properties": {
        +        "access": {
        +          "enum": [
        +            "AVAILABLE",
        +            "RESTRICTED",
        +            "UNAVAILABLE"
        +          ],
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "points": {
        +          "items": {
        +            "properties": {
        +              "filings": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "period": {
        +                "properties": {
        +                  "complete": {
        +                    "type": "boolean"
        +                  },
        +                  "coveredQuarters": {
        +                    "items": {
        +                      "properties": {
        +                        "fiscalYear": {
        +                          "type": "integer"
        +                        },
        +                        "id": {
        +                          "type": "string"
        +                        },
        +                        "quarter": {
        +                          "type": "integer"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "endFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "endQuarter": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "startFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "startQuarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": [
        +                  "object",
        +                  "null"
        +                ]
        +              },
        +              "workerPositions": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "subject": {
        +      "properties": {
        +        "domain": {
        +          "type": "string"
        +        },
        +        "domainDictionaryId": {
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "wageLevel": {
        +      "properties": {
        +        "availability": {
        +          "enum": [
        +            "AVAILABLE",
        +            "NO_FILINGS",
        +            "INSUFFICIENT_SAMPLE",
        +            "NOT_STATED",
        +            "NOT_READY",
        +            "UNRESOLVED_EMPLOYER"
        +          ],
        +          "type": "string"
        +        },
        +        "breakdown": {
        +          "properties": {
        +            "level1Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level2Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level3Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level4Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "notStatedPct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "period": {
        +          "properties": {
        +            "complete": {
        +              "type": "boolean"
        +            },
        +            "coveredQuarters": {
        +              "items": {
        +                "properties": {
        +                  "fiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "quarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "endFiscalYear": {
        +              "type": "integer"
        +            },
        +            "endQuarter": {
        +              "type": "integer"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "startFiscalYear": {
        +              "type": "integer"
        +            },
        +            "startQuarter": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "sampleSize": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedjobs_details1 field changed
      • addedOutput schema / properties / job / properties / insights / properties / employerFilingHistory
        Added value: +{
        +  "properties": {
        +    "attribution": {
        +      "enum": [
        +        "FILED_BY"
        +      ],
        +      "type": "string"
        +    },
        +    "availability": {
        +      "enum": [
        +        "AVAILABLE",
        +        "NO_FILINGS",
        +        "UNRESOLVED_EMPLOYER",
        +        "NOT_READY"
        +      ],
        +      "type": "string"
        +    },
        +    "bindingStatus": {
        +      "enum": [
        +        "LEGACY_UNREVIEWED",
        +        "UNRESOLVED"
        +      ],
        +      "type": "string"
        +    },
        +    "coverage": {
        +      "items": {
        +        "properties": {
        +          "fiscalYear": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "quarter": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "current": {
        +      "properties": {
        +        "filings": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "workerPositions": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "currentPeriod": {
        +      "properties": {
        +        "complete": {
        +          "type": "boolean"
        +        },
        +        "coveredQuarters": {
        +          "items": {
        +            "properties": {
        +              "fiscalYear": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "quarter": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "endFiscalYear": {
        +          "type": "integer"
        +        },
        +        "endQuarter": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "startFiscalYear": {
        +          "type": "integer"
        +        },
        +        "startQuarter": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "history": {
        +      "properties": {
        +        "access": {
        +          "enum": [
        +            "AVAILABLE",
        +            "RESTRICTED",
        +            "UNAVAILABLE"
        +          ],
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "points": {
        +          "items": {
        +            "properties": {
        +              "filings": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "period": {
        +                "properties": {
        +                  "complete": {
        +                    "type": "boolean"
        +                  },
        +                  "coveredQuarters": {
        +                    "items": {
        +                      "properties": {
        +                        "fiscalYear": {
        +                          "type": "integer"
        +                        },
        +                        "id": {
        +                          "type": "string"
        +                        },
        +                        "quarter": {
        +                          "type": "integer"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "endFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "endQuarter": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "startFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "startQuarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": [
        +                  "object",
        +                  "null"
        +                ]
        +              },
        +              "workerPositions": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "subject": {
        +      "properties": {
        +        "domain": {
        +          "type": "string"
        +        },
        +        "domainDictionaryId": {
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "wageLevel": {
        +      "properties": {
        +        "availability": {
        +          "enum": [
        +            "AVAILABLE",
        +            "NO_FILINGS",
        +            "INSUFFICIENT_SAMPLE",
        +            "NOT_STATED",
        +            "NOT_READY",
        +            "UNRESOLVED_EMPLOYER"
        +          ],
        +          "type": "string"
        +        },
        +        "breakdown": {
        +          "properties": {
        +            "level1Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level2Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level3Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level4Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "notStatedPct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "period": {
        +          "properties": {
        +            "complete": {
        +              "type": "boolean"
        +            },
        +            "coveredQuarters": {
        +              "items": {
        +                "properties": {
        +                  "fiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "quarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "endFiscalYear": {
        +              "type": "integer"
        +            },
        +            "endQuarter": {
        +              "type": "integer"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "startFiscalYear": {
        +              "type": "integer"
        +            },
        +            "startQuarter": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "sampleSize": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedjobs_recommendations1 field changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / employerFilingHistory
        Added value: +{
        +  "properties": {
        +    "attribution": {
        +      "enum": [
        +        "FILED_BY"
        +      ],
        +      "type": "string"
        +    },
        +    "availability": {
        +      "enum": [
        +        "AVAILABLE",
        +        "NO_FILINGS",
        +        "UNRESOLVED_EMPLOYER",
        +        "NOT_READY"
        +      ],
        +      "type": "string"
        +    },
        +    "bindingStatus": {
        +      "enum": [
        +        "LEGACY_UNREVIEWED",
        +        "UNRESOLVED"
        +      ],
        +      "type": "string"
        +    },
        +    "coverage": {
        +      "items": {
        +        "properties": {
        +          "fiscalYear": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "quarter": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "current": {
        +      "properties": {
        +        "filings": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "workerPositions": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "currentPeriod": {
        +      "properties": {
        +        "complete": {
        +          "type": "boolean"
        +        },
        +        "coveredQuarters": {
        +          "items": {
        +            "properties": {
        +              "fiscalYear": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "quarter": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "endFiscalYear": {
        +          "type": "integer"
        +        },
        +        "endQuarter": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "startFiscalYear": {
        +          "type": "integer"
        +        },
        +        "startQuarter": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "history": {
        +      "properties": {
        +        "access": {
        +          "enum": [
        +            "AVAILABLE",
        +            "RESTRICTED",
        +            "UNAVAILABLE"
        +          ],
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "points": {
        +          "items": {
        +            "properties": {
        +              "filings": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "period": {
        +                "properties": {
        +                  "complete": {
        +                    "type": "boolean"
        +                  },
        +                  "coveredQuarters": {
        +                    "items": {
        +                      "properties": {
        +                        "fiscalYear": {
        +                          "type": "integer"
        +                        },
        +                        "id": {
        +                          "type": "string"
        +                        },
        +                        "quarter": {
        +                          "type": "integer"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "endFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "endQuarter": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "startFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "startQuarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": [
        +                  "object",
        +                  "null"
        +                ]
        +              },
        +              "workerPositions": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "subject": {
        +      "properties": {
        +        "domain": {
        +          "type": "string"
        +        },
        +        "domainDictionaryId": {
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "wageLevel": {
        +      "properties": {
        +        "availability": {
        +          "enum": [
        +            "AVAILABLE",
        +            "NO_FILINGS",
        +            "INSUFFICIENT_SAMPLE",
        +            "NOT_STATED",
        +            "NOT_READY",
        +            "UNRESOLVED_EMPLOYER"
        +          ],
        +          "type": "string"
        +        },
        +        "breakdown": {
        +          "properties": {
        +            "level1Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level2Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level3Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level4Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "notStatedPct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "period": {
        +          "properties": {
        +            "complete": {
        +              "type": "boolean"
        +            },
        +            "coveredQuarters": {
        +              "items": {
        +                "properties": {
        +                  "fiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "quarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "endFiscalYear": {
        +              "type": "integer"
        +            },
        +            "endQuarter": {
        +              "type": "integer"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "startFiscalYear": {
        +              "type": "integer"
        +            },
        +            "startQuarter": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "sampleSize": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedjobs_search1 field changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / employerFilingHistory
        Added value: +{
        +  "properties": {
        +    "attribution": {
        +      "enum": [
        +        "FILED_BY"
        +      ],
        +      "type": "string"
        +    },
        +    "availability": {
        +      "enum": [
        +        "AVAILABLE",
        +        "NO_FILINGS",
        +        "UNRESOLVED_EMPLOYER",
        +        "NOT_READY"
        +      ],
        +      "type": "string"
        +    },
        +    "bindingStatus": {
        +      "enum": [
        +        "LEGACY_UNREVIEWED",
        +        "UNRESOLVED"
        +      ],
        +      "type": "string"
        +    },
        +    "coverage": {
        +      "items": {
        +        "properties": {
        +          "fiscalYear": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "quarter": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "current": {
        +      "properties": {
        +        "filings": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "workerPositions": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "currentPeriod": {
        +      "properties": {
        +        "complete": {
        +          "type": "boolean"
        +        },
        +        "coveredQuarters": {
        +          "items": {
        +            "properties": {
        +              "fiscalYear": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "quarter": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "endFiscalYear": {
        +          "type": "integer"
        +        },
        +        "endQuarter": {
        +          "type": "integer"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "startFiscalYear": {
        +          "type": "integer"
        +        },
        +        "startQuarter": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "history": {
        +      "properties": {
        +        "access": {
        +          "enum": [
        +            "AVAILABLE",
        +            "RESTRICTED",
        +            "UNAVAILABLE"
        +          ],
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "points": {
        +          "items": {
        +            "properties": {
        +              "filings": {
        +                "type": "integer"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "period": {
        +                "properties": {
        +                  "complete": {
        +                    "type": "boolean"
        +                  },
        +                  "coveredQuarters": {
        +                    "items": {
        +                      "properties": {
        +                        "fiscalYear": {
        +                          "type": "integer"
        +                        },
        +                        "id": {
        +                          "type": "string"
        +                        },
        +                        "quarter": {
        +                          "type": "integer"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "endFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "endQuarter": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "startFiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "startQuarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": [
        +                  "object",
        +                  "null"
        +                ]
        +              },
        +              "workerPositions": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "subject": {
        +      "properties": {
        +        "domain": {
        +          "type": "string"
        +        },
        +        "domainDictionaryId": {
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "wageLevel": {
        +      "properties": {
        +        "availability": {
        +          "enum": [
        +            "AVAILABLE",
        +            "NO_FILINGS",
        +            "INSUFFICIENT_SAMPLE",
        +            "NOT_STATED",
        +            "NOT_READY",
        +            "UNRESOLVED_EMPLOYER"
        +          ],
        +          "type": "string"
        +        },
        +        "breakdown": {
        +          "properties": {
        +            "level1Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level2Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level3Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "level4Pct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "notStatedPct": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "id": {
        +          "type": "string"
        +        },
        +        "period": {
        +          "properties": {
        +            "complete": {
        +              "type": "boolean"
        +            },
        +            "coveredQuarters": {
        +              "items": {
        +                "properties": {
        +                  "fiscalYear": {
        +                    "type": "integer"
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "quarter": {
        +                    "type": "integer"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "endFiscalYear": {
        +              "type": "integer"
        +            },
        +            "endQuarter": {
        +              "type": "integer"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "startFiscalYear": {
        +              "type": "integer"
        +            },
        +            "startQuarter": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "sampleSize": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
  4. 10 tool updates
    • Changedjob_alert_list2 fields changed
      • addedOutput schema / properties / jobAlerts / items / properties / delivery
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / jobAlerts / items / properties / fastActive
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedjob_alert_subscribe3 fields changed
      • addedInput schema / properties / delivery
        Added value: +{
        +  "description": "Delivery mode: digest, fast; fast is not available on every account and needs a qualifying search",
        +  "type": "string"
        +}
      • addedOutput schema / properties / jobAlert / properties / delivery
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / jobAlert / properties / fastActive
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedjobs_analyze_external5 fields changed
      • removedOutput schema / properties / jobs / items / properties / companyRating
        Removed value: -{
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / basedOn
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • changedOutput schema / properties / jobs / items / properties / trackerInput / properties / location_name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / studioUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / system_instruction
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_compare5 fields changed
      • removedOutput schema / properties / jobs / items / properties / companyRating
        Removed value: -{
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / basedOn
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • changedOutput schema / properties / jobs / items / properties / trackerInput / properties / location_name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / studioUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / system_instruction
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_details7 fields changed
      • addedInput schema / properties / job_id / minLength
        Added value: +1
      • addedInput schema / properties / result_item_id
        Added value: +{
        +  "description": "The result occurrence ID returned with the selected job",
        +  "type": "string"
        +}
      • removedOutput schema / properties / job / properties / companyRating
        Removed value: -{
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / job / properties / estimatedSalary / properties / basedOn
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / job / properties / remoteCheck
        Added value: +{
        +  "properties": {
        +    "quotes": {
        +      "items": {
        +        "properties": {
        +          "source": {
        +            "type": "string"
        +          },
        +          "text": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "workFrom": {
        +      "properties": {
        +        "allowedPlaces": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "excludedPlaces": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "quotes": {
        +          "items": {
        +            "properties": {
        +              "source": {
        +                "type": "string"
        +              },
        +              "text": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "scope": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / resultItemId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / studioUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_recommendations34 fields changed
      • addedInput schema / properties / benefits
        Added value: +{
        +  "description": "Advanced filter: benefit names such as \"health insurance\", \"401k\" or \"parental leave\"; a job qualifies only when it states every listed benefit. Names that match no known benefit are ignored.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 10,
        +  "type": "array"
        +}
      • addedInput schema / properties / bonuses_only
        Added value: +{
        +  "description": "Advanced filter: only jobs that state a bonus (sign-on, performance, referral, commission and the like).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / companies
        Added value: +{
        +  "description": "Filter: official company names; a job from any of them qualifies, across every job board each employer posts on. More than one company makes it an advanced filter. Next to company, a job has to match both; hiring_brand narrows company only.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / company
        Added value: +{
        +  "description": "The official company name",
        +  "type": "string"
        +}
      • addedInput schema / properties / confirmed_work_from
        Added value: +{
        +  "description": "Advanced filter: with strict_remote, also leaves out postings that do not say where the work can be done from.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / education
        Added value: +{
        +  "description": "Filter: jobs whose posting requires one of these education levels (no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree); bachelor_degree means the posting asks for a bachelor degree, not that it suits someone holding one.",
        +  "items": {
        +    "enum": [
        +      "no_requirements",
        +      "high_school",
        +      "associate_degree",
        +      "bachelor_degree",
        +      "professional_certificate",
        +      "postgraduate_degree"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / employment_types
        Added value: +{
        +  "description": "Filter: jobs offered as any of these employment types (full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other).",
        +  "items": {
        +    "enum": [
        +      "full_time",
        +      "part_time",
        +      "contractor",
        +      "temporary",
        +      "intern",
        +      "volunteer",
        +      "per_diem",
        +      "other"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / exclude_companies
        Added value: +{
        +  "description": "Advanced filter: official company names whose jobs are removed from the results, across every job board each employer posts on.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / experience_levels
        Added value: +{
        +  "description": "Filter: jobs at any of these experience levels (entry_level, mid_level, senior_level, executive, level_not_stated). The level comes from the years of experience the posting asks for and the seniority in its title, the higher of the two; entry_level never includes a posting asking for more than two years. level_not_stated selects jobs whose level cannot be derived; it can be selected alone or alongside other levels.",
        +  "items": {
        +    "enum": [
        +      "entry_level",
        +      "mid_level",
        +      "senior_level",
        +      "executive",
        +      "level_not_stated"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / h1b_sponsors_only
        Added value: +{
        +  "description": "Advanced filter: only companies known to sponsor H1B visas.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / hiring_brand
        Added value: +{
        +  "description": "Filter: one brand inside the company, for example company \"Google\" with hiring_brand \"YouTube\"; used only together with company.",
        +  "type": "string"
        +}
      • changedInput schema / properties / location / description
        Previous value: -"Optional preferred location name or slug"New value: +"Geographic location (e.g., 'Boston, MA')"
      • addedInput schema / properties / min_match
        Added value: +{
        +  "description": "Advanced filter: lowest personal FoundRole match grade to keep, the same letter each job shows in insights.match.grade. A and A- are rare even for a strong resume; B keeps good and strong matches; C+ also keeps fair ones. Needs a resume on the account.",
        +  "enum": [
        +    "A",
        +    "A-",
        +    "B+",
        +    "B",
        +    "B-",
        +    "C+",
        +    "C"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / page
        Removed value: -{
        -  "description": "Recommendation page number",
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • addedInput schema / properties / posted_days_ago
        Added value: +{
        +  "description": "Number of days ago to search for jobs (1-365)",
        +  "maximum": 365,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "The full job title or skill (e.g., \"Ruby Developer\", NOT just \"Ruby\")",
        +  "type": "string"
        +}
      • addedInput schema / properties / radius
        Added value: +{
        +  "description": "Search radius in miles around a city location (default 40); not used for state, country or remote searches.",
        +  "maximum": 100,
        +  "minimum": 5,
        +  "type": "integer"
        +}
      • addedInput schema / properties / remote
        Added value: +{
        +  "description": "Advanced filter: only remote-eligible jobs, matched across the whole country of the requested location rather than its radius.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / salary_floor
        Added value: +{
        +  "description": "Advanced filter: minimum annualized salary in USD; a posting qualifies when the lower bound of its pay band reaches the floor. Jobs without a USD salary are dropped.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / sort
        Added value: +{
        +  "description": "Result order (score, posted_at, match, salary): score is relevance and the default, posted_at is newest first, salary is highest pay first, match is best personal fit first and needs a resume. Ordering by salary or match is an advanced option.",
        +  "enum": [
        +    "score",
        +    "posted_at",
        +    "match",
        +    "salary"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / strict_remote
        Added value: +{
        +  "description": "Advanced filter: only postings checked as fully remote that can be worked from the requested location: the posting names that area, allows anywhere, or does not say where. Stricter than remote; work_modes other than remote do not apply with it.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / work_modes
        Added value: +{
        +  "description": "Advanced filter: jobs in any of these work modes (on_site, remote, hybrid). remote is matched across the whole country of the location, the others within the radius. [\"remote\"] is the same search as remote: true.",
        +  "items": {
        +    "enum": [
        +      "on_site",
        +      "remote",
        +      "hybrid"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / continueUrl
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / feedStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / jobs / items / properties / companyRating
        Removed value: -{
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / basedOn
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / jobs / items / properties / related
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / jobs / items / properties / resultItemId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / lowRelevanceNotice
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • removedOutput schema / properties / nextPage
        Removed value: -{
        -  "type": [
        -    "integer",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / preview
        Added value: +{
        +  "properties": {
        +    "continueUrl": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "hidden": {
        +      "type": "integer"
        +    },
        +    "hiddenAtLeast": {
        +      "type": "boolean"
        +    },
        +    "shown": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / resultBatchId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / resultSetId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / system_instruction
        Added value: +{
        +  "type": "string"
        +}
    • Changedjobs_search32 fields changed
      • addedInput schema / properties / benefits
        Added value: +{
        +  "description": "Advanced filter: benefit names such as \"health insurance\", \"401k\" or \"parental leave\"; a job qualifies only when it states every listed benefit. Names that match no known benefit are ignored.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 10,
        +  "type": "array"
        +}
      • addedInput schema / properties / bonuses_only
        Added value: +{
        +  "description": "Advanced filter: only jobs that state a bonus (sign-on, performance, referral, commission and the like).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / companies
        Added value: +{
        +  "description": "Filter: official company names; a job from any of them qualifies, across every job board each employer posts on. More than one company makes it an advanced filter. Next to company, a job has to match both; hiring_brand narrows company only.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / confirmed_work_from
        Added value: +{
        +  "description": "Advanced filter: with strict_remote, also leaves out postings that do not say where the work can be done from.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "Pagination cursor. Treat as an opaque string. COPY EXACTLY.",
        -  "type": "string"
        -}
      • addedInput schema / properties / education
        Added value: +{
        +  "description": "Filter: jobs whose posting requires one of these education levels (no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree); bachelor_degree means the posting asks for a bachelor degree, not that it suits someone holding one.",
        +  "items": {
        +    "enum": [
        +      "no_requirements",
        +      "high_school",
        +      "associate_degree",
        +      "bachelor_degree",
        +      "professional_certificate",
        +      "postgraduate_degree"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / employment_types
        Added value: +{
        +  "description": "Filter: jobs offered as any of these employment types (full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other).",
        +  "items": {
        +    "enum": [
        +      "full_time",
        +      "part_time",
        +      "contractor",
        +      "temporary",
        +      "intern",
        +      "volunteer",
        +      "per_diem",
        +      "other"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / exclude_companies
        Added value: +{
        +  "description": "Advanced filter: official company names whose jobs are removed from the results, across every job board each employer posts on.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / experience_levels
        Added value: +{
        +  "description": "Filter: jobs at any of these experience levels (entry_level, mid_level, senior_level, executive, level_not_stated). The level comes from the years of experience the posting asks for and the seniority in its title, the higher of the two; entry_level never includes a posting asking for more than two years. level_not_stated selects jobs whose level cannot be derived; it can be selected alone or alongside other levels.",
        +  "items": {
        +    "enum": [
        +      "entry_level",
        +      "mid_level",
        +      "senior_level",
        +      "executive",
        +      "level_not_stated"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / hide_low_quality
        Removed value: -{
        -  "description": "Advanced filter: hides postings with a risky ghost grade (D/F); ungraded postings stay.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / hiring_brand
        Added value: +{
        +  "description": "Filter: one brand inside the company, for example company \"Google\" with hiring_brand \"YouTube\"; used only together with company.",
        +  "type": "string"
        +}
      • changedInput schema / properties / min_match / description
        Previous value: -"Advanced filter: minimum personal FoundRole match score (0-100); needs a resume on the account."New value: +"Advanced filter: lowest personal FoundRole match grade to keep, the same letter each job shows in insights.match.grade. A and A- are rare even for a strong resume; B keeps good and strong matches; C+ also keeps fair ones. Needs a resume on the account."
      • addedInput schema / properties / min_match / enum
        Added value: +[
        +  "A",
        +  "A-",
        +  "B+",
        +  "B",
        +  "B-",
        +  "C+",
        +  "C"
        +]
      • removedInput schema / properties / min_match / maximum
        Removed value: -100
      • removedInput schema / properties / min_match / minimum
        Removed value: -0
      • changedInput schema / properties / min_match / type
        Previous value: -"integer"New value: +"string"
      • addedInput schema / properties / radius
        Added value: +{
        +  "description": "Search radius in miles around a city location (default 40); not used for state, country or remote searches.",
        +  "maximum": 100,
        +  "minimum": 5,
        +  "type": "integer"
        +}
      • changedInput schema / properties / remote / description
        Previous value: -"Advanced filter: only remote-eligible jobs (respects the location/region scope)."New value: +"Advanced filter: only remote-eligible jobs, matched across the whole country of the requested location rather than its radius."
      • changedInput schema / properties / salary_floor / description
        Previous value: -"Advanced filter: minimum annualized salary in USD; a posting qualifies when the midpoint of its pay band reaches the floor. Jobs without a USD salary are dropped."New value: +"Advanced filter: minimum annualized salary in USD; a posting qualifies when the lower bound of its pay band reaches the floor. Jobs without a USD salary are dropped."
      • addedInput schema / properties / sort
        Added value: +{
        +  "description": "Result order (score, posted_at, match, salary): score is relevance and the default, posted_at is newest first, salary is highest pay first, match is best personal fit first and needs a resume. Ordering by salary or match is an advanced option.",
        +  "enum": [
        +    "score",
        +    "posted_at",
        +    "match",
        +    "salary"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / strict_remote
        Added value: +{
        +  "description": "Advanced filter: only postings checked as fully remote that can be worked from the requested location: the posting names that area, allows anywhere, or does not say where. Stricter than remote; work_modes other than remote do not apply with it.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / work_modes
        Added value: +{
        +  "description": "Advanced filter: jobs in any of these work modes (on_site, remote, hybrid). remote is matched across the whole country of the location, the others within the radius. [\"remote\"] is the same search as remote: true.",
        +  "items": {
        +    "enum": [
        +      "on_site",
        +      "remote",
        +      "hybrid"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / continueUrl
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / jobs / items / properties / companyRating
        Removed value: -{
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / basedOn
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / jobs / items / properties / related
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / jobs / items / properties / resultItemId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / preview
        Added value: +{
        +  "properties": {
        +    "continueUrl": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "hidden": {
        +      "type": "integer"
        +    },
        +    "hiddenAtLeast": {
        +      "type": "boolean"
        +    },
        +    "shown": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
      • removedOutput schema / properties / proFilterUpsellUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / resultBatchId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / resultSetId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / system_instruction
        Added value: +{
        +  "type": "string"
        +}
    • Changedknowledge_search5 fields changed
      • removedInput schema / properties / job_title
        Removed value: -{
        -  "description": "A job title or role, when the question is about openings for it — returns job-listing landing pages",
        -  "type": "string"
        -}
      • changedInput schema / properties / location / description
        Previous value: -"A city, state, or country refining job_title, or alone when the question is about jobs in that place"New value: +"A city, state, or country, when the question is about that labour market — returns its market landing page"
      • removedOutput schema / properties / companyPages / items / properties / openJobs
        Removed value: -{
        -  "type": [
        -    "integer",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / landingPages / items / properties / openJobs
        Removed value: -{
        -  "type": [
        -    "integer",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / proUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
    • Addedresume_check
    • Changedtracker_add1 field changed
      • addedInput schema / properties / result_item_id
        Added value: +{
        +  "description": "The result occurrence ID returned with the selected job",
        +  "type": "string"
        +}
  5. 5 tool updates
    • Changedjobs_analyze_external1 field changed
      • addedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / currency
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_compare1 field changed
      • addedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / currency
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_details1 field changed
      • addedOutput schema / properties / job / properties / estimatedSalary / properties / currency
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_recommendations1 field changed
      • addedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / currency
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_search2 fields changed
      • changedInput schema / properties / salary_floor / description
        Previous value: -"Advanced filter: minimum annualized salary in USD; a posting qualifies when the midpoint of its pay band reaches the floor. Jobs without salary data are dropped."New value: +"Advanced filter: minimum annualized salary in USD; a posting qualifies when the midpoint of its pay band reaches the floor. Jobs without a USD salary are dropped."
      • addedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / currency
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  6. 5 tool updates
    • Changedjobs_analyze_external4 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentKind
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentMultiplier
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerProfileId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerSpecializationId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
    • Changedjobs_compare4 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentKind
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentMultiplier
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerProfileId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerSpecializationId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
    • Changedjobs_details4 fields changed
      • addedOutput schema / properties / job / properties / insights / properties / match / properties / breakdown / properties / alignmentKind
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / insights / properties / match / properties / breakdown / properties / alignmentMultiplier
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / insights / properties / match / properties / breakdown / properties / jobCareerProfileId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / insights / properties / match / properties / breakdown / properties / jobCareerSpecializationId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
    • Changedjobs_recommendations4 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentKind
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentMultiplier
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerProfileId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerSpecializationId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
    • Changedjobs_search4 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentKind
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / alignmentMultiplier
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerProfileId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / breakdown / properties / jobCareerSpecializationId
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
  7. 5 tool updates
    • Changedjobs_analyze_external3 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / grade
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeConfidence
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeReasons
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "params": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "severity": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedjobs_compare3 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / grade
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeConfidence
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeReasons
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "params": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "severity": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedjobs_details3 fields changed
      • addedOutput schema / properties / job / properties / insights / properties / match / properties / grade
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / insights / properties / match / properties / gradeConfidence
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / insights / properties / match / properties / gradeReasons
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "params": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "severity": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedjobs_recommendations3 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / grade
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeConfidence
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeReasons
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "params": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "severity": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedjobs_search3 fields changed
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / grade
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeConfidence
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights / properties / match / properties / gradeReasons
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "code": {
        +        "type": "string"
        +      },
        +      "params": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "severity": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  8. 8 tool updates
    • Removedjob_alert_disable
    • Removedjob_alert_enable
    • Addedjob_alert_subscribe
    • Addedjob_alert_unsubscribe
    • Addedtracker_add
    • Addedtracker_add_external
    • Removedtracker_save
    • Removedtracker_save_external
  9. 11 tool updates
    • Addedjob_alert_disable
    • Addedjob_alert_enable
    • Removedjob_alert_subscribe
    • Removedjob_alert_unsubscribe
    • Changedjobs_search5 fields changed
      • changedInput schema / properties / h1b_sponsors_only / description
        Previous value: -"Pro filter. Only companies known to sponsor H1B visas. Applied only for Pro users; ignored otherwise."New value: +"Advanced filter: only companies known to sponsor H1B visas."
      • changedInput schema / properties / hide_low_quality / description
        Previous value: -"Pro filter. Hide postings with a risky ghost grade (D/F); ungraded jobs stay. Applied only for Pro users; ignored otherwise."New value: +"Advanced filter: hides postings with a risky ghost grade (D/F); ungraded postings stay."
      • changedInput schema / properties / min_match / description
        Previous value: -"Pro filter. Minimum personal match score (0-100); needs a resume. Applied only for Pro users; ignored otherwise."New value: +"Advanced filter: minimum personal FoundRole match score (0-100); needs a resume on the account."
      • changedInput schema / properties / remote / description
        Previous value: -"Pro filter. Only remote-eligible jobs (respects the location/region scope). Applied only for Pro users; ignored otherwise."New value: +"Advanced filter: only remote-eligible jobs (respects the location/region scope)."
      • changedInput schema / properties / salary_floor / description
        Previous value: -"Pro filter. Minimum annualized salary in USD; jobs without salary data are dropped. Applied only for Pro users; ignored otherwise."New value: +"Advanced filter: minimum annualized salary in USD; a posting qualifies when the midpoint of its pay band reaches the floor. Jobs without salary data are dropped."
    • Changedknowledge_search11 fields changed
      • addedInput schema / properties / company
        Added value: +{
        +  "description": "A company name, when the question is about that employer — returns FoundRole company profile pages",
        +  "type": "string"
        +}
      • addedInput schema / properties / job_title
        Added value: +{
        +  "description": "A job title or role, when the question is about openings for it — returns job-listing landing pages",
        +  "type": "string"
        +}
      • addedInput schema / properties / location
        Added value: +{
        +  "description": "A city, state, or country refining job_title, or alone when the question is about jobs in that place",
        +  "type": "string"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"The career or job-search question to answer from the blog"New value: +"The career, job-search, or FoundRole product question to answer"
      • removedOutput schema / properties / articles / items / properties / score
        Removed value: -{
        -  "type": "number"
        -}
      • addedOutput schema / properties / companyPages
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "headquarters": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "industry": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "openJobs": {
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / landingPages
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "description": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "openJobs": {
        +        "type": [
        +          "integer",
        +          "null"
        +        ]
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / pages
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "description": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "faq": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / proUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / profileSetupUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / system_instruction
        Added value: +{
        +  "type": "string"
        +}
    • Addedknowledge_topics
    • Removedtracker_add
    • Removedtracker_add_external
    • Addedtracker_save
    • Addedtracker_save_external
  10. 3 tool updates
    • Changedtracker_add1 field changed
      • changedInput schema / properties / sub_status / description
        Previous value: -"Sub-status within the main status"New value: +"Sub-status within the main status, valid only for that status — saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company"
    • Changedtracker_add_external1 field changed
      • changedInput schema / properties / sub_status / description
        Previous value: -"Sub-status within the main status"New value: +"Sub-status within the main status, valid only for that status — saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company"
    • Changedtracker_update_status1 field changed
      • changedInput schema / properties / sub_status / description
        Previous value: -"Sub-status within the main status"New value: +"Sub-status within the main status, valid only for that status — saved: interested, researching_company, preparing_application, ready_to_apply; applied: application_submitted, followed_up; interviewing: interview_scheduled, phone_screen, technical, onsite, final_round, pending_feedback; offered: negotiating, considering, offer_received, accepted; archived: ghosted, rejected_by_company, withdrawn_by_candidate, not_interested, employed_by_this_company, employed_by_another_company"
  11. 1 tool update
    • Addedknowledge_search
  12. 2 tool updates
    • Changedjobs_recommendations1 field changed
      • addedOutput schema / properties / jobSearchId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedjobs_search1 field changed
      • addedOutput schema / properties / jobSearchId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  13. 9 tool updates
    • Changedreminder_delete16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedreminder_list8 fields changed
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedreminder_set16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedtracker_add16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedtracker_add_external16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedtracker_list16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedtracker_remove16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedtracker_update16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedtracker_update_status16 fields changed
      • changedOutput schema / properties / trackedJob / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJob / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / appliedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / createdAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / deadline / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / notes / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / reminderAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / salaryOfferedType / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / subStatus / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / trackedJobs / items / properties / updatedAt / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
  14. 18 tool updates
    • Changedjob_alert_list3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedjob_alert_subscribe3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedjob_alert_unsubscribe3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedjob_alert_unsubscribe_all3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedjobs_analyze_external19 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / client_extraction / allOf
        Removed value: -[
        -  {
        -    "required": [
        -      "skills",
        -      "tech_stack",
        -      "benefits",
        -      "bonuses",
        -      "seniority",
        -      "industry",
        -      "management",
        -      "security_clearance",
        -      "visa_sponsorship",
        -      "remote_scope"
        -    ]
        -  }
        -]
      • changedInput schema / properties / client_extraction / description
        Previous value: -"Evidence-backed facts extracted by the client model from the posting. Every nested field is present and nullable; non-null evidence is a short source excerpt rather than an inference."New value: +"Evidence-backed facts extracted by the client model from the posting; non-null evidence is a short source excerpt rather than an inference. Fields absent from the source are omitted or null."
      • changedInput schema / properties / client_extraction / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / properties / education_requirements / description
        Previous value: -"Education requirements: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree, or null"New value: +"Education requirements: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree"
      • changedInput schema / properties / employment_type / description
        Previous value: -"Employment types: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other, or null"New value: +"Employment types: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other"
      • changedInput schema / properties / experience_months / description
        Previous value: -"Minimum required experience in months, or null when not stated"New value: +"Minimum required experience in months, when stated"
      • changedInput schema / properties / posted_at / description
        Previous value: -"Posting date as ISO 8601, or null when the source does not state it"New value: +"Posting date as ISO 8601, when the source states it"
      • changedInput schema / properties / salary_currency / description
        Previous value: -"ISO 4217 salary currency code, or null when not stated"New value: +"ISO 4217 salary currency code, when stated"
      • changedInput schema / properties / salary_max_value / description
        Previous value: -"Salary range maximum, or null when not stated"New value: +"Salary range maximum, when stated"
      • changedInput schema / properties / salary_min_value / description
        Previous value: -"Salary range minimum, or null when not stated"New value: +"Salary range minimum, when stated"
      • changedInput schema / properties / salary_type / description
        Previous value: -"Salary period: year, month, week, day, hour, or null"New value: +"Salary period: year, month, week, day, hour"
      • changedInput schema / properties / salary_value / description
        Previous value: -"Single salary amount, or null when the posting gives a range or no salary"New value: +"Single salary amount, when the posting gives one figure instead of a range"
      • changedInput schema / properties / work_location_type / description
        Previous value: -"Work arrangement: on_site, remote, hybrid, or null"New value: +"Work arrangement: on_site, remote, hybrid"
      • changedInput schema / required
        Previous value: -[
        -  "url",
        -  "company_name",
        -  "title_name",
        -  "location_name",
        -  "description",
        -  "posted_at",
        -  "salary_min_value",
        -  "salary_max_value",
        -  "salary_value",
        -  "salary_type",
        -  "salary_currency",
        -  "employment_type",
        -  "work_location_type",
        -  "education_requirements",
        -  "experience_months",
        -  "client_extraction"
        -]New value: +[
        +  "url",
        +  "company_name",
        +  "title_name",
        +  "location_name",
        +  "description"
        +]
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedOutput schema / properties / clientExtraction / allOf
        Removed value: -[
        -  {
        -    "required": [
        -      "recordId",
        -      "schemaVersion",
        -      "acceptedFields",
        -      "rejectedFields"
        -    ]
        -  }
        -]
      • changedOutput schema / properties / clientExtraction / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedjobs_compare3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedjobs_details3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedjobs_recommendations3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedjobs_search9 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / h1b_sponsors_only
        Added value: +{
        +  "description": "Pro filter. Only companies known to sponsor H1B visas. Applied only for Pro users; ignored otherwise.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / hide_low_quality
        Added value: +{
        +  "description": "Pro filter. Hide postings with a risky ghost grade (D/F); ungraded jobs stay. Applied only for Pro users; ignored otherwise.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / min_match
        Added value: +{
        +  "description": "Pro filter. Minimum personal match score (0-100); needs a resume. Applied only for Pro users; ignored otherwise.",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / remote
        Added value: +{
        +  "description": "Pro filter. Only remote-eligible jobs (respects the location/region scope). Applied only for Pro users; ignored otherwise.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / salary_floor
        Added value: +{
        +  "description": "Pro filter. Minimum annualized salary in USD; jobs without salary data are dropped. Applied only for Pro users; ignored otherwise.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / properties / proFilterUpsellUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedreminder_delete3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedreminder_list3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedreminder_set3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedtracker_add3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedtracker_add_external17 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / client_extraction / allOf
        Removed value: -[
        -  {
        -    "required": [
        -      "skills",
        -      "tech_stack",
        -      "benefits",
        -      "bonuses",
        -      "seniority",
        -      "industry",
        -      "management",
        -      "security_clearance",
        -      "visa_sponsorship",
        -      "remote_scope"
        -    ]
        -  }
        -]
      • changedInput schema / properties / client_extraction / description
        Previous value: -"Evidence-backed facts extracted by the client model from the posting. Every nested field is present and nullable; non-null evidence is a short source excerpt rather than an inference."New value: +"Evidence-backed facts extracted by the client model from the posting; non-null evidence is a short source excerpt rather than an inference. Fields absent from the source are omitted or null."
      • changedInput schema / properties / client_extraction / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedInput schema / properties / education_requirements / description
        Previous value: -"Education requirements: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree, or null"New value: +"Education requirements: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree"
      • changedInput schema / properties / employment_type / description
        Previous value: -"Employment types: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other, or null"New value: +"Employment types: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other"
      • changedInput schema / properties / experience_months / description
        Previous value: -"Minimum required experience in months, or null when not stated"New value: +"Minimum required experience in months, when stated"
      • changedInput schema / properties / posted_at / description
        Previous value: -"Posting date as ISO 8601, or null when the source does not state it"New value: +"Posting date as ISO 8601, when the source states it"
      • changedInput schema / properties / salary_currency / description
        Previous value: -"ISO 4217 salary currency code, or null when not stated"New value: +"ISO 4217 salary currency code, when stated"
      • changedInput schema / properties / salary_max_value / description
        Previous value: -"Salary range maximum, or null when not stated"New value: +"Salary range maximum, when stated"
      • changedInput schema / properties / salary_min_value / description
        Previous value: -"Salary range minimum, or null when not stated"New value: +"Salary range minimum, when stated"
      • changedInput schema / properties / salary_type / description
        Previous value: -"Salary period: year, month, week, day, hour, or null"New value: +"Salary period: year, month, week, day, hour"
      • changedInput schema / properties / salary_value / description
        Previous value: -"Single salary amount, or null when the posting gives a range or no salary"New value: +"Single salary amount, when the posting gives one figure instead of a range"
      • changedInput schema / properties / work_location_type / description
        Previous value: -"Work arrangement: on_site, remote, hybrid, or null"New value: +"Work arrangement: on_site, remote, hybrid"
      • changedInput schema / required
        Previous value: -[
        -  "url",
        -  "company_name",
        -  "title_name",
        -  "location_name",
        -  "description",
        -  "posted_at",
        -  "salary_min_value",
        -  "salary_max_value",
        -  "salary_value",
        -  "salary_type",
        -  "salary_currency",
        -  "employment_type",
        -  "work_location_type",
        -  "education_requirements",
        -  "experience_months",
        -  "client_extraction"
        -]New value: +[
        +  "url",
        +  "company_name",
        +  "title_name",
        +  "location_name",
        +  "description"
        +]
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedtracker_list3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedtracker_remove3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedtracker_update3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedtracker_update_status3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
  15. 8 tool updates
    • Changedreminder_delete6 fields changed
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / statusOrder
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / subStatusOrder
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / trackedJobs
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "appliedAt": {
        +        "type": "string"
        +      },
        +      "contacts": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "createdAt": {
        +        "type": "string"
        +      },
        +      "deadline": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "isStarred": {
        +        "type": "boolean"
        +      },
        +      "job": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reminderAt": {
        +        "type": "string"
        +      },
        +      "salaryOffered": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "salaryOfferedType": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "subStatus": {
        +        "type": "string"
        +      },
        +      "tags": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "trackable": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / trackerWebUrl
        Added value: +{
        +  "type": "string"
        +}
    • Changedreminder_set6 fields changed
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / statusOrder
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / subStatusOrder
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / trackedJobs
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "appliedAt": {
        +        "type": "string"
        +      },
        +      "contacts": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "createdAt": {
        +        "type": "string"
        +      },
        +      "deadline": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "isStarred": {
        +        "type": "boolean"
        +      },
        +      "job": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reminderAt": {
        +        "type": "string"
        +      },
        +      "salaryOffered": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "salaryOfferedType": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "subStatus": {
        +        "type": "string"
        +      },
        +      "tags": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "trackable": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / trackerWebUrl
        Added value: +{
        +  "type": "string"
        +}
    • Changedtracker_add6 fields changed
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / statusOrder
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / subStatusOrder
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / trackedJobs
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "appliedAt": {
        +        "type": "string"
        +      },
        +      "contacts": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "createdAt": {
        +        "type": "string"
        +      },
        +      "deadline": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "isStarred": {
        +        "type": "boolean"
        +      },
        +      "job": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reminderAt": {
        +        "type": "string"
        +      },
        +      "salaryOffered": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "salaryOfferedType": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "subStatus": {
        +        "type": "string"
        +      },
        +      "tags": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "trackable": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / trackerWebUrl
        Added value: +{
        +  "type": "string"
        +}
    • Changedtracker_add_external6 fields changed
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / statusOrder
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / subStatusOrder
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / trackedJobs
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "appliedAt": {
        +        "type": "string"
        +      },
        +      "contacts": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "createdAt": {
        +        "type": "string"
        +      },
        +      "deadline": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "isStarred": {
        +        "type": "boolean"
        +      },
        +      "job": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reminderAt": {
        +        "type": "string"
        +      },
        +      "salaryOffered": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "salaryOfferedType": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "subStatus": {
        +        "type": "string"
        +      },
        +      "tags": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "trackable": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / trackerWebUrl
        Added value: +{
        +  "type": "string"
        +}
    • Changedtracker_list1 field changed
      • addedOutput schema / properties / trackedJob
        Added value: +{
        +  "properties": {
        +    "appliedAt": {
        +      "type": "string"
        +    },
        +    "contacts": {
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "createdAt": {
        +      "type": "string"
        +    },
        +    "deadline": {
        +      "type": "string"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "isStarred": {
        +      "type": "boolean"
        +    },
        +    "notes": {
        +      "type": "string"
        +    },
        +    "reminderAt": {
        +      "type": "string"
        +    },
        +    "salaryOffered": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "salaryOfferedType": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "subStatus": {
        +      "type": "string"
        +    },
        +    "tags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "trackable": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "updatedAt": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id"
        +  ],
        +  "type": "object"
        +}
    • Changedtracker_remove6 fields changed
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / statusOrder
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / subStatusOrder
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / trackedJobs
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "appliedAt": {
        +        "type": "string"
        +      },
        +      "contacts": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "createdAt": {
        +        "type": "string"
        +      },
        +      "deadline": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "isStarred": {
        +        "type": "boolean"
        +      },
        +      "job": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reminderAt": {
        +        "type": "string"
        +      },
        +      "salaryOffered": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "salaryOfferedType": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "subStatus": {
        +        "type": "string"
        +      },
        +      "tags": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "trackable": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / trackerWebUrl
        Added value: +{
        +  "type": "string"
        +}
    • Changedtracker_update6 fields changed
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / statusOrder
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / subStatusOrder
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / trackedJobs
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "appliedAt": {
        +        "type": "string"
        +      },
        +      "contacts": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "createdAt": {
        +        "type": "string"
        +      },
        +      "deadline": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "isStarred": {
        +        "type": "boolean"
        +      },
        +      "job": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reminderAt": {
        +        "type": "string"
        +      },
        +      "salaryOffered": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "salaryOfferedType": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "subStatus": {
        +        "type": "string"
        +      },
        +      "tags": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "trackable": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / trackerWebUrl
        Added value: +{
        +  "type": "string"
        +}
    • Changedtracker_update_status6 fields changed
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / statusOrder
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / subStatusOrder
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / trackedJobs
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "appliedAt": {
        +        "type": "string"
        +      },
        +      "contacts": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "createdAt": {
        +        "type": "string"
        +      },
        +      "deadline": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "isStarred": {
        +        "type": "boolean"
        +      },
        +      "job": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reminderAt": {
        +        "type": "string"
        +      },
        +      "salaryOffered": {
        +        "type": [
        +          "number",
        +          "null"
        +        ]
        +      },
        +      "salaryOfferedType": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "subStatus": {
        +        "type": "string"
        +      },
        +      "tags": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "trackable": {
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / trackerWebUrl
        Added value: +{
        +  "type": "string"
        +}
  16. 3 tool updates
    • Addedjobs_analyze_external
    • Addedjobs_compare
    • Changedtracker_add_external27 fields changed
      • addedInput schema / properties / client_extraction
        Added value: +{
        +  "additionalProperties": false,
        +  "allOf": [
        +    {
        +      "required": [
        +        "skills",
        +        "tech_stack",
        +        "benefits",
        +        "bonuses",
        +        "seniority",
        +        "industry",
        +        "management",
        +        "security_clearance",
        +        "visa_sponsorship",
        +        "remote_scope"
        +      ]
        +    }
        +  ],
        +  "description": "Evidence-backed facts extracted by the client model from the posting. Every nested field is present and nullable; non-null evidence is a short source excerpt rather than an inference.",
        +  "properties": {
        +    "benefits": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "evidence": {
        +            "maxLength": 500,
        +            "minLength": 8,
        +            "type": "string"
        +          },
        +          "value": {
        +            "maxLength": 255,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "value",
        +          "evidence"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "bonuses": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "evidence": {
        +            "maxLength": 500,
        +            "minLength": 8,
        +            "type": "string"
        +          },
        +          "value": {
        +            "maxLength": 255,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "value",
        +          "evidence"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "industry": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "evidence": {
        +          "maxLength": 500,
        +          "minLength": 8,
        +          "type": "string"
        +        },
        +        "value": {
        +          "maxLength": 255,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "value",
        +        "evidence"
        +      ],
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "management": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "evidence": {
        +          "maxLength": 500,
        +          "minLength": 8,
        +          "type": "string"
        +        },
        +        "value": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "value",
        +        "evidence"
        +      ],
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "remote_scope": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "evidence": {
        +          "maxLength": 500,
        +          "minLength": 8,
        +          "type": "string"
        +        },
        +        "value": {
        +          "maxLength": 255,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "value",
        +        "evidence"
        +      ],
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "security_clearance": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "evidence": {
        +          "maxLength": 500,
        +          "minLength": 8,
        +          "type": "string"
        +        },
        +        "value": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "value",
        +        "evidence"
        +      ],
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "seniority": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "evidence": {
        +          "maxLength": 500,
        +          "minLength": 8,
        +          "type": "string"
        +        },
        +        "value": {
        +          "maxLength": 255,
        +          "minLength": 1,
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "value",
        +        "evidence"
        +      ],
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "skills": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "evidence": {
        +            "maxLength": 500,
        +            "minLength": 8,
        +            "type": "string"
        +          },
        +          "importance": {
        +            "enum": [
        +              "required",
        +              "preferred",
        +              "mentioned"
        +            ],
        +            "type": "string"
        +          },
        +          "value": {
        +            "maxLength": 255,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "value",
        +          "evidence",
        +          "importance"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 50,
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "tech_stack": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "evidence": {
        +            "maxLength": 500,
        +            "minLength": 8,
        +            "type": "string"
        +          },
        +          "value": {
        +            "maxLength": 255,
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "value",
        +          "evidence"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "visa_sponsorship": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "evidence": {
        +          "maxLength": 500,
        +          "minLength": 8,
        +          "type": "string"
        +        },
        +        "value": {
        +          "enum": [
        +            "offered",
        +            "not_offered",
        +            "conditional"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "value",
        +        "evidence"
        +      ],
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / company_name / description
        Previous value: -"Company name"New value: +"Company name from the posting"
      • changedInput schema / properties / description / description
        Previous value: -"The posting's description from the source result; a short summary is acceptable"New value: +"Complete posting text available in the conversation; a source summary is valid only when no fuller posting text is available"
      • changedInput schema / properties / education_requirements / description
        Previous value: -"Array of: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree"New value: +"Education requirements: no_requirements, high_school, associate_degree, bachelor_degree, professional_certificate, postgraduate_degree, or null"
      • changedInput schema / properties / education_requirements / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedInput schema / properties / employment_type / description
        Previous value: -"Array of: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other"New value: +"Employment types: full_time, part_time, contractor, temporary, intern, volunteer, per_diem, other, or null"
      • changedInput schema / properties / employment_type / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "null"
        +]
      • changedInput schema / properties / experience_months / description
        Previous value: -"Minimum required experience in months"New value: +"Minimum required experience in months, or null when not stated"
      • changedInput schema / properties / experience_months / type
        Previous value: -"number"New value: +[
        +  "integer",
        +  "null"
        +]
      • changedInput schema / properties / location_name / description
        Previous value: -"Location text, e.g. \"New York, NY\""New value: +"Location text from the posting, including Remote when stated"
      • addedInput schema / properties / posted_at
        Added value: +{
        +  "description": "Posting date as ISO 8601, or null when the source does not state it",
        +  "format": "date-time",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / salary_currency
        Added value: +{
        +  "description": "ISO 4217 salary currency code, or null when not stated",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedInput schema / properties / salary_max_value / description
        Previous value: -"Salary range maximum"New value: +"Salary range maximum, or null when not stated"
      • changedInput schema / properties / salary_max_value / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedInput schema / properties / salary_min_value / description
        Previous value: -"Salary range minimum"New value: +"Salary range minimum, or null when not stated"
      • changedInput schema / properties / salary_min_value / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedInput schema / properties / salary_type / description
        Previous value: -"One of: year, month, week, day, hour"New value: +"Salary period: year, month, week, day, hour, or null"
      • changedInput schema / properties / salary_type / enum
        Previous value: -[
        -  "year",
        -  "month",
        -  "week",
        -  "day",
        -  "hour"
        -]New value: +[
        +  null,
        +  "year",
        +  "month",
        +  "week",
        +  "day",
        +  "hour"
        +]
      • changedInput schema / properties / salary_type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedInput schema / properties / salary_value / description
        Previous value: -"Single salary figure when there is no range"New value: +"Single salary amount, or null when the posting gives a range or no salary"
      • changedInput schema / properties / salary_value / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedInput schema / properties / title_name / description
        Previous value: -"Job title"New value: +"Job title from the posting"
      • changedInput schema / properties / url / description
        Previous value: -"The job posting URL"New value: +"Direct URL of the specific job posting; a company homepage is invalid"
      • changedInput schema / properties / work_location_type / description
        Previous value: -"One of: on_site, remote, hybrid"New value: +"Work arrangement: on_site, remote, hybrid, or null"
      • changedInput schema / properties / work_location_type / enum
        Previous value: -[
        -  "on_site",
        -  "remote",
        -  "hybrid"
        -]New value: +[
        +  null,
        +  "on_site",
        +  "remote",
        +  "hybrid"
        +]
      • changedInput schema / properties / work_location_type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "url",
        -  "company_name",
        -  "title_name",
        -  "location_name",
        -  "description"
        -]New value: +[
        +  "url",
        +  "company_name",
        +  "title_name",
        +  "location_name",
        +  "description",
        +  "posted_at",
        +  "salary_min_value",
        +  "salary_max_value",
        +  "salary_value",
        +  "salary_type",
        +  "salary_currency",
        +  "employment_type",
        +  "work_location_type",
        +  "education_requirements",
        +  "experience_months",
        +  "client_extraction"
        +]
  17. 3 tool updates
    • Changedjobs_details5 fields changed
      • addedOutput schema / properties / job / properties / estimatedSalary / properties / max
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / estimatedSalary / properties / min
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / estimatedSalary / properties / updatedAt
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / insights
        Added value: +{
        +  "properties": {
        +    "eVerify": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "ghostScore": {
        +      "properties": {
        +        "confidence": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "grade": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "reasons": {
        +          "items": {
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "params": {
        +                "type": [
        +                  "object",
        +                  "null"
        +                ]
        +              },
        +              "severity": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "h1bHistory": {
        +      "items": {
        +        "properties": {
        +          "fiscalPeriod": {
        +            "type": "string"
        +          },
        +          "petitions": {
        +            "type": "integer"
        +          },
        +          "workers": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "h1bPetitions": {
        +      "properties": {
        +        "count": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "fiscalPeriod": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "workers": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "h1bSponsor": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "match": {
        +      "properties": {
        +        "breakdown": {
        +          "properties": {
        +            "jobRank": {
        +              "type": [
        +                "integer",
        +                "null"
        +              ]
        +            },
        +            "jobTrack": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "scoredSkillCount": {
        +              "type": [
        +                "integer",
        +                "null"
        +              ]
        +            },
        +            "seniorityMultiplier": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "skillScore": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "userRank": {
        +              "type": [
        +                "integer",
        +                "null"
        +              ]
        +            },
        +            "userTrack": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "weightedDenominator": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "insufficientData": {
        +          "type": "boolean"
        +        },
        +        "matchedCount": {
        +          "type": "integer"
        +        },
        +        "matchedRequiredCount": {
        +          "type": "integer"
        +        },
        +        "missingNice": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "missingNiceTotal": {
        +          "type": "integer"
        +        },
        +        "missingRequired": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "missingRequiredTotal": {
        +          "type": "integer"
        +        },
        +        "requiredTotal": {
        +          "type": "integer"
        +        },
        +        "score": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "seniorityMatch": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / job / properties / salaryBand
        Added value: +{
        +  "properties": {
        +    "max": {
        +      "type": "number"
        +    },
        +    "min": {
        +      "type": "number"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Addedjobs_recommendations
    • Changedjobs_search11 fields changed
      • addedOutput schema / properties / feedKind
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / feedStatus
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / max
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / min
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / estimatedSalary / properties / updatedAt
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / insights
        Added value: +{
        +  "properties": {
        +    "eVerify": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "ghostScore": {
        +      "properties": {
        +        "confidence": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "grade": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "reasons": {
        +          "items": {
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "params": {
        +                "type": [
        +                  "object",
        +                  "null"
        +                ]
        +              },
        +              "severity": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "h1bHistory": {
        +      "items": {
        +        "properties": {
        +          "fiscalPeriod": {
        +            "type": "string"
        +          },
        +          "petitions": {
        +            "type": "integer"
        +          },
        +          "workers": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "h1bPetitions": {
        +      "properties": {
        +        "count": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "fiscalPeriod": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "workers": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "h1bSponsor": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "match": {
        +      "properties": {
        +        "breakdown": {
        +          "properties": {
        +            "jobRank": {
        +              "type": [
        +                "integer",
        +                "null"
        +              ]
        +            },
        +            "jobTrack": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "scoredSkillCount": {
        +              "type": [
        +                "integer",
        +                "null"
        +              ]
        +            },
        +            "seniorityMultiplier": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "skillScore": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "userRank": {
        +              "type": [
        +                "integer",
        +                "null"
        +              ]
        +            },
        +            "userTrack": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "weightedDenominator": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            }
        +          },
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "insufficientData": {
        +          "type": "boolean"
        +        },
        +        "matchedCount": {
        +          "type": "integer"
        +        },
        +        "matchedRequiredCount": {
        +          "type": "integer"
        +        },
        +        "missingNice": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "missingNiceTotal": {
        +          "type": "integer"
        +        },
        +        "missingRequired": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "missingRequiredTotal": {
        +          "type": "integer"
        +        },
        +        "requiredTotal": {
        +          "type": "integer"
        +        },
        +        "score": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "seniorityMatch": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / jobs / items / properties / salaryBand
        Added value: +{
        +  "properties": {
        +    "max": {
        +      "type": "number"
        +    },
        +    "min": {
        +      "type": "number"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / lowRelevanceNotice
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / profileSetupState
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / profileSetupUrl
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / revalidating
        Added value: +{
        +  "type": "boolean"
        +}

Publisher details

Operator
FoundRole · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Unknown
Restrictions
A FoundRole account and OAuth sign-in are required. Free accounts see a preview of matching jobs in chat. Pro unlocks full matching results and additional in-chat insights. Fair-use limits apply. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Live job postings read straight from 139 employers' own ATS APIs (Greenhouse, Lever, Ashby, Beisen, Moka). Every listing carries the employer's real posting date, days_open and a ghost_score — a board's "posted 2 days ago" is routinely 300 days old underneath. Heavy on AI infra, autonomous driving and embodied AI across the US, EU and China. No account, no signup, no résumé upload.
    11
    1,228 PyPI
    13
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.