{
  "tools": [
    {
      "type": "tool",
      "name": "birthday-checker",
      "displayName": "Birthday Checker",
      "description": "Check a CSV birthday list for upcoming birthdays within a lookahead window",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/birthday-checker"
    },
    {
      "type": "tool",
      "name": "crypto-price",
      "displayName": "Crypto Price",
      "description": "Fetch current cryptocurrency prices from CoinGecko with 24h change. Free public API, no auth.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/crypto-price"
    },
    {
      "type": "tool",
      "name": "dataframe",
      "displayName": "DataFrame",
      "description": "Pandas-like data science and ETL in pure Java using JShell with automatic Maven dependency resolution.",
      "version": "1.0.0",
      "category": "Data",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": false,
      "source": "jar",
      "path": "tools/dataframe"
    },
    {
      "type": "tool",
      "name": "db-backup",
      "displayName": "Database Backup",
      "description": "Backup databases using native dump tools (pg_dump, mysqldump, mariadb-dump). Create a YAML connection with your database credentials and the tool handles the rest securely.",
      "version": "2.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": true,
      "source": "yaml",
      "path": "tools/db-backup"
    },
    {
      "type": "tool",
      "name": "deal-finder",
      "displayName": "Deal Finder",
      "description": "Search for deals on Craigslist and other classifieds via RSS/web scraping",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/deal-finder"
    },
    {
      "type": "tool",
      "name": "docker",
      "displayName": "Docker",
      "description": "Run Docker containers as job steps with full lifecycle management.",
      "version": "1.0.0",
      "category": "Cloud",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": false,
      "source": "jar",
      "path": "tools/docker"
    },
    {
      "type": "tool",
      "name": "email",
      "displayName": "Email",
      "description": "Send emails with attachments, HTML content, and multiple recipients.",
      "version": "1.0.0",
      "category": "Communication",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": true,
      "source": "jar",
      "path": "tools/email"
    },
    {
      "type": "tool",
      "name": "excel",
      "displayName": "Excel",
      "description": "Read and write Microsoft Excel files (.xlsx and .xls).",
      "version": "1.0.0",
      "category": "Data",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": false,
      "source": "jar",
      "path": "tools/excel"
    },
    {
      "type": "tool",
      "name": "file-management",
      "displayName": "File Management",
      "description": "Local filesystem operations with wildcard/glob support.",
      "version": "1.0.0",
      "category": "File & Storage",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": false,
      "source": "jar",
      "path": "tools/file-management"
    },
    {
      "type": "tool",
      "name": "ftp",
      "displayName": "FTP / SFTP",
      "description": "File transfer via FTP and SFTP with full connection management.",
      "version": "1.0.0",
      "category": "File & Storage",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": true,
      "source": "jar",
      "path": "tools/ftp"
    },
    {
      "type": "tool",
      "name": "geocode",
      "displayName": "Geocode",
      "description": "Geocode an address or place name to latitude/longitude using OpenStreetMap's Nominatim service. Free, no auth.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/geocode"
    },
    {
      "type": "tool",
      "name": "git",
      "displayName": "Git",
      "description": "Git repository operations via the Git CLI.",
      "version": "1.0.0",
      "category": "Automation",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": true,
      "source": "jar",
      "path": "tools/git"
    },
    {
      "type": "tool",
      "name": "hacker-news-top",
      "displayName": "Hacker News Top",
      "description": "Fetch the top N Hacker News stories with titles, URLs, scores, and comment counts.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/hacker-news-top"
    },
    {
      "type": "tool",
      "name": "http-get",
      "displayName": "HTTP GET",
      "description": "Fetch a URL via HTTP GET. Returns status, body, content-type, and (if the body is JSON) each top-level field as a separate output.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/http-get"
    },
    {
      "type": "tool",
      "name": "ical-events",
      "displayName": "iCal Events",
      "description": "Parse an .ics (iCalendar) file or URL and list upcoming events within a lookahead window.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/ical-events"
    },
    {
      "type": "tool",
      "name": "markdown-to-html",
      "displayName": "Markdown to HTML",
      "description": "Convert Markdown to HTML. Useful for prettier emails, reports, and rendering AI output. Stdlib only, no pip install. Raw HTML in the input is escaped by default (safe for email bodies).",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/markdown-to-html"
    },
    {
      "type": "tool",
      "name": "mongodb",
      "displayName": "MongoDB",
      "description": "MongoDB NoSQL database operations.",
      "version": "1.0.0",
      "category": "Data",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": true,
      "source": "jar",
      "path": "tools/mongodb"
    },
    {
      "type": "tool",
      "name": "network-ping",
      "displayName": "Network Ping",
      "description": "Ping a host and report if it is reachable",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/network-ping"
    },
    {
      "type": "tool",
      "name": "options-analytics",
      "displayName": "Options Analytics",
      "description": "Black-Scholes options pricing, Greeks, implied volatility, Monte Carlo simulation, and strategy P&L analysis",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/options-analytics"
    },
    {
      "type": "tool",
      "name": "pdf",
      "displayName": "PDF",
      "description": "PDF document operations: generate, extract text, get metadata, and merge.",
      "version": "1.0.0",
      "category": "File & Storage",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": false,
      "source": "jar",
      "path": "tools/pdf"
    },
    {
      "type": "tool",
      "name": "rentcast",
      "displayName": "RentCast",
      "description": "Real estate data via the RentCast API \u2014 rent estimates, property values, market statistics, and active rental listings. Requires a free or paid RentCast API key.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": true,
      "source": "yaml",
      "path": "tools/rentcast"
    },
    {
      "type": "tool",
      "name": "rss-reader",
      "displayName": "RSS Feed Reader",
      "description": "Fetch and parse RSS/Atom feeds, returning recent entries",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/rss-reader"
    },
    {
      "type": "tool",
      "name": "slack-post",
      "displayName": "Slack Post",
      "description": "Post messages to Slack channels with rich formatting",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/slack-post"
    },
    {
      "type": "tool",
      "name": "sql",
      "displayName": "SQL",
      "description": "Universal database integration supporting 14+ databases via JDBC.",
      "version": "1.0.0",
      "category": "Data",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": true,
      "source": "jar",
      "path": "tools/sql"
    },
    {
      "type": "tool",
      "name": "ssh",
      "displayName": "SSH",
      "description": "Execute commands and scripts on remote hosts via SSH.",
      "version": "1.0.0",
      "category": "Remote Access",
      "vendor": "Blue Isle",
      "license": "proprietary",
      "tags": [],
      "connectionBased": true,
      "source": "jar",
      "path": "tools/ssh"
    },
    {
      "type": "tool",
      "name": "stock-price",
      "displayName": "Stock Price Checker",
      "description": "Fetch current stock prices and daily change from Yahoo Finance",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/stock-price"
    },
    {
      "type": "tool",
      "name": "weather-forecast",
      "displayName": "Weather Forecast",
      "description": "Fetch weather forecast using Open-Meteo (free, no API key required)",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/weather-forecast"
    },
    {
      "type": "tool",
      "name": "website-change",
      "displayName": "Website Change Detector",
      "description": "Monitor a webpage for changes by comparing content hashes",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "credentialBased": false,
      "source": "yaml",
      "path": "tools/website-change"
    }
  ],
  "skills": [
    {
      "type": "skill",
      "name": "api-health-monitor",
      "displayName": "API Health Monitor",
      "description": "Cluster failures across multiple HTTP endpoint health checks. AI groups failures by region, service, or status code and identifies likely root causes when failures share a pattern.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/api-health-monitor"
    },
    {
      "type": "skill",
      "name": "aws-cost-watcher",
      "displayName": "AWS Cost Watcher",
      "description": "Daily AWS spend summary by service with anomaly detection. AI flags unusual spikes, identifies which services drove yesterday's cost, and projects month-end totals.",
      "version": "1.0.0",
      "category": "Cloud",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/aws-cost-watcher"
    },
    {
      "type": "skill",
      "name": "bid-estimator",
      "displayName": "Bid Estimator",
      "description": "Ballpark a bid for a defined scope of construction work using user-provided unit costs, crew rates, and overhead targets. Sanity check, not a substitute for a real estimate.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/bid-estimator"
    },
    {
      "type": "skill",
      "name": "change-order-explainer",
      "displayName": "Change Order Explainer",
      "description": "Plain-English breakdown of a change order \u2014 what scope changes, cost impact, time impact, who pays, and hidden clauses that often slip past PMs. For pre-signature review.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/change-order-explainer"
    },
    {
      "type": "skill",
      "name": "commit-message-improver",
      "displayName": "Commit Message Improver",
      "description": "Rewrite a vague commit message into Conventional Commits format using the diff for context. Picks type and scope from what the diff actually does, not just what the original message claimed.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/commit-message-improver"
    },
    {
      "type": "skill",
      "name": "comparable-property-analyzer",
      "displayName": "Comparable Property Analyzer",
      "description": "Compare a subject property against 3\u20138 comps. Summarize where the subject stands on price/sqft, days on market, condition adjustments. Flags outliers. Informational read for the listing agent or buyer's agent; not a substitute for a CMA or formal appraisal.",
      "version": "1.0.0",
      "category": "Real Estate",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/comparable-property-analyzer"
    },
    {
      "type": "skill",
      "name": "csi-spec-summary",
      "displayName": "CSI Spec Summary",
      "description": "Summarize a CSI MasterFormat spec section \u2014 title, scope, key requirements (Part 1 General, Part 2 Products, Part 3 Execution), submittal requirements, and common pitfalls. For PM/sub orientation; not a substitute for reading the actual section.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/csi-spec-summary"
    },
    {
      "type": "skill",
      "name": "csv-import-validator",
      "displayName": "CSV Import Validator",
      "description": "Inspect a CSV file's headers and sample rows for schema problems, weird columns, missing required fields, encoding issues, and obvious data quality red flags before loading into a database.",
      "version": "1.0.0",
      "category": "Data",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/csv-import-validator"
    },
    {
      "type": "skill",
      "name": "customer-followup",
      "displayName": "customer-followup",
      "description": "Process customer responses to follow-up messages after service/purchase. Route positive feedback to review requests, negative feedback to the owner for immediate action.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/customer-followup"
    },
    {
      "type": "skill",
      "name": "daily-sales-reconciler",
      "displayName": "daily-sales-reconciler",
      "description": "Process end-of-day sales photos from registers or POS systems. Extract totals, compare against expected ranges, flag discrepancies, and generate daily summaries for the owner.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/daily-sales-reconciler"
    },
    {
      "type": "skill",
      "name": "error-postmortem-drafter",
      "displayName": "Error Postmortem Drafter",
      "description": "Generate a first-draft incident postmortem from a timeline + log dumps + optional chat thread. Produces Summary, Timeline, Root Cause, Resolution, Prevention, What-Went-Well, What-Didn't sections \u2014 blameless tone, ready for human edit.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/error-postmortem-drafter"
    },
    {
      "type": "skill",
      "name": "expense-tracker",
      "displayName": "expense-tracker",
      "description": "Process expense receipts from any channel. Extract merchant, amount, date, category from receipt photos/PDFs. Enforce spending policies. Accumulate into expense reports. Submit for approval.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/expense-tracker"
    },
    {
      "type": "skill",
      "name": "gdt-explainer",
      "displayName": "GD&T Explainer (ASME Y14.5)",
      "description": "Explain a feature control frame in plain English \u2014 what it controls, the datum reference frame, the tolerance zone, how to measure it, and common gotchas. ASME Y14.5-2018 vocabulary; works from text input or a drawing image.",
      "version": "1.0.0",
      "category": "Quality",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "gd-t",
        "gdt",
        "asme-y14-5",
        "quality",
        "inspection",
        "drawing",
        "manufacturing",
        "machine-shop"
      ],
      "path": "skills/gdt-explainer"
    },
    {
      "type": "skill",
      "name": "github-activity-digest",
      "displayName": "GitHub Activity Digest",
      "description": "Weekly summary of commits, pull requests, and issues across watched GitHub repositories. AI groups by repo and theme, highlights stalled PRs and unresolved issues.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/github-activity-digest"
    },
    {
      "type": "skill",
      "name": "inbox-summary",
      "displayName": "Inbox Summary",
      "description": "Daily summary of unread email, categorized into Action Required, FYI, and Newsletter buckets. AI surfaces what actually needs a reply versus what can wait.",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/inbox-summary"
    },
    {
      "type": "skill",
      "name": "invoice-processor",
      "displayName": "invoice-processor",
      "description": "Extract structured data from invoice emails and PDF attachments. Returns vendor, amount, line items, due date, and payment terms. Flags unusual amounts or unknown vendors.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/invoice-processor"
    },
    {
      "type": "skill",
      "name": "log-error-scanner",
      "displayName": "Log Error Scanner",
      "description": "Cluster ERROR/FATAL log lines by signature, rank by severity and frequency, and surface the top issues from the last hour. AI groups stack-trace variants of the same root cause.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/log-error-scanner"
    },
    {
      "type": "skill",
      "name": "material-substitute",
      "displayName": "Material Substitution Advisor",
      "description": "Suggest material substitutions when the specified material is unavailable or unsuitable. Returns 2-4 candidates with property comparisons, machining notes, cost ratios, lead times, and customer-approval implications (ECN/MRB/FAI requirements for aerospace/medical work).",
      "version": "1.0.0",
      "category": "Quality",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "materials",
        "metals",
        "stainless",
        "aluminum",
        "substitution",
        "sourcing",
        "manufacturing",
        "machine-shop"
      ],
      "path": "skills/material-substitute"
    },
    {
      "type": "skill",
      "name": "meeting-notes-summarizer",
      "displayName": "Meeting Notes Summarizer",
      "description": "Turn a raw meeting transcript into structured notes \u2014 action items with owners, decisions made, open questions, and key topics. Designed for the kinds of recordings Zoom, Teams, and OBS produce.",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/meeting-notes-summarizer"
    },
    {
      "type": "skill",
      "name": "morning-briefing",
      "displayName": "Morning Briefing",
      "description": "Daily morning briefing combining today's weather, calendar events, and top news headlines into a single summary delivered at the time of your choosing.",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/morning-briefing"
    },
    {
      "type": "skill",
      "name": "pdf-form-filler",
      "displayName": "PDF Form Filler",
      "description": "Match structured data against a form template's labeled fields and fill the form. AI handles fuzzy field-name matching (\"DOB\" \u2194 \"dateOfBirth\") and combines fields when needed (firstName + lastName \u2192 \"Full Name\").",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/pdf-form-filler"
    },
    {
      "type": "skill",
      "name": "quote-estimator",
      "displayName": "Quote Estimator (Machine Shop)",
      "description": "Produce a rough first-pass quote estimate (setup, cycle, material, OSP, suggested price, lead time, confidence) for a machined or fabricated part. Starting point for a senior estimator's review \u2014 not a final quote.",
      "version": "1.0.0",
      "category": "Sales",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "quoting",
        "machine-shop",
        "estimation",
        "manufacturing",
        "ai-assistant"
      ],
      "path": "skills/quote-estimator"
    },
    {
      "type": "skill",
      "name": "rental-yield-calculator",
      "displayName": "Rental Yield Calculator",
      "description": "Compute cap rate, cash-on-cash return, NOI, DSCR, and ROI from user-provided purchase price, rent, financing, and expenses. Sanity check for an investment property; not investment advice.",
      "version": "1.0.0",
      "category": "Real Estate",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/rental-yield-calculator"
    },
    {
      "type": "skill",
      "name": "repo-release-notes",
      "displayName": "Repo Release Notes",
      "description": "Generate user-facing release notes from a git commit log between two tags. AI clusters commits into Features / Fixes / Improvements / Breaking Changes / Internal, drops chore commits, rewrites terse messages into prose.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/repo-release-notes"
    },
    {
      "type": "skill",
      "name": "spec-summary",
      "displayName": "Specification Summary (AMS / ASTM / MIL-STD / etc.)",
      "description": "60-second orientation on an industry spec \u2014 title, scope, key requirements, who invokes it, common pitfalls, verification trail, and related specs. For triage and starting research; not a substitute for the actual standard.",
      "version": "1.0.0",
      "category": "Quality",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "standards",
        "ams",
        "astm",
        "mil-std",
        "asme",
        "iso",
        "aerospace",
        "quality",
        "manufacturing",
        "reference"
      ],
      "path": "skills/spec-summary"
    },
    {
      "type": "skill",
      "name": "submittal-reviewer",
      "displayName": "Submittal Reviewer",
      "description": "Cross-check a submittal package (data sheet, product cut sheet, sample literature) against the spec excerpt it's submitted under. Flag missing data, spec mismatches, and non-equivalent product substitutions. Pre-screen for the PM before formal review.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/submittal-reviewer"
    },
    {
      "type": "skill",
      "name": "support-ticket-triager",
      "displayName": "Support Ticket Triager",
      "description": "Classify a support ticket by category, priority, and sentiment. Drafts a polite first-touch response (for human review) grounded in the ticket text and an optional knowledge base. Designed for the high-volume first-line support funnel.",
      "version": "1.0.0",
      "category": "Customer Service",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/support-ticket-triager"
    },
    {
      "type": "skill",
      "name": "timesheet-collector",
      "displayName": "timesheet-collector",
      "description": "Collect employee work hours via any messaging channel. Extract hours per day, project/task notes, and overtime. Validate totals, flag anomalies, and generate weekly summaries for managers.",
      "version": "1.0.0",
      "category": "General",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "skills/timesheet-collector"
    }
  ],
  "jobs": [
    {
      "type": "job",
      "name": "appointment-reminder",
      "displayName": "appointment-reminder",
      "description": "Send 24-hour and 1-hour appointment reminders via SMS/WhatsApp with confirm/cancel support",
      "version": "1.0.1",
      "category": "Customer Service",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/appointment-reminder"
    },
    {
      "type": "job",
      "name": "appointment-reminder-gcal",
      "displayName": "Appointment Reminder (Google Calendar)",
      "description": "Google Calendar-driven appointment reminders. Reads upcoming events directly from your Calendar (no CSV to maintain), sends 24-hour and 1-hour reminder emails to attendees, and tracks state in a Sheet so each event is reminded exactly once per window. Cross-platform (python runtime).",
      "version": "1.0.0",
      "category": "Customer Service",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "calendar",
        "gmail",
        "sheets",
        "reminder",
        "appointment",
        "scheduling",
        "service-business"
      ],
      "path": "jobs/appointment-reminder-gcal"
    },
    {
      "type": "job",
      "name": "backup-verifier",
      "displayName": "Backup Verifier",
      "description": "Trigger-file driven. When a new backup file lands, runs a size sanity check, verifies archive integrity (tar/zip/sql), and notifies whether the backup is good.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/backup-verifier"
    },
    {
      "type": "job",
      "name": "birthday-reminder",
      "displayName": "birthday-reminder",
      "description": "One week before each birthday on your list, email you a gift reminder",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/birthday-reminder"
    },
    {
      "type": "job",
      "name": "birthday-reminder-gcal",
      "displayName": "Birthday Reminder (Google Calendar)",
      "description": "Calendar-driven birthday reminder. Reads today's events from your Google Calendar, filters by title prefix (default \"Birthday:\"), and sends a single summary to the owner. Generalizes to any annual milestone \u2014 change the prefix for anniversaries, holidays, work events.",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "calendar",
        "birthday",
        "anniversary",
        "reminder",
        "daily",
        "personal",
        "family"
      ],
      "path": "jobs/birthday-reminder-gcal"
    },
    {
      "type": "job",
      "name": "coc-generator",
      "displayName": "Certificate of Conformity Generator (Docs \u2192 PDF \u2192 Customer)",
      "description": "For shop floors marking shipments \"ready-for-coc\" in a Google Sheet, automatically copies a Doc template, find-replaces merge fields with row data, exports PDF, files to Drive, emails the PDF to the customer's buyer, and marks the row \"coc-sent\". One CoC per scheduled run. Zero AI cost \u2014 fully deterministic.",
      "version": "1.0.1",
      "category": "Quality",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "gmail",
        "drive",
        "sheets",
        "docs",
        "coc",
        "quality",
        "shipping",
        "manufacturing",
        "machine-shop",
        "small-business"
      ],
      "path": "jobs/coc-generator"
    },
    {
      "type": "job",
      "name": "code-review-on-change",
      "displayName": "code-review-on-change",
      "description": "AI-powered code review triggered by source file changes",
      "version": "1.0.1",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/code-review-on-change"
    },
    {
      "type": "job",
      "name": "content-calendar",
      "displayName": "content-calendar",
      "description": "Every Monday, send your content calendar for the week on Telegram",
      "version": "1.0.0",
      "category": "Content",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/content-calendar"
    },
    {
      "type": "job",
      "name": "content-calendar-sheets",
      "displayName": "Content Calendar (Sheets-driven)",
      "description": "Sheet-driven weekly content calendar digest. Every Monday, reads a ContentPlan Sheet and sends the upcoming week's entries (with platform, topic, draft snippet, status, assignee) to the configured subscriber. Replaces the thin CSV-driven content-calendar job that sent a message with no actual plan in the body.",
      "version": "1.0.0",
      "category": "Content",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "sheets",
        "content",
        "social-media",
        "marketing",
        "calendar",
        "weekly",
        "digest"
      ],
      "path": "jobs/content-calendar-sheets"
    },
    {
      "type": "job",
      "name": "database-snapshot-report",
      "displayName": "Database Snapshot Report",
      "description": "Run a SQL query, attach the results as a CSV, render a PDF summary, and email the report. Designed for daily/weekly business reports \u2014 sales, signups, errors, anything queryable.",
      "version": "1.0.0",
      "category": "Data",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/database-snapshot-report"
    },
    {
      "type": "job",
      "name": "deal-hunter",
      "displayName": "deal-hunter",
      "description": "Search Craigslist for deals matching your criteria and text you when found",
      "version": "1.0.0",
      "category": "Finance",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/deal-hunter"
    },
    {
      "type": "job",
      "name": "disk-space-alert",
      "displayName": "Disk Space Alert",
      "description": "Hourly disk usage check on the host running InTouch. Alerts when any monitored mount exceeds a configurable percentage threshold.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/disk-space-alert"
    },
    {
      "type": "job",
      "name": "dns-change-detector",
      "displayName": "DNS Change Detector",
      "description": "Daily DNS lookup for a list of domains and record types. Compares against a stored snapshot and alerts on any change. Catches accidental record deletions, registrar takeovers, and unauthorized DNS edits.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/dns-change-detector"
    },
    {
      "type": "job",
      "name": "documents-backup-s3",
      "displayName": "documents-backup-s3",
      "description": "Auto-upload important documents to S3 when new files appear",
      "version": "1.0.0",
      "category": "File Management",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/documents-backup-s3"
    },
    {
      "type": "job",
      "name": "downloads-cleanup",
      "displayName": "downloads-cleanup",
      "description": "Move files older than 30 days out of Downloads folder",
      "version": "1.0.0",
      "category": "File Management",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/downloads-cleanup"
    },
    {
      "type": "job",
      "name": "drawing-folder-watcher",
      "displayName": "Drawing Folder Watcher",
      "description": "Poll a Google Drive folder for new and revised construction drawings; daily/hourly digest by project. Detects file additions and modified-time changes via Sheet-backed state. (For machine shops with Gmail-attached drawings, use drawing-rev-watcher instead.)",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/drawing-folder-watcher"
    },
    {
      "type": "job",
      "name": "drawing-rev-watcher",
      "displayName": "Drawing Revision Watcher",
      "description": "Watches Gmail for drawing-revision emails. For each PDF attachment, AI reads the title block to extract part_number and rev. Looks the part up in a DrawingsTracker Sheet; if the rev is new, archives the old drawing to a Superseded folder, uploads the new drawing to the job's Drive folder, updates the tracker, and emails the estimator + production. Catches mid-production rev changes.",
      "version": "1.0.0",
      "category": "Quality",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "gmail",
        "drive",
        "sheets",
        "ai",
        "drawing",
        "revision",
        "change-control",
        "manufacturing",
        "machine-shop"
      ],
      "path": "jobs/drawing-rev-watcher"
    },
    {
      "type": "job",
      "name": "grades-monitor",
      "displayName": "grades-monitor",
      "description": "Check the school portal every afternoon, text you when new grades post",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/grades-monitor"
    },
    {
      "type": "job",
      "name": "gym-accountability",
      "displayName": "gym-accountability",
      "description": "If no workout logged by 8pm, text your buddy that you skipped",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/gym-accountability"
    },
    {
      "type": "job",
      "name": "image-batch-resizer",
      "displayName": "Image Batch Resizer",
      "description": "Trigger-file driven image resizer. When a new image lands in an inbound folder, generates thumbnail and web-size variants and moves the original to a processed folder.",
      "version": "1.0.0",
      "category": "File Management",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/image-batch-resizer"
    },
    {
      "type": "job",
      "name": "invoice-reminder",
      "displayName": "invoice-reminder",
      "description": "Check for overdue invoices and send payment reminders",
      "version": "1.0.0",
      "category": "Finance",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/invoice-reminder"
    },
    {
      "type": "job",
      "name": "invoice-reminder-sheets",
      "displayName": "Invoice Reminder (Sheets-driven, escalating)",
      "description": "Sheet-driven invoice reminder. Reads an InvoiceLog Sheet, sends personalized reminder emails for overdue invoices with escalating tone (friendly \u2192 follow-up \u2192 final), stamps each row to prevent duplicate chases. Replaces the thin CSV-driven invoice-reminder job that sent one generic email regardless of which invoice was overdue.",
      "version": "1.0.0",
      "category": "Finance",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "sheets",
        "gmail",
        "invoice",
        "reminder",
        "freelancer",
        "small-business",
        "accounts-receivable"
      ],
      "path": "jobs/invoice-reminder-sheets"
    },
    {
      "type": "job",
      "name": "job-listing-tracker",
      "displayName": "job-listing-tracker",
      "description": "Check job boards daily, email you new matches every morning",
      "version": "1.0.0",
      "category": "News & Information",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/job-listing-tracker"
    },
    {
      "type": "job",
      "name": "lease-renewal-reminder",
      "displayName": "Lease Renewal Reminder",
      "description": "Daily digest of upcoming tenant lease expirations in 90/60/30-day windows. Reads the Tenants Google Sheet and alerts the landlord/PM in time to negotiate renewal or list the unit.",
      "version": "1.0.0",
      "category": "Real Estate",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/lease-renewal-reminder"
    },
    {
      "type": "job",
      "name": "lien-deadline-reminder",
      "displayName": "Lien Deadline Reminder",
      "description": "Daily reminder of upcoming lien deadlines from a user-maintained Sheet. Reminds at 30/14/7/3/1-day windows. The tool does not calculate deadlines from lien rules \u2014 user enters dates from their attorney or lien-service vendor.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/lien-deadline-reminder"
    },
    {
      "type": "job",
      "name": "listing-change-watcher",
      "displayName": "Listing Change Watcher",
      "description": "Poll Gmail for MLS alert emails (price drops, status changes, new listings on saved searches). Classify each via Claude, log to a Google Sheet, and notify the agent. Inbound automation via Gmail.",
      "version": "1.0.0",
      "category": "Real Estate",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/listing-change-watcher"
    },
    {
      "type": "job",
      "name": "nas-health-ping",
      "displayName": "nas-health-ping",
      "description": "Ping your NAS every hour, text you if it goes down",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/nas-health-ping"
    },
    {
      "type": "job",
      "name": "outside-process-tracker",
      "displayName": "Outside Processing Tracker",
      "description": "Daily tracker for parts sent to outside vendors (heat treat, plating, anodize, NDT, paint). Reads an OutsideOps Sheet, sends throttled follow-up emails to vendors past their promised return date, flags upcoming returns for the receiving dock, and emails a digest to the owner. Pairs with the rfq-triage / coc-generator small-shop quartet.",
      "version": "1.0.0",
      "category": "Operations",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "sheets",
        "gmail",
        "machine-shop",
        "manufacturing",
        "supply-chain",
        "vendor",
        "outside-processing",
        "small-business"
      ],
      "path": "jobs/outside-process-tracker"
    },
    {
      "type": "job",
      "name": "parking-reminder",
      "displayName": "parking-reminder",
      "description": "Text you every Tuesday at 7pm to move your car for street sweeping",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/parking-reminder"
    },
    {
      "type": "job",
      "name": "photo-backup-gdrive",
      "displayName": "photo-backup-gdrive",
      "description": "Upload new photos from Pictures folder to Google Drive",
      "version": "1.0.1",
      "category": "File Management",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/photo-backup-gdrive"
    },
    {
      "type": "job",
      "name": "plant-watering-reminder",
      "displayName": "plant-watering-reminder",
      "description": "Send a notification every 3 days to water your plants",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/plant-watering-reminder"
    },
    {
      "type": "job",
      "name": "portfolio-status-digest",
      "displayName": "Portfolio Status Digest",
      "description": "Weekly portfolio roll-up \u2014 vacancies, late rents, upcoming lease renewals, and recent MLS alert volume. Reads three companion Sheets and produces a one-screen digest.",
      "version": "1.0.0",
      "category": "Real Estate",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/portfolio-status-digest"
    },
    {
      "type": "job",
      "name": "prescription-reminder",
      "displayName": "prescription-reminder",
      "description": "Text you 30 days after each refill to reorder your prescription",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/prescription-reminder"
    },
    {
      "type": "job",
      "name": "project-status-digest",
      "displayName": "Project Status Digest",
      "description": "Weekly per-project roll-up \u2014 open submittals, open RFIs, pending COs, recent activity. Reads three companion Sheets and produces a one-screen digest per active project.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/project-status-digest"
    },
    {
      "type": "job",
      "name": "quote-followup",
      "displayName": "Quote Follow-up (Daily Check-in)",
      "description": "Finds QuoteLog rows where status is \"quoted\" and the RFQ came in more than N days ago without customer reply, sends a polite check-in email, and stamps the row \"followed-up\" so it doesn't repeat. Runs once daily. Zero AI cost.",
      "version": "1.0.1",
      "category": "Sales",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "gmail",
        "sheets",
        "sales",
        "followup",
        "quoting",
        "machine-shop",
        "small-business"
      ],
      "path": "jobs/quote-followup"
    },
    {
      "type": "job",
      "name": "rent-payment-tracker",
      "displayName": "Rent Payment Tracker",
      "description": "Daily digest of past-due rent (3/7/14/30-day windows) from the RentRoll Google Sheet. Alerts landlord/PM only \u2014 never auto-sends to tenants. The landlord handles state-compliant notice + follow-up.",
      "version": "1.0.0",
      "category": "Real Estate",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/rent-payment-tracker"
    },
    {
      "type": "job",
      "name": "rfi-triage",
      "displayName": "RFI Triage",
      "description": "Poll a Gmail label for new RFIs, classify by trade/priority/cost impact via Claude, log to a Google Sheet, and notify the PM. Inbound automation via Gmail.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/rfi-triage"
    },
    {
      "type": "job",
      "name": "rfq-triage",
      "displayName": "RFQ Triage (Gmail \u2192 Sheets \u2192 Drive)",
      "description": "Triage incoming RFQ emails. AI-extracts customer/project/qty/material/processes/due, files attachments to a per-RFQ Drive folder, appends to a Sheets quote log, auto-replies to the customer in thread with a reference number, and notifies the estimator. Processes one RFQ per scheduled run.",
      "version": "1.0.2",
      "category": "Sales",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "gmail",
        "drive",
        "sheets",
        "ai",
        "rfq",
        "quoting",
        "machine-shop",
        "small-business"
      ],
      "path": "jobs/rfq-triage"
    },
    {
      "type": "job",
      "name": "rss-digest",
      "displayName": "rss-digest",
      "description": "Check your favorite blogs daily, AI summarizes new posts, emails one digest",
      "version": "1.0.0",
      "category": "News & Information",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/rss-digest"
    },
    {
      "type": "job",
      "name": "rss-digest-to-doc",
      "displayName": "RSS Digest \u2192 Google Doc Archive",
      "description": "RSS digest that appends each run to a growing Google Doc archive. Each day prepends a new dated section to the Doc; the email contains a link, not the bulk content. Builds a searchable reverse-chronological news archive.",
      "version": "1.0.0",
      "category": "News & Information",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "rss",
        "news",
        "digest",
        "docs",
        "archive",
        "daily",
        "ai"
      ],
      "path": "jobs/rss-digest-to-doc"
    },
    {
      "type": "job",
      "name": "s3-cleanup",
      "displayName": "S3 Cleanup",
      "description": "Delete S3 objects older than N days from a bucket prefix. Configurable retention; dry-run mode prints what would be deleted without removing. Daily summary of bytes freed.",
      "version": "1.0.0",
      "category": "Cloud",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/s3-cleanup"
    },
    {
      "type": "job",
      "name": "shop-status-digest",
      "displayName": "Shop Status Digest (Daily)",
      "description": "Once-daily plain-text digest of the shop's open quotes, rush queue, stale RFQs to chase, shipments ready for CoC, and CoCs sent today. Reads the QuoteLog and ShipLog Sheets maintained by rfq-triage and coc-generator. No AI \u2014 pure deterministic counting.",
      "version": "1.0.1",
      "category": "Operations",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "sheets",
        "digest",
        "dashboard",
        "daily",
        "machine-shop",
        "small-business",
        "owner"
      ],
      "path": "jobs/shop-status-digest"
    },
    {
      "type": "job",
      "name": "ssl-cert-expiration",
      "displayName": "SSL Cert Expiration Check",
      "description": "Daily check of SSL certificate expiration dates for a list of domains. Alerts when any certificate is within 30 days of expiring.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/ssl-cert-expiration"
    },
    {
      "type": "job",
      "name": "stock-portfolio-tracker",
      "displayName": "Stock Portfolio Tracker (Sheets-logged)",
      "description": "Daily portfolio tracker. Reads holdings from a \"Portfolio\" Sheet, fetches current prices from Yahoo Finance, appends a row per ticker to a \"Prices\" history tab, appends a daily summary to a \"Summary\" tab, computes total value + P&L, and emails a digest to the owner. Persistent history vs ephemeral stock-price-report.",
      "version": "1.0.0",
      "category": "Finance",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "stock",
        "portfolio",
        "finance",
        "investing",
        "sheets",
        "daily",
        "tracker",
        "yahoo-finance"
      ],
      "path": "jobs/stock-portfolio-tracker"
    },
    {
      "type": "job",
      "name": "stock-price-report",
      "displayName": "stock-price-report",
      "description": "Check stock prices at market close and email a portfolio summary",
      "version": "1.0.0",
      "category": "Finance",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/stock-price-report"
    },
    {
      "type": "job",
      "name": "sub-coi-expiration-tracker",
      "displayName": "Sub COI Expiration Tracker",
      "description": "Daily digest of subcontractor Certificate of Insurance expirations in 30/14/7-day windows. Reads the SubsCOI Google Sheet and alerts the office before a sub's coverage lapses.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/sub-coi-expiration-tracker"
    },
    {
      "type": "job",
      "name": "submittal-tracker",
      "displayName": "Submittal Tracker",
      "description": "Daily digest of pending submittals \u2014 aging by 14/21/28 days, plus items past their target return date. Reads SubmittalLog Google Sheet.",
      "version": "1.0.0",
      "category": "Construction",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/submittal-tracker"
    },
    {
      "type": "job",
      "name": "timesheet-reminder",
      "displayName": "timesheet-reminder",
      "description": "Email you every weekday at 8:45am to submit your timesheet",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/timesheet-reminder"
    },
    {
      "type": "job",
      "name": "timesheet-reminder-sheets",
      "displayName": "Timesheet Reminder (Sheets-driven, selective)",
      "description": "Sheet-driven timesheet reminder. Reads a Roster + TimesheetLog Sheet, sends a reminder ONLY to people who haven't submitted this week's timesheet and ONLY on their working days. Pairs with the timesheet-collector skill (which writes TimesheetLog rows). Replaces the static job that pinged everyone every weekday regardless of submission state.",
      "version": "1.0.0",
      "category": "Personal",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [
        "sheets",
        "gmail",
        "timesheet",
        "hr",
        "reminder",
        "roster",
        "weekly"
      ],
      "path": "jobs/timesheet-reminder-sheets"
    },
    {
      "type": "job",
      "name": "utility-usage-tracker",
      "displayName": "utility-usage-tracker",
      "description": "Pull smart meter data daily and log it for weekly review",
      "version": "1.0.0",
      "category": "Finance",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/utility-usage-tracker"
    },
    {
      "type": "job",
      "name": "weather-briefing",
      "displayName": "weather-briefing",
      "description": "Text you the weather forecast every morning at 7am",
      "version": "1.0.0",
      "category": "News & Information",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/weather-briefing"
    },
    {
      "type": "job",
      "name": "website-change-monitor",
      "displayName": "website-change-monitor",
      "description": "Check a webpage every hour and alert you on Slack/email if anything changes",
      "version": "1.0.0",
      "category": "News & Information",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/website-change-monitor"
    },
    {
      "type": "job",
      "name": "website-uptime-check",
      "displayName": "Website Uptime Check",
      "description": "HTTP GET check against a list of URLs. Job fails when any URL returns a non-success status code, triggering the alert subscriber.",
      "version": "1.0.0",
      "category": "DevOps",
      "vendor": "Blue Isle",
      "license": "MIT",
      "tags": [],
      "path": "jobs/website-uptime-check"
    }
  ]
}
