MCP server that aggregates job listings from multiple platforms (RentAHuman, JobForAgent, Virtuals, X402, Work402, ClawTasks, Moltverr, AgentWork) and provides tools for searching, comparing prices, and subscribing to job alerts
Agent47 presents 4 tools with basic but incomplete definitions. Tool names follow verb_noun convention (findJobs, getPlatformStats, comparePrice, subscribeToAlerts) and are reasonably clear. However, descriptions are minimal (20-60 chars) and lack the depth needed for LLM-driven tool selection. Input schemas ARE present with type definitions and enums where appropriate (platform enum for findJobs), but parameter descriptions are terse. Output schemas are not documented at all, critical for agents planning chained calls. Error handling guidance is absent. The WRITE tool (subscribeToAlerts) lacks confirmation/dry-run support. Overall, these are functional baseline definitions that would benefit significantly from richer descriptions, output schema documentation, and error recovery guidance.
Compare prices for a job title or skill across all platforms with average, min, max pricing and top 10 matches
Search query for jobs/agents with optional filtering by price range and platform
Get platform statistics including total connectors, available platforms, and aggregator status
Subscribe to email alerts for job listings matching a specific search query
No output schemas documented for any tool. LLMs cannot plan chained calls or extract necessary fields without knowing what fields each tool returns. Required for composition.
Descriptions are below 50 characters for 3 of 4 tools, violating the 10-1024 character guideline. getPlatformStats (47 chars) and findJobs (42 chars excluding input details) lack sufficient context for tool selection. Descriptions should explain WHAT, WHEN, and any prerequisites.
Parameter descriptions are generic and underdescriptive. 'Search query for jobs/agents' (findJobs.query) doesn't explain the syntax, supported filters, or examples. 'Job title or skill to compare prices for' (comparePrice.query) is vague on input format.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
subscribeToAlerts is a WRITE operation with no confirmation, dry-run, or error recovery guidance. If email is mistyped or query is wrong, the subscription silently proceeds. No guidance on what happens on failure or how to verify the subscription.
No error handling or recovery guidance in tool descriptions. What happens if a query matches no jobs? If a platform is temporarily unavailable? If an email is invalid? LLMs need explicit error categories and next-step suggestions.
findJobs parameter 'query' is optional but has no guidance on what happens when omitted. Will it return all jobs? Return an error? If optional, document the default behavior or constraints clearly.
comparePrice returns 'top 10 matches' per description, but this limit is not parameterizable and not enforced by the schema. If results grow, LLMs have no way to paginate or request more results. No offset/limit parameters visible.
Parameter 'platform' in findJobs uses enum ['rentahuman', 'jobforagent', 'virtuals', 'x402'], but descriptions do not explain what each platform is, when to use each, or which is most comprehensive. LLMs will guess.