DATA OPS
Agent-driven dbt cost-vs-usage triage for unused models
An agent cross-references dbt models against Snowflake query history to find expensive models that haven't been read in 30+ days, decides keep vs. deprecate.
How it runs
The automated pipeline, trigger to output.
- TriggerMonthly schedule
- ActionPull model inventory from GitLabGitLab
- ActionQuery Snowflake cost and access historySnowflake
- LogicAgent decides keep vs. deprecate per model
- ActionFile ranked Linear deprecation ticketsLinear
- OutputSend savings rollup to SlackSlack
What it does
Joins three signals — the dbt model list, Snowflake warehouse cost per model build, and Snowflake `ACCESS_HISTORY` showing who actually queries each table. An agent reasons over models that are both costly to build and unread for 30+ days, distinguishing true dead weight from rarely-but-critically-used tables, then files Linear deprecation tickets ranked by potential savings with a written rationale per model.
When to use it
Run monthly when you want to cut warehouse spend but need judgment, not just a threshold — some unread models are quarterly reports, others are genuinely abandoned. The agent's reasoning is what makes it more than a SQL query.
How it works
- 1A monthly schedule starts the triage.
- 2Pull the model inventory from the dbt repo in GitLab.
- 3Query Snowflake for build cost and last-access date per model.
- 4The agent evaluates each costly-and-unread model, weighing access patterns and naming hints to recommend keep or deprecate.
- 5For deprecate calls, create a Linear ticket with savings estimate and the agent's rationale.
- 6Send the Chairman a Slack rollup of projected monthly savings.
Set it up
What you configure once, before turning it on.
- 1Connect GitLabRepos, MRs, pipelines, registry.
- 2Connect SnowflakeWarehouses, queries, shares.
- 3Connect LinearIssues, projects, cycles, triage.
- 4Connect SlackChannels, DMs, threads, mentions.
- 5Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
- 6Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
- 7Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.
More Data Ops workflows
Weekly BigQuery Cost Trend Sheet and Exec Digest
Compiles week-over-week BigQuery scheduled-query cost by owner and dataset into a Google Sheet with trend columns.
Daily BigQuery Scheduled-Query Cost Attribution to Owners
Each morning, totals the prior day's on-demand bytes-billed per scheduled query, maps each query to its owner from a label, and posts a per-owner cost leaderboard to Slack.
BigQuery Per-Team Budget Breach Alert to PagerDuty
Tracks month-to-date BigQuery scheduled-query spend per team and, when a team crosses its monthly budget, pages the team's on-call in PagerDuty and snapshots the spend breakdown…
dbt source freshness watcher with severity-routed alerts
Checks Snowflake loaded-at timestamps against each dbt source's freshness SLA, then routes warnings to Slack and hard breaches to a PagerDuty incident so stale data never…
dbt orphan model detector with Linear cleanup tickets
Scans your dbt manifest for models that no other model, exposure, or BI tool consumes.
Raw Sensor Telemetry Archive to BigQuery
Captures every incoming building sensor reading via webhook, normalizes the payload into a consistent schema.
Run it inside a business
This workflow drops into a full company template. Import the org, and this is one of the playbooks its agents run.

Run this workflow in your colony.
14-day trial. No DevOps. No Sales call. Provisioned in under a minute.
