ruzora
Pre-vetted senior LATAM engineers for US startups: hiring leads, open roles, applications.
Should I use this
Quality & Safety
Findings (5)
- HIGHin detect_resume_injection
- HIGH
- LOWin create_factory_inquiry
- LOWin score_interview_notes
- LOWin design_coding_assessment
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"ruzora": {
"url": "https://mcp.ruzora.com/mcp"
}
}
}Remote endpoints
https://mcp.ruzora.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (35)
🟢list_open_roles
Get all currently open engineering roles at Ruzora. Returns titles, tech stacks, experience levels, and application URLs.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_job_details(slug)
Get detailed information about a specific job role including responsibilities, requirements, and tech stack.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Job slug (e.g., \"devops-engineer\", \"ai-engineer\")"
}
},
"required": [
"slug"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_company_info
Get comprehensive information about Ruzora's services, process, value proposition, and differentiators.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴submit_candidate_application(first_name, last_name, email, phone, linkedin_url, ...)
Apply to Ruzora's talent network. For software engineers in LATAM interested in remote positions with US startups paying USD salaries. Consent: submitting sends these details to Ruzora (US-hosted) for recruiting. See https://www.ruzora.com/privacy.
Input Schema
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "First name"
},
"last_name": {
"type": "string",
"description": "Last name"
},
"email": {
"type": "string",
"format": "email",
"description": "Email address"
},
"phone": {
"type": "string",
"description": "Phone number"
},
"linkedin_url": {
"type": "string",
"description": "LinkedIn profile URL"
},
"role_category": {
"type": "string",
"enum": [
"fullstack-typescript",
"fullstack-python",
"devops",
"data-engineering",
"ml-ai",
"security",
"platform",
"mobile",
"frontend-react",
"java-spring",
"general"
],
"description": "Primary role category"
},
"message": {
"type": "string",
"description": "Brief intro or relevant experience"
}
},
"required": [
"first_name",
"last_name",
"email",
"role_category"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_factory_inquiry(name, email, company, description, budget, ...)
Request a custom software project from Ruzora's Software Factory. Fixed-price development by senior LATAM engineers.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Contact person name"
},
"email": {
"type": "string",
"format": "email",
"description": "Business email"
},
"company": {
"type": "string",
"description": "Company name"
},
"description": {
"type": "string",
"description": "What you want built"
},
"budget": {
"type": "string",
"enum": [
"10k-25k",
"25k-50k",
"50k-100k",
"100k+"
],
"description": "Budget range (USD)"
},
"timeline": {
"type": "string",
"enum": [
"1-2 months",
"2-4 months",
"4-6 months",
"6+ months"
],
"description": "Desired timeline"
}
},
"required": [
"name",
"email",
"company",
"description"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢build_role_scorecard(role_title, company_context, what_success_looks_like, stack)
Turn a vague engineering hire ("we need a senior full-stack dev") into a role scorecard: mission, measurable 12-month outcomes, must-haves, competencies and an interview map. Start here before writing a job post.
Input Schema
{
"type": "object",
"properties": {
"role_title": {
"type": "string",
"maxLength": 200,
"description": "Working title, e.g. \"Senior backend engineer\""
},
"company_context": {
"type": "string",
"maxLength": 30000,
"description": "Company stage, product, team today, why this hire now"
},
"what_success_looks_like": {
"type": "string",
"maxLength": 30000,
"description": "What this person must have achieved in 6-12 months, in your words"
},
"stack": {
"type": "string",
"maxLength": 300,
"description": "Main technologies"
}
},
"required": [
"role_title"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_hiring_models(role, numbers)
Neutral 12-month cost and risk comparison of US employee, US contractor, freelancer, agency, staff augmentation and international contractor/EOR, on your own numbers. Published by Ruzora, a staff augmentation firm; every option uses the same formula.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"maxLength": 200,
"description": "Role and level"
},
"numbers": {
"type": "string",
"maxLength": 30000,
"description": "Salary or quotes you have per option, location, start-by date, how long you need the person"
}
},
"required": [
"role"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calibrate_seniority(mode, role_description, candidate_evidence, company_size)
Work out what level a role really needs (by scope, not years), or what level a candidate really is from a CV, interview notes or an assessment report. Flags title inflation and gives 3 questions that separate adjacent levels.
Input Schema
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"role",
"candidate"
],
"description": "\"role\" = what level do I need; \"candidate\" = what level is this person"
},
"role_description": {
"type": "string",
"maxLength": 30000,
"description": "The work: what they will own, who reviews them, how vague the goals are (or paste a role scorecard)"
},
"candidate_evidence": {
"type": "string",
"maxLength": 30000,
"description": "CV text, interview notes, an interview scorecard or an assessment report (remove contact details, IDs and dates of birth)"
},
"company_size": {
"type": "string",
"maxLength": 100,
"description": "Your company size and stage, e.g. \"8 people, seed\""
}
},
"required": [
"mode"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢write_job_description(role_title, details)
Write a software engineer job post senior engineers answer, plus a compliance check: pay range rules by location, citizenship wording, exclusionary language and requirement inflation.
Input Schema
{
"type": "object",
"properties": {
"role_title": {
"type": "string",
"maxLength": 200,
"description": "Role title"
},
"details": {
"type": "string",
"maxLength": 30000,
"description": "Scorecard or notes: what they will own, stack, team, pay range, remote rules, hiring locations, benefits"
}
},
"required": [
"role_title"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢lint_job_post(post_text, locations, employee_count)
Paste any engineering job post and get a fix list: missing pay range where required, "US citizens only", age/gender/origin-coded words, salary-history asks, too many must-haves. Deterministic; nothing stored.
Input Schema
{
"type": "object",
"properties": {
"post_text": {
"type": "string",
"maxLength": 30000,
"description": "The full job post text"
},
"locations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80
},
"maxItems": 20,
"description": "Where the role can be filled (for pay-range rules)"
},
"employee_count": {
"type": "number",
"minimum": 1,
"maximum": 1000000,
"description": "Total employees"
}
},
"required": [
"post_text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_pay_transparency(locations, employee_count, remote)
Which US state and city pay-transparency laws apply to a job post (pay range, benefits, close date), by hiring location, company size and remote status, with the statute for each. Dated; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"locations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80
},
"maxItems": 20,
"description": "Where the role can be filled, e.g. [\"California\", \"New York City\"] or [\"remote US\"]"
},
"employee_count": {
"type": "number",
"minimum": 1,
"maximum": 1000000,
"description": "Total employees (thresholds differ by state)"
},
"remote": {
"type": "boolean",
"description": "True if the role is remote"
}
},
"required": [
"locations"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢triage_resumes(must_haves, resumes, blind_mode)
Screen engineering CVs against your must-haves with evidence scores, blind mode, hidden-text flags and screening-call questions. Organizes evidence; never rejects anyone for you.
Input Schema
{
"type": "object",
"properties": {
"must_haves": {
"type": "string",
"maxLength": 30000,
"description": "The role's must-haves (or paste a role scorecard)"
},
"resumes": {
"type": "string",
"maxLength": 30000,
"description": "Pasted CV text, one after another. Remove contact details, IDs and dates of birth."
},
"blind_mode": {
"type": "boolean",
"description": "Strip names, photos, schools and dates before scoring"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢detect_resume_injection(resume_text, hidden_segments)
Check resume text for hidden instructions aimed at AI screeners ("ignore previous instructions", invisible characters, keyword stuffing) before any AI reads it. Flags for a human; never rejects.
Input Schema
{
"type": "object",
"properties": {
"resume_text": {
"type": "string",
"maxLength": 60000,
"description": "The resume text as extracted from the file"
},
"hidden_segments": {
"type": "array",
"items": {
"type": "string",
"maxLength": 5000
},
"maxItems": 50,
"description": "Optional: text your PDF tool marked as white, tiny or hidden"
}
},
"required": [
"resume_text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢review_code_sample(code_or_repo, role)
Plain-English review of a candidate's GitHub repo or code sample for non-technical hirers: quality signals, authorship checks, a risky-function trace and questions that reveal who really wrote it.
Input Schema
{
"type": "object",
"properties": {
"code_or_repo": {
"type": "string",
"maxLength": 30000,
"description": "Paste the code, file excerpts, README and commit history (or describe the repo)"
},
"role": {
"type": "string",
"maxLength": 200,
"description": "Role and level you are hiring for"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_identity_risk(situation)
Identity-verification protocol for remote engineering hires (fake candidates, stand-ins, North Korean IT worker schemes per FBI guidance) and a red-flag log for a specific candidate. Same checks for every finalist; never based on origin or accent.
Input Schema
{
"type": "object",
"properties": {
"situation": {
"type": "string",
"maxLength": 30000,
"description": "Where you are in the process and what made you suspicious, if anything. Do not paste ID documents."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢build_interview_kit(role, details)
A lean structured interview loop for an engineering role: stages, owners, time budget, fixed questions, an anchored 1-4 rubric and a legal check of your questions.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"maxLength": 200,
"description": "Role and level"
},
"details": {
"type": "string",
"maxLength": 30000,
"description": "Must-haves (or a role scorecard), who can interview, any questions you already use"
}
},
"required": [
"role"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢developer_interview_questions(role, details)
An interview kit for founders and managers who are not engineers: questions, what a strong answer and a bluff sound like, and follow-up ladders tailored to the stack and level.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"maxLength": 200,
"description": "Role, level and stack"
},
"details": {
"type": "string",
"maxLength": 30000,
"description": "What the person will own, and any questions you planned to ask"
}
},
"required": [
"role"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢design_coding_assessment(role, stack, details)
Design a coding test that still works when candidates have AI: seeded-bug review, extend-a-codebase or a paid trial, with a hidden rubric and the follow-up conversation that tests understanding.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"maxLength": 200,
"description": "Role and level"
},
"stack": {
"type": "string",
"maxLength": 300,
"description": "Language and framework the task should use"
},
"details": {
"type": "string",
"maxLength": 30000,
"description": "Time you can ask of candidates, your AI policy, what the job really involves"
}
},
"required": [
"role",
"stack"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢score_interview_notes(must_haves, notes)
Turn raw interview notes into an anchored scorecard per interviewer and a debrief memo with evidence, disagreements and bias flags. You make the decision.
Input Schema
{
"type": "object",
"properties": {
"must_haves": {
"type": "string",
"maxLength": 30000,
"description": "The role's must-haves or scorecard"
},
"notes": {
"type": "string",
"maxLength": 30000,
"description": "Each interviewer's raw notes, labeled by interviewer and stage"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_coding_challenge(requester_name, work_email, company, role, stack, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"requester_name": {
"type": "string",
"maxLength": 160,
"description": "Full name of the person hiring"
},
"work_email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "Their WORK email (personal inboxes are refused). The report and status go here."
},
"company": {
"type": "string",
"maxLength": 200,
"description": "Hiring company name"
},
"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\""
},
"candidate_name": {
"type": "string",
"maxLength": 160,
"description": "Candidate's name"
},
"candidate_github_url": {
"type": "string",
"maxLength": 300,
"format": "uri",
"description": "Optional GitHub profile URL"
},
"candidate_linkedin_url": {
"type": "string",
"maxLength": 300,
"format": "uri",
"description": "Optional LinkedIn profile URL"
},
"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."
},
"buyer_token": {
"type": "string",
"maxLength": 1024,
"description": "Proof the user verified this work email: the buyer_token from confirm_work_email (valid 7 days). No token yet? Call verify_work_email first."
}
},
"required": [
"requester_name",
"work_email",
"company",
"role",
"candidate_name",
"candidate_informed"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_vetting_status(status_url)
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.
Input Schema
{
"type": "object",
"properties": {
"status_url": {
"type": "string",
"maxLength": 400,
"description": "The status page URL (or its token) returned when the challenge was sent"
}
},
"required": [
"status_url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢plan_reference_check(candidate_summary, referees)
A reference-check plan for an engineering finalist: verify the referees are real, a call script aimed at the risks found in interviews, and a risk register for the answers.
Input Schema
{
"type": "object",
"properties": {
"candidate_summary": {
"type": "string",
"maxLength": 30000,
"description": "Role, the candidate's CV highlights, and the open risks from interviews"
},
"referees": {
"type": "string",
"maxLength": 30000,
"description": "Who the candidate offered as references (names, companies, relationship)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢build_onboarding_plan(role, details)
A 30-60-90 day plan for a new software engineer: least-privilege day-1 access, first PR in week one, a buddy plan, and milestones tied to the role scorecard.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"maxLength": 200,
"description": "Role and level"
},
"details": {
"type": "string",
"maxLength": 30000,
"description": "Start date, team, systems they will touch, the role scorecard outcomes, employee or contractor"
}
},
"required": [
"role"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢verify_ruzora_badge(badge)
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.
Input Schema
{
"type": "object",
"properties": {
"badge": {
"type": "string",
"maxLength": 300,
"description": "Badge ID (a UUID) or the badge/verification URL"
}
},
"required": [
"badge"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_vetted_engineers(stack, level, min_overlap_hours, page)
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.
Input Schema
{
"type": "object",
"properties": {
"stack": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 8,
"description": "Technologies, e.g. [\"React\", \"Node\", \"AWS\"]"
},
"level": {
"type": "string",
"enum": [
"Mid",
"Senior",
"Staff"
],
"description": "Optional seniority filter"
},
"min_overlap_hours": {
"type": "number",
"minimum": 0,
"maximum": 10,
"description": "Optional minimum overlap with US working hours"
},
"page": {
"type": "number",
"minimum": 1,
"maximum": 10,
"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."
}
},
"required": [
"stack"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_market_supply(stack)
Whether Ruzora has vetted senior engineers in Latin America available now for a stack: each stack reads Available or On request. Words only: no counts, no profiles.
Input Schema
{
"type": "object",
"properties": {
"stack": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 8,
"description": "Optional: technologies to look for, e.g. [\"Go\", \"AWS\"]"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪request_vetted_shortlist(full_name, work_email, company, role, seniority, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"full_name": {
"type": "string",
"maxLength": 160,
"description": "Hiring manager full name"
},
"work_email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "Work email (personal inboxes are refused). The shortlist goes here."
},
"company": {
"type": "string",
"maxLength": 200,
"description": "Company name"
},
"role": {
"type": "string",
"maxLength": 200,
"description": "Role title, e.g. \"Senior backend engineer\""
},
"seniority": {
"type": "string",
"enum": [
"mid",
"senior",
"staff"
],
"description": "Seniority: mid (3-5 years), senior (5-8 years) or staff (8+ years, lead)"
},
"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)"
},
"engineers": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "How many engineers (default 1)"
},
"timeline": {
"type": "string",
"maxLength": 100,
"description": "When they should start, e.g. \"within a month\""
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "Context: what they will own, time-zone needs, the role scorecard summary"
},
"buyer_token": {
"type": "string",
"maxLength": 1024,
"description": "Proof the user verified this work email: the buyer_token from confirm_work_email (valid 7 days). No token yet? Call verify_work_email first."
}
},
"required": [
"full_name",
"work_email",
"company",
"role",
"seniority"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_hiring_fit(full_name, work_email, company, your_title, role_count, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"full_name": {
"type": "string",
"maxLength": 200,
"description": "Full name"
},
"work_email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "Work email"
},
"company": {
"type": "string",
"maxLength": 200,
"description": "Company name"
},
"your_title": {
"type": "string",
"enum": [
"founder_ceo",
"cto_vp_eng",
"eng_manager",
"hr_ops_finance",
"other"
],
"description": "The asker's own position: founder_ceo, cto_vp_eng, eng_manager, hr_ops_finance or other"
},
"role_count": {
"type": "string",
"enum": [
"one",
"two_three",
"four_plus",
"not_sure"
],
"description": "How many engineers"
},
"runway": {
"type": "string",
"enum": [
"lt_6mo",
"6_12mo",
"12_18mo",
"18_plus_mo",
"bootstrapped_no_revenue"
],
"description": "Company runway: under 6 months, 6-12, 12-18, 18+, or bootstrapped without revenue"
},
"seat_budget": {
"type": "string",
"enum": [
"lt_4500",
"4500_5999",
"6000_7999",
"8000_plus",
"not_sure"
],
"description": "Monthly budget per engineer: under $4,500, $4,500-5,999, $6,000-7,999, $8,000+, or not sure"
},
"timing": {
"type": "string",
"enum": [
"asap",
"within_month",
"one_to_three_months",
"three_plus",
"no_timeline"
],
"description": "When you need them: asap, within_month, one_to_three_months, three_plus or no_timeline"
},
"buyer_token": {
"type": "string",
"maxLength": 1024,
"description": "Proof the user verified this work email: the buyer_token from confirm_work_email (valid 7 days). No token yet? Call verify_work_email first."
}
},
"required": [
"full_name",
"work_email",
"your_title",
"role_count",
"runway",
"seat_budget",
"timing"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢explain_ruzora_terms(topic)
Ruzora's standard terms in plain words, from the published terms: pricing model, the 90-day initial commitment and notice, the 60-day replacement guarantee and its limits, refunds, the factory warranty, speed, and how an engagement starts.
Input Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"all",
"pricing",
"commitment",
"refunds",
"guarantee",
"factory_warranty",
"delivery",
"process"
],
"description": "Which term: all, pricing, commitment, refunds, guarantee, factory_warranty, delivery or process"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢start_honest_read(idea)
Ruzora's free scoping interview for an app or software idea: returns the interview your AI runs with the user, producing an Idea Read (what to build first, hard parts, build-or-buy verdict) that Ruzora can turn into a verdict and a PDF.
Input Schema
{
"type": "object",
"properties": {
"idea": {
"type": "string",
"maxLength": 2000,
"description": "Optional: the idea in the user's words, to start the interview from"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡submit_honest_read(email, first_name, idea_read_markdown)
Send the Idea Read your AI wrote (from start_honest_read) to Ruzora to get a verdict (keep going yourself, one developer, or a small team) and the PDF by email. Any email works. Sends the email, first name and Idea Read given here to Ruzora, which uses them to send the report.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "Where to send the PDF (personal email is fine)"
},
"first_name": {
"type": "string",
"maxLength": 100,
"description": "First name for the report"
},
"idea_read_markdown": {
"type": "string",
"maxLength": 20000,
"description": "The full Idea Read text the interview produced"
}
},
"required": [
"email",
"idea_read_markdown"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪request_project_scoping_call(full_name, work_email, company, kind, budget, ...)
For anyone who wants an app or software built, or a failing app or agency project rescued, by Ruzora's Software Factory (fixed price, milestones). Checks fit (budget, timing) and returns a scoping-call booking link when it fits. Sends the name, email and company given to Ruzora.
Input Schema
{
"type": "object",
"properties": {
"full_name": {
"type": "string",
"maxLength": 200,
"description": "Full name"
},
"work_email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "Email"
},
"company": {
"type": "string",
"maxLength": 200,
"description": "Company or business name"
},
"kind": {
"type": "string",
"enum": [
"build",
"rescue"
],
"description": "\"build\" = new app or software; \"rescue\" = fix or take over a failing app or agency project"
},
"budget": {
"type": "string",
"enum": [
"under_15k",
"15_to_50k",
"50_to_150k",
"over_150k",
"not_sure"
],
"description": "Budget: under $15K, $15-50K, $50-150K, over $150K, or not sure"
},
"timing": {
"type": "string",
"enum": [
"asap",
"within_month",
"one_to_three_months",
"three_plus",
"no_timeline"
],
"description": "When to start"
},
"your_title": {
"type": "string",
"enum": [
"founder_ceo",
"cto_vp_eng",
"eng_manager",
"hr_ops_finance",
"other"
],
"description": "The asker's own position: founder_ceo, cto_vp_eng, eng_manager, hr_ops_finance or other"
},
"project_summary": {
"type": "string",
"maxLength": 2000,
"description": "One paragraph: what to build or what is broken (shown back to help you prepare the call)"
},
"buyer_token": {
"type": "string",
"maxLength": 1024,
"description": "Proof the user verified this work email: the buyer_token from confirm_work_email (valid 7 days). No token yet? Call verify_work_email first."
}
},
"required": [
"full_name",
"work_email",
"kind",
"budget",
"timing",
"your_title"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪verify_work_email(work_email, for_tool)
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.
Input Schema
{
"type": "object",
"properties": {
"work_email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "The user's WORK email (personal inboxes are refused)"
},
"for_tool": {
"type": "string",
"enum": [
"request_vetted_shortlist",
"check_hiring_fit",
"send_coding_challenge",
"request_project_scoping_call",
"save_role"
],
"description": "Which action this verification is for (the email names it, so the user knows what they confirm)"
}
},
"required": [
"work_email"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢confirm_work_email(work_email, code, verification_id)
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.
Input Schema
{
"type": "object",
"properties": {
"work_email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "The same work email given to verify_work_email"
},
"code": {
"type": "string",
"maxLength": 12,
"description": "The 6-digit code from the email, exactly as the user typed it"
},
"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"
}
},
"required": [
"work_email"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡save_role(work_email, title, seniority, stack, notes, ...)
Save the role being hired for in the user's Sol workspace (Ruzora's hiring agent), where shortlists and documents for it collect. Needs a buyer_token from confirm_work_email. Sends the role details to Ruzora.
Input Schema
{
"type": "object",
"properties": {
"work_email": {
"type": "string",
"maxLength": 254,
"format": "email",
"description": "The verified work email"
},
"title": {
"type": "string",
"maxLength": 200,
"description": "Role title, e.g. \"Senior backend engineer\""
},
"seniority": {
"type": "string",
"enum": [
"junior",
"mid",
"senior",
"staff"
],
"description": "junior, mid, senior or staff"
},
"stack": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 12,
"description": "Main technologies"
},
"notes": {
"type": "string",
"maxLength": 2000,
"description": "What the person will own; the scorecard summary"
},
"buyer_token": {
"type": "string",
"maxLength": 1024,
"description": "Proof the user verified this work email: the buyer_token from confirm_work_email (valid 7 days). No token yet? Call verify_work_email first."
}
},
"required": [
"work_email",
"title"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence