{"id":246730,"name":"Ruzora Hiring Agent","description":"Ruzora connects US companies with vetted senior software engineers in Latin America. Agents can browse blind profiles of vetted engineers, verify a Ruzora Vetted badge, request a vetted shortlist (within 72 hours), check fit for a hiring quote, send a candidate Ruzora's coding challenge and track a coding challenge's status. Profiles stay blind until a service agreement is signed. Read skills are open; skills that send data need a verified work email (verify_work_email, then confirm_work_email, then \"Authorization: Bearer <buyer_token>\"). Tasks complete synchronously; a refused task says the next step in its status message.","card_url":"https://www.ruzora.com/.well-known/agent-card.json","endpoint":"https://mcp.ruzora.com/a2a","protocol_version":"1.0","first_seen":"2026-10-20T00:50:49.072998+00:00","last_verified":"2026-10-20T03:13:16.877696+00:00","card":{"name":"Ruzora Hiring Agent","skills":[{"id":"search_vetted_engineers","name":"Search Ruzora's Vetted Engineers","tags":["hiring","engineers","bench","blind-profiles","latin-america"],"examples":["{\"skill\":\"search_vetted_engineers\",\"input\":{\"stack\":[\"Python\",\"Postgres\"],\"level\":\"Senior\"}}"],"inputModes":["application/json"],"description":"See blind profiles of senior engineers in Latin America who already passed Ruzora's coding and interview vetting and are available now, filtered by stack, level and US-hours overlap. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"]},{"id":"verify_ruzora_badge","name":"Verify a Ruzora Vetted Badge","tags":["hiring","verification","badge"],"examples":["{\"skill\":\"verify_ruzora_badge\",\"input\":{\"badge\":\"<the badge link exactly as the candidate shared it>\"}}"],"inputModes":["application/json"],"description":"Check that a candidate's \"Ruzora Vetted\" badge is real and current, which stacks it covers, and when the vetting happened. Pass the badge ID or badge URL. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"]},{"id":"get_vetting_status","name":"Check a Ruzora Vetting Request","tags":["hiring","coding-challenge","status"],"examples":["{\"skill\":\"get_vetting_status\",\"input\":{\"status_url\":\"https://www.ruzora.com/vetting/status/<token>\"}}"],"inputModes":["application/json"],"description":"Check progress on a coding challenge you sent through Ruzora: not started, in progress, finished, or expired, and scores once the report is delivered. Pass the status page URL. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"]},{"id":"verify_work_email","name":"Verify a Work Email","tags":["auth","work-email"],"examples":["{\"skill\":\"verify_work_email\",\"input\":{\"work_email\":\"cto@yourcompany.com\",\"for_tool\":\"request_vetted_shortlist\"}}"],"inputModes":["application/json"],"description":"Step 1 before a Ruzora action that needs a verified buyer: emails the user a 6-digit code and a confirm link. The user reads the code back; confirm_work_email takes it. Sends the email address to Ruzora. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"]},{"id":"confirm_work_email","name":"Confirm a Work Email","tags":["auth","work-email"],"examples":["{\"skill\":\"confirm_work_email\",\"input\":{\"work_email\":\"cto@yourcompany.com\",\"code\":\"123456\",\"verification_id\":\"<from verify_work_email>\"}}"],"inputModes":["application/json"],"description":"Step 2: the 6-digit code the user read from the email, with the verification_id from verify_work_email (or the verification_id alone once they clicked the link), becomes a buyer_token for verified Ruzora actions, valid 7 days, and opens their Sol account. Sends the email and code to Ruzora. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"]},{"id":"request_vetted_shortlist","name":"Request a Vetted Engineer Shortlist","tags":["hiring","shortlist","engineers"],"examples":["{\"skill\":\"request_vetted_shortlist\",\"input\":{\"full_name\":\"Alex Kim\",\"work_email\":\"cto@yourcompany.com\",\"company\":\"Your Company\",\"role\":\"Senior backend engineer\",\"seniority\":\"senior\",\"required_skills\":[\"Python\",\"Postgres\"]}}"],"inputModes":["application/json"],"description":"Ask Ruzora for a shortlist of vetted senior engineers in Latin America for a role (ideally from a role scorecard). A vetted shortlist within 72 hours; profiles are blind until an agreement is signed. Needs a work email. Sends the name, email and company given to Ruzora. Needs a verified work email: send \"Authorization: Bearer <buyer_token>\" (from verify_work_email then confirm_work_email). Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"],"securityRequirements":[{"schemes":{"ruzoraBuyerToken":{"list":[]}}}]},{"id":"check_hiring_fit","name":"Check Fit for a Hiring Quote","tags":["hiring","pricing","fit"],"examples":["{\"skill\":\"check_hiring_fit\",\"input\":{\"full_name\":\"Alex Kim\",\"work_email\":\"cto@yourcompany.com\",\"your_title\":\"cto_vp_eng\",\"role_count\":\"one\",\"runway\":\"12_18mo\",\"seat_budget\":\"6000_7999\",\"timing\":\"within_month\"}}"],"inputModes":["application/json"],"description":"Answer Ruzora's 5 quick questions (roles, runway, budget per engineer, timing) to see whether a quote makes sense and the next step to it: usually a 15-minute call with the founder. Explains the flat monthly pricing; no price list. Sends the name, email and company given to Ruzora. Needs a verified work email: send \"Authorization: Bearer <buyer_token>\" (from verify_work_email then confirm_work_email). Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"],"securityRequirements":[{"schemes":{"ruzoraBuyerToken":{"list":[]}}}]},{"id":"send_coding_challenge","name":"Send a Candidate the Ruzora Coding Challenge","tags":["hiring","coding-challenge","assessment"],"examples":["{\"skill\":\"send_coding_challenge\",\"input\":{\"requester_name\":\"Alex Kim\",\"work_email\":\"cto@yourcompany.com\",\"company\":\"Your Company\",\"role\":\"Senior backend engineer\",\"candidate_name\":\"Candidate Name\",\"candidate_informed\":true}}"],"inputModes":["application/json"],"description":"Runs Ruzora's coding challenge + technical questions (~25 min, free) on a candidate the user found; returns a candidate link and a status link. Needs the user's confirmation that the candidate knows. Sends both names, the email, company and profile links to Ruzora. Needs a verified work email: send \"Authorization: Bearer <buyer_token>\" (from verify_work_email then confirm_work_email). Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","outputModes":["text/plain","text/markdown","application/json"],"securityRequirements":[{"schemes":{"ruzoraBuyerToken":{"list":[]}}}]}],"iconUrl":"https://www.ruzora.com/ruzora_logo.png","version":"1.0.0","provider":{"url":"https://www.ruzora.com","organization":"Ruzora"},"description":"Ruzora connects US companies with vetted senior software engineers in Latin America. Agents can browse blind profiles of vetted engineers, verify a Ruzora Vetted badge, request a vetted shortlist (within 72 hours), check fit for a hiring quote, send a candidate Ruzora's coding challenge and track a coding challenge's status. Profiles stay blind until a service agreement is signed. Read skills are open; skills that send data need a verified work email (verify_work_email, then confirm_work_email, then \"Authorization: Bearer <buyer_token>\"). Tasks complete synchronously; a refused task says the next step in its status message.","capabilities":{"streaming":false,"extensions":[{"uri":"https://www.ruzora.com/a2a/extensions/skill-input-schema/v1","params":{"skills":{"check_hiring_fit":{"type":"object","required":["full_name","work_email","your_title","role_count","runway","seat_budget","timing"],"properties":{"runway":{"enum":["lt_6mo","6_12mo","12_18mo","18_plus_mo","bootstrapped_no_revenue"],"type":"string","description":"Company runway: under 6 months, 6-12, 12-18, 18+, or bootstrapped without revenue"},"timing":{"enum":["asap","within_month","one_to_three_months","three_plus","no_timeline"],"type":"string","description":"When you need them: asap, within_month, one_to_three_months, three_plus or no_timeline"},"company":{"type":"string","maxLength":200,"description":"Company name"},"full_name":{"type":"string","maxLength":200,"description":"Full name"},"role_count":{"enum":["one","two_three","four_plus","not_sure"],"type":"string","description":"How many engineers"},"work_email":{"type":"string","format":"email","maxLength":254,"description":"Work email"},"your_title":{"enum":["founder_ceo","cto_vp_eng","eng_manager","hr_ops_finance","other"],"type":"string","description":"The asker's own position: founder_ceo, cto_vp_eng, eng_manager, hr_ops_finance or other"},"seat_budget":{"enum":["lt_4500","4500_5999","6000_7999","8000_plus","not_sure"],"type":"string","description":"Monthly budget per engineer: under $4,500, $4,500-5,999, $6,000-7,999, $8,000+, or not sure"}}},"verify_work_email":{"type":"object","required":["work_email"],"properties":{"for_tool":{"enum":["request_vetted_shortlist","check_hiring_fit","send_coding_challenge"],"type":"string","description":"Which action this verification is for (the email names it, so the user knows what they confirm)"},"work_email":{"type":"string","format":"email","maxLength":254,"description":"The user's WORK email (personal inboxes are refused)"}}},"confirm_work_email":{"type":"object","required":["work_email"],"properties":{"code":{"type":"string","maxLength":12,"description":"The 6-digit code from the email, exactly as the user typed it"},"work_email":{"type":"string","format":"email","maxLength":254,"description":"The same work email given to verify_work_email"},"verification_id":{"type":"string","maxLength":64,"description":"From verify_work_email: always pass it, with the code, or alone once the user clicked \"Yes, this is me\" in the email"}}},"get_vetting_status":{"type":"object","required":["status_url"],"properties":{"status_url":{"type":"string","maxLength":400,"description":"The status page URL (or its token) returned when the challenge was sent"}}},"verify_ruzora_badge":{"type":"object","required":["badge"],"properties":{"badge":{"type":"string","maxLength":300,"description":"Badge ID (a UUID) or the badge/verification URL"}}},"send_coding_challenge":{"type":"object","required":["requester_name","work_email","company","role","candidate_name","candidate_informed"],"properties":{"role":{"type":"string","maxLength":200,"description":"Role being hired, e.g. \"Senior backend engineer\""},"stack":{"type":"string","maxLength":300,"description":"Main stack, e.g. \"Python, Django, Postgres\""},"company":{"type":"string","maxLength":200,"description":"Hiring company name"},"work_email":{"type":"string","format":"email","maxLength":254,"description":"Their WORK email (personal inboxes are refused). The report and status go here."},"candidate_name":{"type":"string","maxLength":160,"description":"Candidate's name"},"requester_name":{"type":"string","maxLength":160,"description":"Full name of the person hiring"},"candidate_informed":{"type":"boolean","description":"True only when the user has confirmed the candidate knows they will receive a technical assessment from Ruzora on the company's behalf."},"candidate_github_url":{"type":"string","format":"uri","maxLength":300,"description":"Optional GitHub profile URL"},"candidate_linkedin_url":{"type":"string","format":"uri","maxLength":300,"description":"Optional LinkedIn profile URL"}}},"search_vetted_engineers":{"type":"object","required":["stack"],"properties":{"page":{"type":"number","maximum":10,"minimum":1,"description":"Optional page of results: 1 (default) is the best matches. Send 2, 3... only when the user asks to see more engineers for the same search; the previous result names the next page."},"level":{"enum":["Mid","Senior","Staff"],"type":"string","description":"Optional seniority filter"},"stack":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":8,"description":"Technologies, e.g. [\"React\", \"Node\", \"AWS\"]"},"min_overlap_hours":{"type":"number","maximum":10,"minimum":0,"description":"Optional minimum overlap with US working hours"}}},"request_vetted_shortlist":{"type":"object","required":["full_name","work_email","company","role","seniority"],"properties":{"role":{"type":"string","maxLength":200,"description":"Role title, e.g. \"Senior backend engineer\""},"notes":{"type":"string","maxLength":2000,"description":"Context: what they will own, time-zone needs, the role scorecard summary"},"company":{"type":"string","maxLength":200,"description":"Company name"},"timeline":{"type":"string","maxLength":100,"description":"When they should start, e.g. \"within a month\""},"engineers":{"type":"number","maximum":20,"minimum":1,"description":"How many engineers (default 1)"},"full_name":{"type":"string","maxLength":160,"description":"Hiring manager full name"},"seniority":{"enum":["mid","senior","staff"],"type":"string","description":"Seniority: mid (3-5 years), senior (5-8 years) or staff (8+ years, lead)"},"work_email":{"type":"string","format":"email","maxLength":254,"description":"Work email (personal inboxes are refused). The shortlist goes here."},"required_skills":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":8,"description":"Must-have skills only (hard filter), e.g. [\"Python\", \"Postgres\"]"},"preferred_skills":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":12,"description":"Nice-to-have skills (ranking only)"}}}}},"required":false,"description":"JSON Schema of each skill's \"input\" object (A2A v1.0.1). Optional: unknown fields are ignored, invalid input comes back as TASK_STATE_INPUT_REQUIRED naming the field."}],"extendedAgentCard":false,"pushNotifications":false},"securitySchemes":{"ruzoraBuyerToken":{"httpAuthSecurityScheme":{"scheme":"Bearer","description":"Proof that the user owns a work email, valid 7 days. Get it with the verify_work_email skill (emails the user a 6-digit code) and then confirm_work_email (code + verification_id). Required only by skills that list this scheme.","bearerFormat":"Ruzora buyer token"}}},"documentationUrl":"https://www.ruzora.com/developers/mcp","defaultInputModes":["application/json"],"defaultOutputModes":["text/plain","text/markdown","application/json"],"supportedInterfaces":[{"url":"https://mcp.ruzora.com/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}]},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-20T03:13:16.877696+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Agent Tools Catalog","source_url":"https://agent-tools.cloud","last_check":{"checked_at":"2026-10-20T03:13:16.877696+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://www.ruzora.com/.well-known/agent-card.json"],"also_observed_in":[{"source_name":"Agent Tools Catalog","source_url":"https://agent-tools.cloud","last_seen":"2026-10-20T00:47:34.345080+00:00"}],"skills":[{"skill_id":"check_hiring_fit","name":"Check Fit for a Hiring Quote","description":"Answer Ruzora's 5 quick questions (roles, runway, budget per engineer, timing) to see whether a quote makes sense and the next step to it: usually a 15-minute call with the founder. Explains the flat monthly pricing; no price list. Sends the name, email and company given to Ruzora. Needs a verified work email: send \"Authorization: Bearer <buyer_token>\" (from verify_work_email then confirm_work_email). Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["hiring","pricing","fit"],"quality_warning":false},{"skill_id":"get_vetting_status","name":"Check a Ruzora Vetting Request","description":"Check progress on a coding challenge you sent through Ruzora: not started, in progress, finished, or expired, and scores once the report is delivered. Pass the status page URL. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["hiring","coding-challenge","status"],"quality_warning":false},{"skill_id":"confirm_work_email","name":"Confirm a Work Email","description":"Step 2: the 6-digit code the user read from the email, with the verification_id from verify_work_email (or the verification_id alone once they clicked the link), becomes a buyer_token for verified Ruzora actions, valid 7 days, and opens their Sol account. Sends the email and code to Ruzora. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["auth","work-email"],"quality_warning":false},{"skill_id":"request_vetted_shortlist","name":"Request a Vetted Engineer Shortlist","description":"Ask Ruzora for a shortlist of vetted senior engineers in Latin America for a role (ideally from a role scorecard). A vetted shortlist within 72 hours; profiles are blind until an agreement is signed. Needs a work email. Sends the name, email and company given to Ruzora. Needs a verified work email: send \"Authorization: Bearer <buyer_token>\" (from verify_work_email then confirm_work_email). Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["hiring","shortlist","engineers"],"quality_warning":false},{"skill_id":"search_vetted_engineers","name":"Search Ruzora's Vetted Engineers","description":"See blind profiles of senior engineers in Latin America who already passed Ruzora's coding and interview vetting and are available now, filtered by stack, level and US-hours overlap. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["hiring","engineers","bench","blind-profiles","latin-america"],"quality_warning":false},{"skill_id":"send_coding_challenge","name":"Send a Candidate the Ruzora Coding Challenge","description":"Runs Ruzora's coding challenge + technical questions (~25 min, free) on a candidate the user found; returns a candidate link and a status link. Needs the user's confirmation that the candidate knows. Sends both names, the email, company and profile links to Ruzora. Needs a verified work email: send \"Authorization: Bearer <buyer_token>\" (from verify_work_email then confirm_work_email). Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["hiring","coding-challenge","assessment"],"quality_warning":false},{"skill_id":"verify_ruzora_badge","name":"Verify a Ruzora Vetted Badge","description":"Check that a candidate's \"Ruzora Vetted\" badge is real and current, which stacks it covers, and when the vetting happened. Pass the badge ID or badge URL. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["hiring","verification","badge"],"quality_warning":false},{"skill_id":"verify_work_email","name":"Verify a Work Email","description":"Step 1 before a Ruzora action that needs a verified buyer: emails the user a 6-digit code and a confirm link. The user reads the code back; confirm_work_email takes it. Sends the email address to Ruzora. Call it with SendMessage: one data part {\"skill\": \"<id>\", \"input\": {...}} (mediaType application/json); the input fields are in the card extension https://www.ruzora.com/a2a/extensions/skill-input-schema/v1.","tags":["auth","work-email"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":2,"passed":2},"recent_checks":[{"card_url":"https://www.ruzora.com/.well-known/agent-card.json","checked_at":"2026-10-20T03:13:16.877696+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://www.ruzora.com/.well-known/agent-card.json","checked_at":"2026-10-20T00:50:49.072998+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-20T03:13:16.877696+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-20T00:50:49.072998+00:00","state":"a2a_response","http_status":200,"detail":"A2A task-not-found response to a read-only task lookup"},"x402_price_check":null,"events":[],"relationships":[],"verification":{"agent_card_url":"https://www.ruzora.com/.well-known/agent-card.json","last_successful_card_check":"2026-10-20T03:13:16.877696+00:00","latest_card_check":{"checked_at":"2026-10-20T03:13:16.877696+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-20T03:13:16.877696+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-20T03:13:16.877696+00:00","endpoint_tls_reachable":true,"protocol_check_state":"a2a_response","protocol_checked_at":"2026-10-20T00:50:49.072998+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}