Every rescued dog deserves an objective health record

Rescues take dogs in as unknowns — no history, no chart, often no name. The volunteers doing this work are overwhelmed, and usually have no vet on hand, no scale, and no time. So the things that most shape a dog's care — its weight, body condition, and overall health — get eyeballed, and lost.

Pedro gives every incoming dog an objective health & welfare passport from a phone video — inside the tool rescues already live in.

What it does

Pedro is a Slack Assistant (the agent side-panel). A volunteer opens a chat and Pedro takes them through intake like a warm front-desk buddy — no forms.

  • 🐾 Measure — a natural conversation gathers the dog's details, then takes a short video. A Qwen agent drives our private computer-vision engine over MCP to build a whole-dog health picture: weight (no scale needed), body condition, size and conformation, and the dog's mood (how calm or stressed it seemed on camera) — plus a screen for the spinal risk that long-backed breeds are especially prone to. It comes back as a designed ID-card health passport and a plain-language summary.
  • 📋 Watch — each dog gets a per-dog Slack Canvas passport that Pedro updates over time. Re-upload a dog and Pedro recognises it by appearance and folds it into its record, so its weight and condition trend — the clearest sign of a dog recovering, or not — lives natively in Slack.
  • 🔎 Reunite — in the #found channel, anyone can describe a dog in plain English ("looking for a small black dog found in Zurich") and Pedro searches the records with Slack's Real-Time Search API + an appearance fingerprint to answer: is this one of ours?

One tap confirms a dog and posts its passport to the team's channel, with a button to reach the finder directly in the Slack app.

Why weight and condition matter most

For a rescued dog, weight and body condition are the backbone of its care — they drive feeding plans, medication and anaesthetic dosing, and how you track a dog back to health. They're also the hardest thing to judge by eye, and the easiest to get wrong. Estimating them objectively from a phone video — no scale, no vet visit — is the single most useful thing Pedro does. (For the long-backed breeds we started with, keeping a dog at a healthy weight is also the biggest lever on spinal health — so the passport flags that too.)

How we built it

  • Surface: Slack Assistant on Bolt for Python (async, Socket Mode — no public URL). A guided, stateful flow with inline Block Kit buttons for one-tap answers.
  • Brain: Qwen (qwen-plus) via the OpenAI-compatible API on Alibaba Cloud, running a two-phase tool-call loop over MCP — perception (gather health facts) → assessment (fold in the finder's answers + write the summary).
  • Health engine: a private ONNX stack (pose, 2D→3D lift, weight/body-model, affect, conformation) exposed as an MCP server. Model weights never leave the box — only JSON crosses the trust boundary.
  • Slack-native depth: Canvas passports, Real-Time Search, a rendered ID-card passport image, and deep-links into the app.

Challenges we ran into

  • Making intake feel like a conversation, not a form while still reliably capturing structured details — solved with a JSON-structured LLM turn that returns the reply, the fields, and per-question quick-reply buttons.
  • Keeping the assistant thread clean so the agent always knows "where we are" across many dogs in one long thread — every completed dog resets to a fresh, isolated context.
  • Deciding new vs. already-in-our-care from appearance rather than blindly numbering duplicates.

What we learned

  • The Slack Assistant surface is a genuinely good home for a guided, stateful agent — buttons + Canvas + Real-Time Search cover a lot of product without ever leaving Slack.
  • For a welfare tool, the interaction — kind and low-friction — matters as much as the model.

Accomplishments we're proud of

  • A warm agent a stressed volunteer would actually want to talk to.
  • Objective weight and body condition from a single phone video — the numbers that most shape a rescued dog's care, normally guessed.
  • Two of the three challenge technologies used meaningfully: MCP (drives the whole health pipeline) and Real-Time Search (powers reunification).

Agent for Good — the impact

Rescue runs on volunteers with no scale and no on-site vet. Pedro gives every incoming dog an objective, longitudinal welfare record from a phone video — surfacing the health signals (weight and condition) that most change outcomes — and helps reunite lost dogs, all inside the workspace rescues already use. We started with dachshunds; the approach extends to every breed a rescue takes in.

What's next for Pedro

  • Extend from dachshunds to every breed a rescue cares for.
  • Weight-and-condition trend alerts and foster check-in reminders.
  • Marketplace-ready packaging for rescue organisations.

Informational, not a veterinary diagnosis.

Built With

  • alibaba-cloud
  • block-kit
  • bolt
  • bolt-python
  • canvas
  • computer-vision
  • dashscope
  • ffmpeg
  • mcp
  • onnx
  • onnxruntime
  • opencv
  • pillow
  • python
  • qwen
  • qwen-plus
  • real-time-search-api
  • slack-assistant
  • socket-mode
  • sqlite
Share this project:

Updates