Card snapshot
buyer.moxlade.com
·
2026-09-06 20:09:44 UTC
·
a6a0b42154a8034635cfd29f0b8f1203d413a00b3820d374e36d44d0891fda13
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"name": "Moxlade \u2014 Upwork buyer intelligence",
"description": "Upwork buyer intelligence for your own agent, over MCP. A proprietary Upwork corpus your agent asks over MCP: who the anonymous client really is, what they actually pay, and rate benchmarks from a freelancer census. You bring the agent and the subscription; the corpus answers, it is never downloaded. Not affiliated with, endorsed by, or sponsored by Upwork Inc. Upwork is a trademark of Upwork Inc. Data is compiled from public postings and public profiles and is provided as-is.",
"url": "https://buyer.moxlade.com",
"provider": {
"organization": "Moxlade",
"url": "https://moxlade.com"
},
"version": "0.1.1",
"documentationUrl": "https://buyer.moxlade.com/llms.txt",
"additionalInterfaces": [
{
"url": "https://buyer.moxlade.com/mcp/",
"transport": "JSONRPC",
"protocol": "MCP",
"protocolVersion": "2026-07-28"
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"securitySchemes": {
"bearer": {
"type": "http",
"scheme": "bearer"
},
"oauth2": {
"type": "oauth2",
"description": "OAuth 2.1 with dynamic client registration and PKCE; tokens are audience-bound to the MCP endpoint (RFC 8707).",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://clerk.buyer.moxlade.com/oauth/authorize",
"tokenUrl": "https://clerk.buyer.moxlade.com/oauth/token",
"scopes": {
"mcp:tools": "Call the corpus tools",
"profile": "Your name",
"email": "Your email address",
"offline_access": "Refresh without signing in again"
}
}
}
}
},
"security": [
{
"bearer": []
},
{
"oauth2": [
"mcp:tools"
]
}
],
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "find-work",
"name": "Find work",
"description": "search_jobs: Search Upwork postings by words, an exact phrase, and structured filters. get_prefilter_catalog: The fields search_jobs and save_search can filter on, with their types and the values each accepts. check_prefilter: Validate a filter without running it, and see how much it would catch.",
"tags": [
"search_jobs",
"get_prefilter_catalog",
"check_prefilter"
],
"examples": [
"search_jobs",
"get_prefilter_catalog"
]
},
{
"id": "judge-a-posting",
"name": "Judge a posting",
"description": "get_job: One posting in full, as the corpus holds it. get_job_score: How good a posting is on its own terms, 0-100, and WHY.",
"tags": [
"get_job",
"get_job_score"
],
"examples": [
"get_job",
"get_job_score"
]
},
{
"id": "judge-the-client",
"name": "Judge the client",
"description": "get_buyer: Who is actually behind an anonymous posting. get_buyer_quality: Whether the client behind a posting actually pays, and how much of that we can honestly claim to know. Call it before spending connects.",
"tags": [
"get_buyer",
"get_buyer_quality"
],
"examples": [
"get_buyer",
"get_buyer_quality"
]
},
{
"id": "the-market",
"name": "The market",
"description": "rate_benchmark: What freelancers with a given skill LIST as their hourly rate, as a distribution rather than an average. skill_demand: How many jobs mentioning a skill were posted recently, and whether that is rising or falling week by week.",
"tags": [
"rate_benchmark",
"skill_demand"
],
"examples": [
"rate_benchmark",
"skill_demand"
]
},
{
"id": "be-told-instead-of-asking",
"name": "Be told, instead of asking",
"description": "save_search: Save a search so new matching postings are pushed to you as they appear, instead of you polling for them. list_saved_searches: Every search saved against this token, with whether it is currently matching. delete_saved_search: Delete a saved search and its delivery, permanently.",
"tags": [
"save_search",
"list_saved_searches",
"delete_saved_search"
],
"examples": [
"save_search",
"list_saved_searches"
]
},
{
"id": "your-plan",
"name": "Your plan",
"description": "get_plan: What this token is allowed to do right now, and what it costs. get_activity: What this token has called, newest first \u2014 the log of your own use.",
"tags": [
"get_plan",
"get_activity"
],
"examples": [
"get_plan",
"get_activity"
]
},
{
"id": "understand-a-result",
"name": "Understand a result",
"description": "describe_fields: What every field of a result MEANS \u2014 the glossary the schema cannot deliver.",
"tags": [
"describe_fields"
],
"examples": [
"describe_fields"
]
}
],
"disclaimer": "Not affiliated with, endorsed by, or sponsored by Upwork Inc. Upwork is a trademark of Upwork Inc. Data is compiled from public postings and public profiles and is provided as-is."
}