Mailrun Inbox Triage

VerifiedCaution

Runs combined triage of Jason Carney's Gmail and ops@canido.co inbox, applying job-search rules: trashing junk, hard-disqualifying onsite roles, and drafting replies.

Sby Skills Guide Bot
ProductivityIntermediate
8/6/2026
Claude Code
#email-triage#gmail#job-search#inbox-automation#personal-workflow

Recommended for

Automated summary

Runs Jason Carney's job-search inbox triage in a single pass across his personal Gmail and the ops@canido.co address that forwards into it.

Strengths

  • Covers both addresses in one pass through the existing Gmail connector, producing a single combined report instead of two disconnected ones
  • Applies explicit deterministic rules: 100% remote is a hard requirement, blacklisted domains and spam disguised as job leads are trashed on sight
  • Drafts qualifying or full-pitch replies but never sends them, leaving the final call to the user
  • Clearly separates the triage action (mailrun) from the read-only status report (/sitrep)

Limitations

  • Heavily tied to one individual: addresses, blacklisted domains and history are hardcoded, so it is not reusable as-is
  • The 'since the last pass' scope is not implemented — no state or bookmark mechanism is described
  • Deliberately skips alert digests (Indeed, LinkedIn, TheLadders, Wellfound, Obra) and leaves Upwork/Fiverr threads completely untouched
When to use it

When Jason wants the inbox actively worked — junk trashed, onsite/hybrid leads skipped, replies drafted for review — rather than just summarized.

When not to use it

For anyone else's mailbox, or when a read-only status summary is what's wanted (use /sitrep instead).

Security analysis

Caution
Quality score82/100

No exfiltration, obfuscation, or destructive shell activity; the skill uses a Gmail connector, Smartsheet, and memory files for a legitimate, well-scoped job-search triage purpose, and explicitly forbids sending mail. However it does instruct automated deletion of email based on model judgment, maintains a growing wildcard-domain blacklist the model is told to expand itself, and hardcodes personal addresses/IDs, so it warrants 'caution' rather than 'safe'.

Findings
  • •Skill performs destructive mailbox actions (trashing threads) automatically, on a model-judged basis, with no confirmation step before deletion.
  • •Hardcoded personal identifiers (jasonbrookecarney@gmail.com, ops@canido.co, name, Smartsheet sheet_id 1621144942628740) embedded in the instruction file.
  • •Self-extending deletion policy: instructs the agent to 'watch for new domains matching the same vague-urgency-bait pattern; flag and add them to this list going forward,' delegating blacklist growth to model discretion, which can silently widen the set of auto-trashed mail.
  • •Wildcard domain blacklists (robly.com, arcamax.com 'all subdomains') risk collateral deletion of legitimate mail from those domains.
  • •Broad trigger: fires on any message containing the bare word 'mailrun', which could activate inbox-modifying behavior unintentionally in an unrelated context.
  • •Touches two logical inboxes and writes to external systems (Smartsheet, /areas/job-search.md) in one pass; blast radius is larger than a read-only triage.
  • •Mitigating: replies are explicitly draft-only ('never send'), onsite/hybrid threads are left untouched, Upwork/Fiverr excluded, and no shell/network exfiltration, curl|sh, rm -rf, base64 payloads, or safety-disabling instructions are present.
How this analysis is made

Examples

Plain trigger
mailrun
Slash command
/mailrun — work my inbox and give me the combined summary
Emphasis on the ops address
Run mailrun and tell me what came into ops@canido.co since the last pass

name: "mailrun" description: "Run Jason Carney's job-search inbox triage across both his personal Gmail (jasonbrookecarney@gmail.com) and his dedicated ops@canido.co inbox (which forwards into that same Gmail account) in a single pass. Trigger whenever the user's message is or contains the word "mailrun" (case-insensitive) or the command "/mailrun" — e.g. "mailrun", "run mailrun", "/mailrun". This is a separate skill from /sitrep — sitrep reports status, mailrun performs the triage action itself (trashing junk, hard-disqualifying onsite/hybrid leads, drafting replies for review)."

MAILRUN — Combined Inbox Triage (Gmail + ops@canido.co)

Trigger: the user's message contains "mailrun" (any case) or the command "/mailrun", either alone or embedded in a longer message. Do not confuse this with /sitrep — sitrep is a read-only status report; mailrun actively works the inbox.

Context

Jason Carney (jasonbrookecarney@gmail.com, calls the assistant "Bilbi") runs an active job search out of his personal Gmail. On 2026-08-04 he also set up a dedicated mailbox, ops@canido.co, specifically as an assistant-managed inbox ("everything to do with you") — it's configured to forward all incoming mail into jasonbrookecarney@gmail.com, so both addresses are reachable through the single existing Gmail connector. No separate mail connector or credential is needed; forwarded mail just shows up in the same Gmail inbox addressed to ops@canido.co.

What mailrun does, in order

  1. Primary inbox triage (jasonbrookecarney@gmail.com) — run the established job-search triage rules (below) against inbox threads that haven't been triaged since the last mailrun/manual pass.
  2. ops@canido.co check — search Gmail for mail addressed to ops@canido.co (e.g. to:ops@canido.co or deliveredto:ops@canido.co) received since the last check. This inbox is new and not necessarily job-lead traffic — it may contain things Jason has routed directly to the assistant (files, notes, forwarded shares). Summarize what's there plainly rather than auto-applying trash/draft logic, UNLESS a message clearly matches the job-lead pattern (real recruiter, real JD), in which case handle it exactly like the primary inbox.
  3. Report one combined summary at the end (see Output below) — don't produce two separate disconnected reports.

Established triage rules (apply to the primary inbox, and to any ops@canido.co item that is clearly a job lead)

  • 100% remote is a hard requirement. Onsite/hybrid roles are hard-disqualified: leave the thread completely untouched — no reply, no trash, no label.
  • Direct recruiter/hiring-manager emails with a real job description go through the full flow: evaluate fit, then draft (never send) either a qualifying reply (key details like remote status/comp/end client are missing) or a full pitch reply (the lead is strong and well-specified).
  • Spam dressed up as job leads (vague urgency, no named employer/role, "interview ASAP"/"we found jobs near you" bait) gets trashed on sight.
  • Blacklisted sender domains get trashed wholesale on sight: robly.com (wildcard — all subdomains), arcamax.com (wildcard), dayinhist.io, financialassistpro.com, loanboostexpress.com, storyfunder.com, leadleaplaunch.com, alerts.myjobhelper.com, send.hellohiring.com, ourjob.net, getacareer.co.uk, pizzazzy.net, yoursmrtadvnces.com, rent2ownship.com, plus job-alert digest senders (alerts@ziprecruiter.com, obs@alerts.jobot.com, amtrak-jobnotification@noreply.jobs2web.com, jobalert@lensa.com). Watch for new domains matching the same vague-urgency-bait pattern; flag and add them to this list going forward.
  • Indeed-style/LinkedIn/TheLadders/Wellfound/Obra digest alerts are left untouched (out of scope for this flow — no single reply target/JD).
  • Upwork and Fiverr threads are always left completely untouched — Jason handles those himself as separate side projects; do not triage, trash, or draft anything in them.
  • The assistant drafts replies for Jason to review and send himself — never send directly.
  • Log every newly-drafted lead into the Smartsheet "Job Search Tracker" (sheet_id 1621144942628740) using the existing column conventions (Company = staffing/recruiting firm that made contact, Client = the named end client when different), and append a summary of the run to the /areas/job-search.md memory file.

Output

At the end of a mailrun pass, report (short lines, no fluff — same tone as sitrep):

  • How many threads were reviewed, broken out by primary inbox vs. ops@canido.co
  • What was trashed (sender/domain)
  • What was hard-disqualified (onsite/hybrid, left untouched) — company/role/location
  • What was drafted (company, role, qualifying vs. pitch) — remind Jason these are drafts only, nothing was sent, and he still needs to attach a tailored resume before sending if one wasn't attached
  • Anything flagged but not acted on (needs a tailored resume build, a personal callback, a status-only update, etc.)
  • Anything unusual or notable found specifically in ops@canido.co, since that inbox's purpose is still being defined day to day

Deliver via SendUserMessage.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/mailrun-inbox-triage-msh3uu7o/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/mailrun-inbox-triage-msh3uu7o' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/mailrun-inbox-triage-msh3uu7o/download' --output '.skill-downloads/mailrun-inbox-triage-msh3uu7o/SKILL.md.part' && mv '.skill-downloads/mailrun-inbox-triage-msh3uu7o/SKILL.md.part' '.skill-downloads/mailrun-inbox-triage-msh3uu7o/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/mailrun-inbox-triage-msh3uu7o/SKILL.md' && test -s '.skill-downloads/mailrun-inbox-triage-msh3uu7o/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/mailrun' && cp -R '.skill-downloads/mailrun-inbox-triage-msh3uu7o' '.claude/skills/mailrun'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/mailrun-inbox-triage-msh3uu7o'

openskills read 'mailrun-inbox-triage-msh3uu7o'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/mailrun-inbox-triage-msh3uu7o/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills