DevMatch - AI Recruiting & Mission-Aligned Engineer Discovery
Server Details
AI recruiting for mission-aligned engineers — verified across GitHub, X, YouTube, Medium, and more
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
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 3 of 3 tools scored.
Each tool has a distinct purpose: find_candidates searches for engineers, find_similar_projects finds similar projects with leads, get_profile fetches individual profiles. No overlap.
All tool names follow a clear verb_noun snake_case pattern (find_candidates, find_similar_projects, get_profile). Consistent.
With 3 tools, the set is slightly minimal but still covers the core discovery workflow. Each tool earns its place.
The tools cover searching candidates, finding similar projects, and retrieving profiles. Minor gaps like direct filtering or listing all projects, but the main workflow is supported.
Available Tools
3 toolsfind_candidatesARead-onlyIdempotentInspect
Search the DevMatch index for engineers matching a role or project.
Input: pass the richest context you have — (1) a full job description (most common), (2) a synthesized brief after reviewing a company's public repo (README + stack + role needs — preferred over a bare URL when you've evaluated the project), (3) a public github.com repo URL (server fetches README/topics; private repos → paste README as text), or (4) an informal role brief. Longer, more specific input ranks better.
Returns up to limit ranked candidates (default 20, max 50) with full inline profiles in structuredContent (view=candidates): login, name, bio, location, followers, html_url, top_repos, top_topics, signals, matched_projects, and contact.
Results never include bots, CI, or service accounts — they are filtered out automatically. Use the optional exclude array (GitHub logins or org names) to drop additional accounts.
AGENT MODE: consume structuredContent only. HUMAN MODE: MCP App panel shows candidate cards; use server instructions for text-only hosts.
Do not call get_profile for handles already in these results unless the user asks for deeper detail.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Search brief: full JD, repo-derived summary (preferred when you've reviewed the project), README excerpt, informal role brief, or a PUBLIC github.com repo URL. Private repos: paste README content as text. | |
| limit | No | Max candidates to return. Default 20, max 50. | |
| exclude | No | Optional. GitHub logins or org names to exclude from results (case-insensitive). Matches a candidate's login AND the owner/org of every repo they matched on — so passing a company's GitHub org (e.g. "livekit", which also covers "livekit-cloud") keeps that company's own engineers out of a shortlist you're building FOR them. Also use it to suppress specific handles you've already contacted. Bots and CI/service accounts are excluded automatically and need not be listed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| view | No | Payload discriminator for MCP App hosts |
| query_ms | No | End-to-end query time in milliseconds |
| candidates | Yes | Ranked engineer candidates, strongest fit first. When presenting to the user, format each item using FindCandidatesPresentationTemplate from server instructions — list every contact.urls entry and every email verbatim. |
| total_count | Yes | Count of candidates returned (≤ requested limit) |
| cache_source | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent, so description's main addition is filtering out bots/CI/service accounts and ranking logic. This adds meaningful behavioral context beyond annotations without contradiction.
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?
Well-structured: purpose first, then input options enumerated, output details, filtering, and mode instructions. Every sentence adds value without redundancy, despite being detailed.
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?
Covers input, output fields, filtering, usage boundaries with siblings, and mode-specific behavior. With output schema present, it fully equips 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?
Schema already covers 100%, but description adds significant nuance: input types (JD, repo summary, URL, etc.) and ranking hint ('longer input ranks better'), plus detailed exclude logic matching login AND repo owner/org.
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 states it searches DevMatch index for engineers matching a role/project, with specific verb 'Search' and resource 'DevMatch index'. It distinguishes from siblings by mentioning get_profile for deeper detail and implies find_similar_projects targets projects, not candidates.
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?
Explicitly describes when to use (matching engineers) and when not to call get_profile for results. Provides input format preferences, default/max limit, and exclude usage with concrete examples. Also covers agent vs human mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_projectsARead-onlyIdempotentInspect
Find open-source projects similar to a seed GitHub repo, ranked by semantic similarity to its description/topics/README. Each result includes top contributors as leads — not JD-ranked candidates. Returns structuredContent (view=similar_projects). Agents: consume structuredContent only.
Use for landscape mapping or to discover anchor repos; follow with find_candidates for hiring matches.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Seed repo in `owner/name` form (e.g. 'karpathy/llm.c'). A full github.com URL is also accepted; the server strips the prefix. | |
| limit | No | Number of similar projects to return. Defaults to 10, max 25. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | The owner/name searched against |
| projects | Yes | Similar projects, ranked by vector similarity to the seed repo. |
| query_ms | No | |
| total_count | No | |
| cache_source | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive. Description adds that results include top contributors as leads (not JD-ranked), and instructs agents to consume structuredContent only. No contradictions.
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 concise sentences: purpose, output/consumption instruction, usage guidance. Front-loaded with key info, 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?
Given simple tool with 2 params, full annotations, and existing output schema, the description covers purpose, usage guidelines, output structure, and follow-up. Agents can decide and invoke 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 covers both parameters with clear descriptions (repo format, limit range, default). Description does not add new parameter details but mentions ranking by semantic similarity, which is a minor extra. With 100% schema coverage, baseline 3 is appropriate.
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 states it finds open-source projects similar to a seed GitHub repo, ranked by semantic similarity. This distinguishes it from sibling tools find_candidates (which finds candidates) and get_profile (profile retrieval).
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?
Explicitly says use for landscape mapping or discovering anchor repos, and follow with find_candidates for hiring matches. Provides both when to use and when not to use, with alternative specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileARead-onlyIdempotentInspect
Fetch one contributor's profile card for a GitHub handle not already returned by find_candidates — e.g. the user names a specific person, references an external handle, or wants verification before outreach. find_candidates already returns full inline profiles; use get_profile only for handles outside those results or when the user asks for deeper detail.
Returns structuredContent (view=profile). Agents: consume structuredContent only.
IMPORTANT — interpreting recent_activities: indexed GitHub activity in the current ingestion window (2025–2026), up to ~20 events per recent project. NOT a complete career history. Empty or older activity does not mean inactive.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | The GitHub handle to look up. Plain login name, no '@' prefix (e.g. 'karpathy', not '@karpathy'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| bio | No | |
| name | No | |
| No | ||
| company | No | |
| html_url | No | Profile URL on GitHub |
| location | No | |
| followers | No | |
| avatar_url | No | |
| login_name | Yes | GitHub handle |
| display_name | No | |
| public_repos | No | |
| top_projects | No | Highest-contribution projects this user worked on |
| profile_readme | No | User's profile README content if present |
| social_accounts | No | Social URLs (twitter, linkedin, etc.) |
| recent_activities | No | Indexed GitHub events from current ingestion window (2025–2026). NOT a full career timeline. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, idempotent, non-destructive. The description adds valuable context: returns structuredContent (view=profile), advises agents to consume only structuredContent, and clarifies the interpretation of recent_activities (limited to 2025-2026 ingestion window, ~20 events per project, not complete history).
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 reasonably concise with three short paragraphs, though it could be slightly tighter by removing redundant phrases like 'Agents: consume structuredContent only' which is implied by the previous sentence.
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 output schema exists (not needing return value explanation), the description covers all necessary behavioral context: the specific view, the limitation on recent_activities, and the relationship to find_candidates. It is complete for a simple profile lookup 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?
Schema coverage is 100% and the schema already describes the 'handle' parameter with the same detail (plain login name, no '@' prefix). The description restates this but does not add new meaning beyond 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 clearly states the verb 'Fetch' and the resource 'profile card' for a GitHub handle, and explicitly distinguishes its use from the sibling tool 'find_candidates' by specifying that it is for handles not already returned by find_candidates or when deeper detail is needed.
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 explicit guidance on when to use this tool (handles outside find_candidates results, or when user asks for deeper detail) and what find_candidates already provides, helping the agent decide between the two.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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!