ats
Server Details
Which ATS does a company use? Portal-verified answers for 743 employers + resume ATS check. No key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- Kayvan-Zahiri/state-of-ats-2026
- GitHub Stars
- 5
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 6 of 6 tools scored.
Each tool targets a clearly distinct action: ATS lookup, company listing, market stats, change feed, resume scoring, and resume retrieval. Even the two resume-related tools are unambiguous—one evaluates, the other fetches.
Naming mixes conventions: ats_changes and ats_stats use a noun-focused ats_ prefix, check_resume, get_agent_resume, and list_companies use verb_noun, and which_ats is a question-style name. All are readable and snake_case, but the patterns are not consistent.
Six tools is well-scoped for an ATS/resume data server. Each tool covers a distinct capability without redundancy or bloat.
The surface covers the domain well: employer ATS lookup, company filtering, market-share statistics, change tracking, resume scoring, and consent-gated resume retrieval. The deliberate lack of resume enumeration is a documented privacy boundary, not a gap.
Available Tools
6 toolsats_changesConfirmed ATS changes at large employersARead-onlyInspect
The living-feed counterpart of the dataset: which tracked employers changed their applicant tracking system. Every entry currently in the feed was confirmed by a person against the live careers portal during the July 2026 re-verification and published together, which is why they share a timestamp — the automated sweep has not yet detected one on its own. Employers whose vendor exposes a probeable board or tenant host are re-probed on a rolling sweep, and a suspected change is human-confirmed before it appears here. An empty list means no confirmed changes yet, not that monitoring is off. Returns at most 50 rows, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max changes to return (default 50, the cap) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds substantial behavioral detail: entries are human-confirmed against live portals, share a timestamp due to batch publication, the automated sweep has not yet detected one, rolling re-probing occurs, and a suspected change is human-confirmed before appearing. It also clarifies that an empty list does not indicate monitoring failure. This exceeds what annotations provide and offers rich, non-obvious operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it opens with purpose, then explains the confirmation process, current state, interpretation of empty results, and return limits—all in a logical order. While a bit lengthy, every sentence adds necessary context (e.g., why timestamps are shared, what happens on rollback), and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's nuance (confirmation process, timestamp sharing, empty-list meaning, limit), the description covers all crucial aspects. There is no output schema, so the description appropriately includes the return format ('at most 50 rows, newest first'). It also explains the relationship to the dataset, making it complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single 'limit' parameter with a description ('Max changes to return (default 50, the cap)'), so the schema already fully documents it. The description adds no additional parameter semantics beyond what the schema states, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'which tracked employers changed their applicant tracking system' and positions itself as 'the living-feed counterpart of the dataset.' This distinguishes it from siblings like 'which_ats' (current ATS) and 'ats_stats' (statistics), making the tool's purpose specific and non-redundant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when the tool is useful (see confirmed changes) and explicitly interprets 'an empty list means no confirmed changes yet, not that monitoring is off.' While it doesn't explicitly say 'use X instead of Y,' the 'living-feed counterpart' phrasing implies it complements the static dataset, and the context is sufficient for an agent to decide when to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ats_statsATS market share among large employersARead-onlyInspect
Canonical ATS market-share numbers from ResumeAI's State of ATS 2026 dataset: 738 large employers, 704 verified against their live careers portal. Workday leads — not the ~75% figure often repeated online — and the top 3 vendors cover about 60%. Every share in the response is computed live from the verified rows at call time, so quote those rather than this summary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, but the description adds substantial context: dataset source, verification methodology, live computation at call time, and correction of a common misconception (~75% figure). This goes well beyond the annotation-only safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all high-value: source/methodology, key findings, and usage instruction. No filler, redundancy, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only stats tool, the description covers source, verification, key numbers, and live computation. Slight gap: no explicit response structure or field names, but overall it is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so baseline is 4. Description appropriately focuses on output semantics rather than parameters; no parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the tool as providing canonical ATS market-share numbers from a specific dataset (ResumeAI's State of ATS 2026), with concrete scope (738 large employers, 704 verified). It distinguishes itself from siblings like which_ats (individual employer lookup) and ats_changes (changes over time).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use this for authoritative market-share figures, and explicitly instructs to quote response values rather than the summary. Does not explicitly name sibling alternatives or state when not to use, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_resumeATS-check a resumeARead-onlyInspect
Score a resume 0-100 with ResumeAI's production ATS engine — the same one behind https://withresumeai.com/ats-checker. Returns a breakdown (keywords, format, sections, content, length), concrete fixes, and missing keywords. Optionally pass a target company (to get that employer's verified ATS + vendor-specific parsing rules) and/or a job description (to score keyword overlap against the posting). Rate limited to 10 checks per day per IP; pass a paid api_key ($49/mo at https://withresumeai.com/developers) for unlimited calls.
| Name | Required | Description | Default |
|---|---|---|---|
| ats | No | Target ATS vendor, e.g. 'Workday' — adds vendor parsing guidance | |
| api_key | No | Paid API key (ra_live_...) — lifts the 10/day IP cap. Get one at https://withresumeai.com/developers | |
| company | No | Target employer, e.g. 'Nike' — adds its verified ATS + parsing guidance | |
| resume_text | Yes | The resume as plain text | |
| job_description | No | Job description text — switches scoring to keyword overlap against it |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses concrete return contents (breakdown, fixes, missing keywords), rate limiting (10/day/IP), and paid key behavior. This is significant context that annotations alone don't convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each serving a purpose: purpose, return value, optional params, and rate limit/auth. It's a bit detail-heavy with pricing and URLs, but remains well-organized and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully explains what the tool returns, how each optional parameter alters behavior, and the constraints (rate limit, api_key). It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds relational meaning: 'company' triggers employer-specific ATS rules, 'job_description' switches to keyword-overlap scoring, and 'api_key' lifts the daily cap. This goes well beyond the individual parameter descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Score a resume 0-100 with ResumeAI's production ATS engine' — a specific verb, resource, and range that clearly states the tool's function. It distinguishes itself from siblings like ats_stats and which_ats by focusing on scoring and returning an actionable breakdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies when to use optional parameters (company, job description, api_key) and notes the rate limit for free usage. Though it doesn't explicitly contrast with sibling tools, the context makes the primary use case clear: to get an ATS score and fixes for a resume.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_resumeFetch a consent-shared candidate resumeARead-onlyInspect
Fetch a job seeker's structured, machine-readable resume as JSON Resume (https://jsonresume.org/schema/) — but ONLY when its human owner has explicitly shared a consent token for it. Pass that token and the tool returns the JSON Resume plus ats_context: how to render the profile for the owner's target applicant tracking system, grounded in ResumeAI's portal-verified State of ATS 2026 data (recommended file format, layout, and vendor parsing rules). No token, an invalid token, or a token the owner has revoked returns nothing. There is no way to browse, search, list, or enumerate resumes with this server — the owner-minted token is the only key, and the owner can revoke it at any time. This tool never exposes personal data without one.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The consent token the resume's owner minted and shared, from https://withresumeai.com |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds important behavior beyond that: the consent-token requirement, token revocation behavior, the guarantee of no enumeration, and the explicit statement that personal data is never exposed without a token. This fully discloses the tool's privacy and safety model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise given the complexity of the consent model, front-loads the core purpose, and every sentence adds unique value. It flows logically from what the tool does, to the prerequisite, to the return value, to restrictions and privacy guarantees, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description specifies the return format (JSON Resume plus ats_context), explains what ats_context contains, covers all relevant edge cases (missing/invalid/revoked token), and describes the tool's limitation (no enumeration). This is fully complete for a single-parameter, consent-gated fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single token parameter, including its source URL and length constraints. The description adds behaviorally meaningful semantics: passing the token returns the resume, and invalid/revoked tokens return nothing, which goes beyond the schema's static field definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Fetch a job seeker's structured, machine-readable resume as JSON Resume' with a clear distinction from siblings by emphasizing the consent-token-gated nature and the returned ATS context. It clearly differentiates itself from the ATS-focused sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the critical precondition: the tool can only be used with an owner-minted consent token, and that no token, invalid token, or revoked token returns nothing. It also explicitly rules out browsing/searching/listing, but does not name alternative sibling tools for those use cases; still, the guidance is otherwise very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_companiesList companies by ATS or industryARead-onlyInspect
List employers from the State of ATS 2026 dataset, optionally filtered by ATS vendor (case-insensitive substring, e.g. 'workday', 'greenhouse', 'oracle') and/or industry (substring, e.g. 'health', 'consulting'). Returns at most 100 rows per call — narrow the filters or fetch the full dataset from https://withresumeai.com/api/v1/ats.
| Name | Required | Description | Default |
|---|---|---|---|
| ats | No | ATS vendor filter, e.g. 'workday' | |
| industry | No | Industry filter, e.g. 'consulting' | |
| verified_only | No | Only rows confirmed against the live careers portal (default false) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description discloses the row limit (at most 100 rows per call), the case-insensitive substring matching for ATS vendor and substring matching for industry, and points to the full dataset URL. These are meaningful behavioral details that help the agent predict output size and filter semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main purpose, and each sentence adds essential information: the dataset, filter behavior, and output limit/source for full data. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple list with optional filters, read-only annotations, and no output schema. The description covers the source dataset, filter behavior, output limit, and full-data alternative. It does not describe the fields of each returned row, but given the known dataset and the link, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all three parameters with descriptions. The description adds practical semantics for 'ats' by specifying case-insensitive substring matching with examples, and for 'industry' as substring matching. This goes beyond the schema's basic descriptions. The 'verified_only' parameter is not elaborated in the description, but the schema definition is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'List employers from the State of ATS 2026 dataset', clearly stating the action (list), resource (employers from a specific dataset), and scope (optionally filtered by ATS and industry). This distinguishes it from siblings like ats_stats or which_ats, which focus on statistics or identification rather than listing companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use: it can list all companies or filter by ATS and industry. It also states the 100-row limit and advises narrowing filters or fetching the full dataset from the provided URL. However, it does not explicitly name sibling tools as alternatives or exclusions, so it lacks explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
which_atsWhich ATS does a company use?ARead-onlyInspect
Look up the applicant tracking system (ATS) a specific large employer uses, from ResumeAI's State of ATS 2026 dataset (738 Fortune 500 / Global 2000 employers checked, 704 verified against live careers portals, June 2026 audit, re-verified July 2026). Accepts a company name or slug, e.g. 'Nike' or 'jpmorgan-chase'.
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes | Company name or slug, e.g. 'Nike' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds valuable context: dataset provenance, coverage counts (738 checked, 704 verified), audit dates, and input flexibility (name or slug). This goes beyond the annotations without contradicting them, though it doesn't address not-found behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the core action front-loaded and dataset details in the second sentence. Every clause earns its place; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup with no output schema, the description covers what, scope, dataset, and input format. The return value is implied by the tool name and description, though the exact response shape is not specified. This is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes the 'company' parameter with 100% coverage. The description enriches it by giving concrete examples ('Nike', 'jpmorgan-chase') and clarifying that it accepts a name or slug, which helps the agent form valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Look up' and resource 'applicant tracking system (ATS)' for a 'specific large employer'. It clearly distinguishes from siblings like ats_changes and list_companies by focusing on identifying the ATS for a named company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use when you have a specific large employer in mind, and it defines the dataset scope (Fortune 500/Global 2000). However, it does not explicitly mention alternatives or when-not-to-use, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAnalyzes resume text against job descriptions to provide ATS fit scores, missing keywords, and suggestions.MIT
- AlicenseAqualityCmaintenanceRewrites resumes to beat ATS screening (Workday, Greenhouse, iCIMS, Taleo) against a specific job description, with strict truthfulness guardrails — never invents dates, metrics, titles, or seniority. Pay-what-you-want access codes ($0 works).2MIT
- AlicenseNot gradedqualityBmaintenanceEnables users to discover applicant tracking system job boards from company domains, list open roles, detect hiring changes over time, and generate hiring summaries across multiple ATS platforms.MIT
- AlicenseAqualityAmaintenanceTailor your CV to any job posting with ATS keyword scoring and clean PDF/DOCX export.63MIT