refine
Registry code: b73ba9a6fa039b7e
Job search management: applications, interviews, offers, recruiter email, and company openings.
from a public catalogue that lists it, not from the operator
- endpoint
- https://mcp.getrefine.co/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is refine live?
- Yes — it answered the hub's last check (checked 55m ago). It answered 100% of checks over the last 30 days.
- Is refine free to use?
- Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
- What tools does refine have?
- 55 tools: jobs.get, inbox.refresh, jobs.interviews.add, jobs.interviews.delete, jobs.offer.accept, jobs.offer.decline, signals.list, signals.resume, ….
- Is refine safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.2%· all time 99.2%
last good check
of 55 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- used for
- track job applications
- manage interviews and offers
- reply to recruiter emails
- track companies for new openings
- takes → gives
- text → data, text
- tools
- 9 reads15 changes data1 sends messages
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
jobs.get auth-required 35d ago
Get details of a specific job
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "job_id": { "type": "string", "description": "Job id" } } }arguments 13 linesinbox.refresh auth-required never probed
Check Gmail for new mail now; returns per-account sync status
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesjobs.interviews.add auth-required never probed
Log an interview for a job
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "name" ], "properties": { "name": { "type": "string", "description": "Interview name, e.g. phone screen, technical, behavioral, onsite" }, "notes": { "type": "string", "description": "Notes or debrief from the interview" }, "job_id": { "type": "string", "description": "Job id" }, "location": { "type": "string", "description": "Location or meeting link" }, "scheduled_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", "description": "ISO 8601 date/time with timezone" } } }arguments 32 linesjobs.interviews.delete changes data auth-required never probed
Permanently delete an interview from a job. Confirm with the user first; it cannot be undone.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "interview_id", "confirmed" ], "properties": { "job_id": { "type": "string", "description": "Job id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms permanent deletion" }, "interview_id": { "type": "string", "description": "Interview id" } } }arguments 24 linesjobs.offer.accept changes data auth-required never probed
Accept the offer for a job. This is a major state change that closes out the search for this role; confirm with the user before calling. It does not email the employer.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "confirmed" ], "properties": { "job_id": { "type": "string", "description": "Job id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms accepting the offer" } } }arguments 19 linesjobs.offer.decline auth-required never probed
Decline the offer for a job, a major state change; confirm with the user first. It does not email the employer.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "confirmed" ], "properties": { "job_id": { "type": "string", "description": "Job id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms declining the offer" } } }arguments 19 linessignals.list reads auth-required never probed
List companies you are tracking
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "page": { "type": "string", "description": "Pagination cursor returned as meta.next_page" }, "limit": { "type": "integer", "maximum": 100, "description": "Maximum records to return", "exclusiveMinimum": 0 } } }arguments 16 linessignals.resume auth-required never probed
Resume tracking for a company
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "signal_id" ], "properties": { "signal_id": { "type": "string", "description": "Signal (tracked company) id" } } }arguments 13 linessignals.list_applied_jobs reads auth-required never probed
List jobs in your journey that came from a tracked company
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "signal_id" ], "properties": { "page": { "type": "string", "description": "Pagination cursor returned as meta.next_page" }, "limit": { "type": "integer", "maximum": 100, "description": "Maximum records to return", "exclusiveMinimum": 0 }, "signal_id": { "type": "string", "description": "Signal (tracked company) id" } } }arguments 23 linessignals.openings.mark_all_read auth-required never probed
Mark every unread opening notification as read after the user confirms the bulk action
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "confirmed" ], "properties": { "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms marking all openings read" } } }arguments 14 linessignals.openings.mark_read changes data auth-required never probed
Mark one opening notification returned by signals.openings.list as read
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "notification_id" ], "properties": { "notification_id": { "type": "string", "description": "Notification id from signals.openings.list" } } }arguments 13 linessignals.recommendations.restore changes data auth-required never probed
Restore a dismissed or blocked recommendation
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "recommendation_id" ], "properties": { "recommendation_id": { "type": "string", "description": "Recommendation id" } } }arguments 13 linesjobs.archive auth-required never probed
Hide a job from the active board without recording a rejection or closing the application
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "job_id": { "type": "string", "description": "Job id" } } }arguments 13 linesjobs.list auth-required 45d ago
List jobs in your journey
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "page": { "type": "string", "description": "Pagination cursor returned as meta.next_page" }, "limit": { "type": "integer", "maximum": 100, "description": "Maximum records to return", "exclusiveMinimum": 0 } } }arguments 16 linesjobs.add auth-required never probed
Add a new job to your journey
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "title", "company" ], "properties": { "url": { "type": "string", "format": "uri", "description": "URL of the job posting" }, "title": { "type": "string", "description": "Job title" }, "source": { "type": "string", "description": "Where this job came from" }, "company": { "type": "string", "description": "Company name" }, "location": { "type": "string", "description": "Job location" }, "description": { "type": "string", "description": "Job description" }, "qualifications": { "type": "string", "description": "Job qualifications" }, "compensation_text": { "type": "string", "description": "Compensation text from the posting" } } }arguments 43 linesjobs.update auth-required never probed
Update a job in your journey
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "url": { "type": "string", "format": "uri", "description": "URL of the job posting" }, "notes": { "type": "string", "description": "Markdown notes about this application" }, "title": { "type": "string", "description": "Job title" }, "job_id": { "type": "string", "description": "Job id" }, "source": { "type": "string", "description": "Where this job came from" }, "company": { "type": "string", "description": "Company name" }, "location": { "type": "string", "description": "Job location" }, "description": { "type": "string", "description": "Job description" }, "qualifications": { "type": "string", "description": "Job qualifications" }, "compensation_text": { "type": "string", "description": "Compensation text from the posting" } } }arguments 50 linesjobs.delete changes data auth-required never probed
Permanently delete a job and its application from the board. Confirm with the user first; it cannot be undone. To hide a job without recording a rejection or closure, use jobs.archive instead.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "confirmed" ], "properties": { "job_id": { "type": "string", "description": "Job id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms permanent deletion" } } }arguments 19 linesjobs.unarchive changes data auth-required never probed
Restore an archived job to the active board
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "job_id": { "type": "string", "description": "Job id" } } }arguments 13 linesjobs.interviews.update changes data auth-required never probed
Update an existing interview
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "interview_id" ], "properties": { "name": { "type": "string", "description": "Interview name, e.g. phone screen, technical, onsite" }, "notes": { "type": "string", "description": "Notes or debrief from the interview" }, "job_id": { "type": "string", "description": "Job id" }, "rating": { "type": "integer", "maximum": 5, "minimum": 1, "description": "Your rating of the interview, 1 to 5" }, "outcome": { "enum": [ "passed", "didnt_pass", "pending_decision", "withdrew", "no_show", "other" ], "type": "string", "description": "Interview outcome" }, "feedback": { "type": "string", "description": "Feedback received or given" }, "location": { "type": "string", "description": "Location or meeting link" }, "next_action": { "type": "string", "description": "The next step after this interview" }, "cancelled_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", "description": "ISO 8601 cancellation time with timezone" }, "completed_at": { "type": "string", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "description": "Completion date in YYYY-MM-DD format" }, "interview_id": { "type": "string", "description": "Interview id" }, "interviewers": { "type": "string", "description": "Names or roles of the interviewers" }, "scheduled_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", "description": "ISO 8601 date/time with timezone" }, "cancelled_reason": { "type": "string", "description": "Why the interview was cancelled" } } }arguments 82 linesjobs.offer.create auth-required never probed
Record a job offer with compensation details
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "notes": { "type": "string", "description": "Notes about the offer" }, "job_id": { "type": "string", "description": "Job id" }, "currency": { "enum": [ "USD", "EUR", "GBP", "CAD", "AUD" ], "type": "string", "description": "Supported currency code" }, "rsu_text": { "type": "string", "minLength": 1, "description": "RSU details as text" }, "bonus_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Bonus in cents" }, "deadline_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", "description": "ISO 8601 offer deadline with timezone" }, "equity_text": { "type": "string", "minLength": 1, "description": "Equity details as text" }, "next_action": { "type": "string", "description": "The next step on this offer" }, "target_rsu_text": { "type": "string", "description": "The RSUs you are negotiating toward, as text" }, "initial_rsu_text": { "type": "string", "description": "The originally offered RSUs as text" }, "base_salary_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Base salary in cents (e.g. 15000000 for $150k)" }, "target_bonus_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The bonus you are negotiating toward, in cents" }, "target_equity_text": { "type": "string", "description": "The equity you are negotiating toward, as text" }, "initial_bonus_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The originally offered bonus in cents" }, "initial_equity_text": { "type": "string", "description": "The originally offered equity as text" }, "target_salary_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The base salary you are negotiating toward, in cents" }, "initial_salary_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The originally offered base salary in cents" } } }arguments 100 linesjobs.offer.update auth-required never probed
Update the offer recorded for a job
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "notes": { "type": "string", "description": "Notes about the offer" }, "job_id": { "type": "string", "description": "Job id" }, "currency": { "enum": [ "USD", "EUR", "GBP", "CAD", "AUD" ], "type": "string", "description": "Supported currency code" }, "rsu_text": { "type": "string", "minLength": 1, "description": "RSU details as text" }, "bonus_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Bonus in cents" }, "deadline_at": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", "description": "ISO 8601 offer deadline with timezone" }, "equity_text": { "type": "string", "minLength": 1, "description": "Equity details as text" }, "next_action": { "type": "string", "description": "The next step on this offer" }, "target_rsu_text": { "type": "string", "description": "The RSUs you are negotiating toward, as text" }, "initial_rsu_text": { "type": "string", "description": "The originally offered RSUs as text" }, "base_salary_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Base salary in cents (e.g. 15000000 for $150k)" }, "target_bonus_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The bonus you are negotiating toward, in cents" }, "target_equity_text": { "type": "string", "description": "The equity you are negotiating toward, as text" }, "initial_bonus_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The originally offered bonus in cents" }, "initial_equity_text": { "type": "string", "description": "The originally offered equity as text" }, "target_salary_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The base salary you are negotiating toward, in cents" }, "initial_salary_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "The originally offered base salary in cents" } } }arguments 100 linesjobs.offer.delete changes data auth-required never probed
Permanently delete the offer recorded for a job (the job stays). Use only to fix a mistake, and confirm with the user first; it cannot be undone.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "confirmed" ], "properties": { "job_id": { "type": "string", "description": "Job id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms permanent deletion" } } }arguments 19 linesjobs.offer.add_negotiation changes data auth-required never probed
Log a negotiation event on an offer (counter-offer, update, etc.)
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "event_type" ], "properties": { "notes": { "type": "string", "description": "Notes about this negotiation event" }, "job_id": { "type": "string", "description": "Job id" }, "event_date": { "type": "string", "format": "date", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", "description": "Event date in YYYY-MM-DD format" }, "event_type": { "enum": [ "offer", "counter" ], "type": "string", "description": "Whether the event records an employer offer or your counter" }, "bonus_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Signing bonus in cents" }, "equity_text": { "type": "string", "minLength": 1, "description": "Equity details (e.g. \"0.05% over 4 years\")" }, "salary_cents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Salary in cents (e.g. 15000000 for $150k)" } } }arguments 49 linesjobs.offer.delete_negotiation auth-required never probed
Remove a negotiation event from an offer
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id", "event_id", "confirmed" ], "properties": { "job_id": { "type": "string", "description": "Job id" }, "event_id": { "type": "integer", "maximum": 9007199254740991, "description": "Negotiation event id", "exclusiveMinimum": 0 }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms deletion" } } }arguments 26 linessignals.track changes data auth-required never probed
Start tracking a company for new job openings
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "company_name", "careers_url" ], "properties": { "locations": { "type": "array", "items": { "type": "string" }, "description": "Locations to filter by; use \"remote\" for remote roles" }, "careers_url": { "type": "string", "format": "uri", "description": "URL of the company careers page" }, "departments": { "type": "array", "items": { "type": "string" }, "description": "Departments to filter by" }, "company_name": { "type": "string", "description": "Name of the company" }, "sync_frequency": { "enum": [ "weekly", "daily" ], "type": "string", "description": "How often Refine should refresh this company" }, "exclude_keywords": { "type": "array", "items": { "type": "string" }, "description": "Keywords to exclude" }, "include_keywords": { "type": "array", "items": { "type": "string" }, "description": "Keywords that must appear in the role" }, "seniority_levels": { "type": "array", "items": { "type": "string" }, "description": "Seniority levels to include" } } }arguments 62 linessignals.update auth-required never probed
Update filters on a tracked company
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "signal_id" ], "properties": { "locations": { "type": "array", "items": { "type": "string" }, "description": "Locations to filter by; use \"remote\" for remote roles" }, "signal_id": { "type": "string", "description": "Signal (tracked company) id" }, "departments": { "type": "array", "items": { "type": "string" }, "description": "Departments to filter by" }, "sync_frequency": { "enum": [ "weekly", "daily" ], "type": "string", "description": "How often Refine should refresh this company" }, "exclude_keywords": { "type": "array", "items": { "type": "string" }, "description": "Keywords to exclude" }, "include_keywords": { "type": "array", "items": { "type": "string" }, "description": "Keywords that must appear in the role" }, "seniority_levels": { "type": "array", "items": { "type": "string" }, "description": "Seniority levels to include" } } }arguments 56 linessignals.untrack auth-required never probed
Stop tracking a company and delete its signal. Confirm with the user first; they stop getting new openings from it. To stop notifications temporarily instead, use signals.pause.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "signal_id", "confirmed" ], "properties": { "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms they want to stop tracking the company" }, "signal_id": { "type": "string", "description": "Signal (tracked company) id" } } }arguments 19 linessignals.openings.save auth-required never probed
Save a matched opening returned by signals.openings.list to your job journey
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "opening_id" ], "properties": { "opening_id": { "type": "string", "description": "Matched opening id from signals.openings.list" } } }arguments 13 linessignals.openings.list auth-required never probed
List signal notifications (new openings at tracked companies)
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "q": { "type": "string", "description": "Free-text search over opening titles" }, "tab": { "enum": [ "all", "new" ], "type": "string", "description": "Use new for unread notifications" }, "page": { "type": "string", "description": "Pagination cursor returned as meta.next_page" }, "limit": { "type": "integer", "maximum": 100, "description": "Maximum records to return", "exclusiveMinimum": 0 }, "matches": { "type": "boolean", "description": "Only openings that score as a match for your persona" }, "location": { "type": "string", "description": "Exact location facet; use \"remote\" for remote roles" }, "department": { "type": "string", "description": "Exact department facet" }, "tracker_id": { "type": "string", "description": "Filter notifications to one signal tracker" } } }arguments 44 linesinbox.list reads auth-required 45d ago
List email conversations Refine matched to your job search (applications, interviews, recruiter outreach)
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "tab": { "enum": [ "applications", "interviews", "outreach" ], "type": "string", "description": "Which inbox tab to list; defaults to applications" }, "page": { "type": "string", "description": "Pagination cursor returned as meta.next_page" }, "limit": { "type": "integer", "maximum": 100, "description": "Maximum records to return", "exclusiveMinimum": 0 }, "shelf": { "enum": [ "low_signal" ], "type": "string", "description": "For the outreach tab: show the low-signal shelf instead of the main feed" }, "status": { "enum": [ "pending", "auto", "active", "handled" ], "type": "string", "description": "pending needs a decision, auto was auto-applied, active has an open conversation, handled is done" }, "unread": { "type": "boolean", "description": "With status=active: only conversations with (or without) an unread reply" }, "account": { "type": "string", "description": "Filter to one connected Google account id" } } }arguments 50 linesinbox.apply_suggestion auth-required never probed
Apply an inbox item's suggested action, such as adding an application to the board or recording a rejection. Confirm the specific action with the user first.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id", "confirmed" ], "properties": { "item_id": { "type": "string", "description": "Inbox item id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms applying this suggestion" } } }arguments 19 linesinbox.undo auth-required never probed
Undo an auto-applied inbox action. This can delete a board record that the automatic action created, so confirm with the user first.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id", "confirmed" ], "properties": { "item_id": { "type": "string", "description": "Inbox item id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms undoing the automatic action" } } }arguments 19 linesinbox.mark_read auth-required never probed
Clear an inbox item's unread-reply flag
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id" ], "properties": { "item_id": { "type": "string", "description": "Inbox item id" } } }arguments 13 linesinbox.unsubscribe auth-required never probed
Unsubscribe the user from this sender's mailing list via one-click list-unsubscribe. This changes the user's real email subscriptions; confirm with them before calling. Use it for unwanted bulk senders, not for a person you can simply decline.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id", "confirmed" ], "properties": { "item_id": { "type": "string", "description": "Inbox item id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true, and only after the user explicitly approved unsubscribing from this sender" } } }arguments 19 linesinbox.dismiss changes data auth-required never probed
Dismiss inbox items you are not acting on (also marks the mail read in Gmail)
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ids", "confirmed" ], "properties": { "ids": { "type": "array", "items": { "type": "string" }, "maxItems": 200, "minItems": 1, "description": "Inbox item ids to dismiss" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms dismissing these items and marking their mail read" } } }arguments 24 linesinbox.acknowledge changes data auth-required never probed
Keep auto-applied inbox items as-is and finalize the automatic action. Confirm the specific items with the user first.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ids", "confirmed" ], "properties": { "ids": { "type": "array", "items": { "type": "string" }, "maxItems": 200, "minItems": 1, "description": "Inbox item ids to acknowledge" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true after the user confirms keeping these automatic actions" } } }arguments 24 linesinbox.decline auth-required never probed
Queue decline replies to recruiter outreach. Depending on the user's preference this SENDS email from their address. Only call after the user explicitly approved declining these specific conversations.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ids", "confirmed" ], "properties": { "ids": { "type": "array", "items": { "type": "string" }, "maxItems": 200, "minItems": 1, "description": "Inbox item ids to decline" }, "remember": { "type": "boolean", "description": "Save the preference for future declines" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true, and only after the user explicitly approved declining these conversations" }, "preference": { "enum": [ "always", "review", "never" ], "type": "string", "description": "Send preference to apply; omit to use the saved preference" } } }arguments 37 linesinbox.sync_status reads auth-required 45d ago
Per-account Gmail synchronization status, including current progress and last sync time
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linessignals.recommendations.list reads auth-required never probed
List companies recommended from one company you track. Get signal_id from signals.list.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "signal_id" ], "properties": { "page": { "type": "string", "description": "Pagination cursor returned as meta.next_page" }, "limit": { "type": "integer", "maximum": 100, "description": "Maximum records to return", "exclusiveMinimum": 0 }, "signal_id": { "type": "string", "description": "Tracked-company id from signals.list" } } }arguments 23 linessignals.recommendations.get auth-required never probed
Get one recommended company with sources and persona fit
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "recommendation_id" ], "properties": { "recommendation_id": { "type": "string", "description": "Recommendation id" } } }arguments 13 linessignals.recommendations.watch auth-required never probed
Start tracking a recommended company (converts it into a signal)
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "recommendation_id" ], "properties": { "recommendation_id": { "type": "string", "description": "Recommendation id" } } }arguments 13 linessignals.recommendations.dismiss changes data auth-required never probed
Dismiss a recommended company
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "recommendation_id" ], "properties": { "reason": { "type": "string", "description": "Why it was dismissed; sharpens future recommendations" }, "recommendation_id": { "type": "string", "description": "Recommendation id" } } }arguments 17 linessignals.recommendations.block changes data auth-required never probed
Dismiss a recommended company and block it from future recommendations
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "recommendation_id" ], "properties": { "recommendation_id": { "type": "string", "description": "Recommendation id" } } }arguments 13 linessignals.recommendations.feedback auth-required never probed
Record why a recommendation was or was not a fit; this sharpens future recommendations and the persona
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "recommendation_id", "feedback_types" ], "properties": { "feedback_types": { "type": "array", "items": { "enum": [ "watched", "dismissed", "more_like_this", "prefer_startups_growth", "prefer_public_companies", "too_similar", "too_different", "wrong_market", "wrong_industry", "wrong_role_fit", "already_know", "not_enough_signal", "not_interested" ], "type": "string" }, "minItems": 1, "description": "One or more supported feedback tags" }, "recommendation_id": { "type": "string", "description": "Recommendation id" }, "interaction_source": { "type": "string", "description": "Where the feedback came from in the UI or agent flow" } } }arguments 41 linesaccount.agenda reads auth-required 45d ago
Get upcoming interviews and action items
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesinbox.get auth-required 35d ago
Get one inbox item with its related job and application
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id" ], "properties": { "item_id": { "type": "string", "description": "Inbox item id" } } }arguments 13 linesinbox.get_thread auth-required 35d ago
Fetch the full email thread for an inbox item
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id" ], "properties": { "item_id": { "type": "string", "description": "Inbox item id" } } }arguments 13 linesinbox.send_reply sends messages auth-required never probed
Send an email reply through the user's Gmail. This emails a real person from the user's address. Only call after the user has seen the exact message body and explicitly approved sending it.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id", "body", "confirmed" ], "properties": { "body": { "type": "string", "description": "HTML body of the reply, exactly as approved by the user" }, "item_id": { "type": "string", "description": "Inbox item id" }, "confirmed": { "type": "boolean", "const": true, "description": "Must be true, and only after the user explicitly approved sending this exact message" }, "draft_kind": { "enum": [ "decline", "interested" ], "type": "string", "description": "Set when the body came from inbox.draft_reply" } } }arguments 32 linesintegrations.list reads auth-required 45d ago
List connected Google accounts and their grant status. To connect a new account, use integrations.connect_google.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesjobs.mark_applied auth-required never probed
Mark a job as applied
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "job_id": { "type": "string", "description": "Job id" } } }arguments 13 linesinbox.draft_reply reads auth-required 35d ago
Generate an AI reply draft for an inbox item. Returns HTML for review; it does not send anything.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "item_id", "kind" ], "properties": { "kind": { "enum": [ "decline", "interested" ], "type": "string", "description": "decline politely passes; interested asks to continue the conversation" }, "item_id": { "type": "string", "description": "Inbox item id" } } }arguments 22 linesjobs.refresh changes data auth-required never probed
Queue a job posting to be re-scraped. The returned job may remain pending; use jobs.get later to inspect the refreshed state.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "job_id" ], "properties": { "job_id": { "type": "string", "description": "Job id" } } }arguments 13 linessignals.pause auth-required never probed
Pause tracking for a company
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "signal_id" ], "properties": { "signal_id": { "type": "string", "description": "Signal (tracked company) id" } } }arguments 13 linespersona.get auth-required never probed
Get the user's persona: inferred job-search preferences and traits with an understanding score. Use it to tailor advice and searches.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesintegrations.connect_google reads auth-required never probed
Get a link for the user to connect Gmail to Refine or approve a missing Gmail permission. Refine selects the permission needed for the connected account. The connection happens in the browser with no Refine sign-in required. Share the link only with the owner of this Refine account.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idb73ba9a6fa039b7e.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/b73ba9a6fa039b7e/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/b73ba9a6fa039b7e?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.