Magnet Hub
A live map of Hermes — the autonomous operations layer running Magnet Co.
Hermes is the conductor that receives work through Linear, triages it to a domain, and routes it down an org chart of Heads, Managers and specialist agents — each backed by a versioned skill. This hub mirrors that reality straight from backup/, the one-way sync off the droplet, so anyone at Magnet can see how the stack is built, what it's doing, and where it's headed — without shell access to the box.
5
Services
15
Connectors
109
Skills
27
Agents
17
Cron jobs
Cost control
Everything that can run on the box runs on the box for $0/token. Frontier models are the one deliberate, metered exception.
Safety
No autonomous client-facing actions. Every output — a Linear issue, a drafted email — waits for a human to review and send it.
Transparency
One page for the whole team to see what Hermes is running, what it costs, what it's allowed to touch, and what's still being built.
Stack
One host, three containers, one paid dependency. Everything that can run locally runs locally at $0/token. Only frontier reasoning leaves the box.
DigitalOcean
Droplet · hermes-conductor
2 vCPU · 7.8 GB RAM · +4 GB swap · 160 GB
Docker · private loopback
Hermes
brain / orchestrator
gateway
Ollama
embeddings + basic reasoning
:11434
Qdrant
vector memory
:6333
Volume
/qdrant/storage
persisted
OpenRouter
Opus 4.8 / GPT-5.5 · frontier reasoning
off-box · paid · per-token
Private loopback / private network only — nothing exposed publicly
Usage & cost
OpenRouter spend and droplet efficiency at a glance. Panels render live once Hermes pushes a metrics snapshot — until then each is flagged no data connected.
—
USD / day
OpenRouter usage API — needs a cron pull into a cost snapshot
—
% utilization
DigitalOcean monitoring API or node_exporter — not yet wired
—
% utilization
DigitalOcean monitoring API or node_exporter — not yet wired
—
vectors
Qdrant memory_stats MCP tool — pending semantic_recall rollout
Containers & services
The three containers plus memory MCP and the single paid dependency. Connector status below is refreshed separately by Hermes.
| Service | Role | Port | Cost | Rollout | Status |
|---|---|---|---|---|---|
| Hermes | Brain / orchestrator — cron, remits, skills, drafts and routes work ~136 MB RAM (5 GB cap) gateway · $0 · self-hosted | gateway | $0 · self-hosted | Live | Healthy |
| Ollama | Local inference — embeddings + basic reasoning (triage, classification) nomic-embed-text · 768-dim 11434 · $0 · local CPU | 11434 | $0 · local CPU | Live | Healthy |
| Qdrant | Vector memory store — semantic recall with payload filters magnet_memory · int8 · on-disk · /qdrant/storage volume 6333 · $0 · self-hosted | 6333 | $0 · self-hosted | Live | Healthy |
| kb MCP | Memory read/write tools — semantic_recall, memory_upsert, memory_stats Wire semantic_recall into Hermes (rollout step 6) — · $0 | — | $0 | Planned | Unknown |
| OpenRouter | Frontier reasoning only — Opus 4.8 / GPT-5.5 / Sonnet Only outbound paid dependency — · Paid · per-token | — | Paid · per-token | Live | Healthy |
Host
One host, three containers, one paid dependency.
Name
hermes-conductor
Provider
DigitalOcean · nyc3
Compute
2 vCPU · 7.8 GB RAM · +4 GB swap
Disk
160 GB
DigitalOcean · nyc3
Docker · private loopback
Persisted volume
External
Private loopback / private network only — nothing exposed publicly
Resources
Constraints on the droplet today.
RAM
7.8 GB (~6 GB free)
Fine for all 3 containers with Qdrant quantization
vCPU
2
Real bottleneck — throttle embedding backfill, run overnight
Disk
160 GB
Ample — Qdrant volume + models are small
Principles
- Local-first, $0/token by default — only frontier reasoning is paid
- Nothing public — all local services bind to loopback / private network
- The box is the source of truth — this repo is a one-way backup
- Draft, never send — no autonomous client-facing actions
- Persistence is explicit — Qdrant on a mounted volume
Memory
Upgrading from FTS5 keyword search to semantic memory — retrieve by meaning, scoped to client and time window.
Write path
- 01Source doc (email, transcript, Notion, deliverable)
- 02Chunk → SHA-256 dedup
- 03Ollama /api/embed (768-dim)
- 04Qdrant upsert (vector + account_id, source_type, date, hash)
Read path
- 01semantic_recall(query, account_id?, source_type?, since?)
- 02Ollama embeds query → 768-dim vector
- 03Qdrant search + payload pre-filter
- 04Top-k chunks into Hermes context
Payload pre-filtering scopes recall precisely — e.g. pricing objections from a specific client in the last 90 days. Write path runs throttled overnight; CPU is the constraint, not RAM.
Connectors
External integrations across MCP, API-direct, and OAuth paths. Hermes will refresh this with live connector truth from the box.
| Connector | Path | Role | Status |
|---|---|---|---|
| Notion | MCPOAuth Workspace CRUD — accounts, delivery DBs, documentation | Workspace CRUD — accounts, delivery DBs, documentation | Unknown |
| Linear | OAuthOAuth 2.1 PKCE Primary intake — issues, agent sessions, project tracking | Primary intake — issues, agent sessions, project tracking | Unknown |
| Slack | MCPUser token Internal comms — search, read, post to allowed channels | Internal comms — search, read, post to allowed channels | Unknown |
| GitHub | MCPPAT Org-wide repos — issues, PRs, code, Actions | Org-wide repos — issues, PRs, code, Actions | Unknown |
| Google Workspace | MixedOAuth + service account Gmail, Calendar, Drive, Docs, Sheets — gavin@ primary | Gmail, Calendar, Drive, Docs, Sheets — gavin@ primary Multi-mailbox delegation stays API-direct | Unknown |
| Harvest | MCPAPI key Time tracking, projects, estimates, AR/invoices | Time tracking, projects, estimates, AR/invoices | Unknown |
| Plaid | MCPApp creds + Link tokens Bank balances, transactions, cash digest | Bank balances, transactions, cash digest | Unknown |
| Apollo | APIAPI key Prospecting — contacts, sequences, outreach | Prospecting — contacts, sequences, outreach | Unknown |
| Figma | MCPPAT Design files, nodes, comments | Design files, nodes, comments | Unknown |
| Google Analytics 4 | MCPService account Property reports, realtime, funnel analysis | Property reports, realtime, funnel analysis | Unknown |
| Google Search Console | MCPService account Search analytics, index inspection, sitemaps | Search analytics, index inspection, sitemaps | Unknown |
| Google Tag Manager | MCPService account Container audit — reads autonomous, writes draft-gated | Container audit — reads autonomous, writes draft-gated | Unknown |
| Vercel | OAuthOAuth 2.1 PKCE Deployments, projects, runtime logs | Deployments, projects, runtime logs | Unknown |
| Webflow | OAuthOAuth 2.1 PKCE CMS, pages, sites, assets, publish | CMS, pages, sites, assets, publish | Unknown |
| Perplexity | APIAPI key Grounded web research — Sonar models | Grounded web research — Sonar models | Unknown |
Skills catalog
109 skills Hermes can load, generated from backup/skills/**/SKILL.md frontmatter. Tap a skill to see what it does.
Magnet-specific business skills — the org chart's agents run on these.
| Skill | Description | Used by |
|---|---|---|
| Account Manager | Thin orchestrator for the value of scoped work at Magnet — client health, impact, renewal, and growth. Where the Project Manager owns whether work gets DONE, the Account Manager owns whether it was WORTH it and whether the relationship grows. Follows the RETENTION process (FSR-04) and calls existing sub-skills (client-health-score, qbr-auto-builder, performance-snapshot-updater, meeting-prep, call-debrief, scope-change-detector, retainer-cycle) as libraries. Runs in three modes: SINGLE-EMAIL (one relationship-level client inbound handed off by Hermes triage — renewal, dissatisfaction, scope-expansion, churn signal), MONTHLY CYCLE (1st of the month value pass), and ON-REQUEST (health check, QBR, renewal brief for a named account). Creates Linear work assigned to Gavin; drafts client replies to team@magnet.co and NEVER sends externally; never commits to new scope or pricing; never reports a renewal decision. Use when asked to run account-manager, run account manager, account pulse, check client health, build a QBR, write a renewal brief, read on an account, flag scope expansion, or when Hermes routes a client relationship email here. Trigger phrases: account-manager, account manager, run account manager, account pulse, client health, health check, QBR, renewal brief, renewal risk, churn risk, scope expansion, account review, client value. | — |
| Account Manager Monthly Reporting | Monthly per-client strategic reporting skill for the Account Manager. Produces two paired Notion deliverables for each active retainer client: (1) an Account Manager Briefing that justifies the retainer by summarizing recently completed work, honest challenges, improvement areas, where the client contact can help, retainer-fulfillment expansion, and a full-funnel website read, and (2) a Revenue Conversation Guide with exactly three plays, unblock asks, and a partnership case, designed for the Magnet operator to have a higher-value monthly conversation with the primary client contact. Strategic layer above `project-manager` (tactical) and complementary to `qbr-auto-builder` (quarterly). Use this every month per active client, or on request. Trigger phrases: account manager monthly report, monthly client briefing, revenue conversation guide, retainer justification report, monthly account report, account manager pass for [client]. | — |
| Acquisition Workflow | Magnet's client acquisition and networking outreach loop. Covers LinkedIn networking outreach (connection requests with Notion Contact Status tracking), prospect research and enrichment, cold email drafting, follow-up cadence (4-touch Day 0/3/7/14), weekly pipeline review, and inbound nurture. Use when sending LinkedIn connection requests, approaching networking contacts, researching prospects, drafting cold emails, following up on outreach, reviewing pipeline health, or handling inbound leads. | Sales Manager |
| Auto Prospector | Apollo-first cold outreach prospecting system for Magnet. Three modes - Apollo Mode (fast bulk search>reveal>sequence), Deep Manual Mode (targeted research>domain search>verify>sequence), and Industry Vertical Mode (create dedicated sequences with industry-specific A/B email copy). Finds and enriches prospects via Apollo API, creates contacts, loads into sequences, and monitors for positive replies to promote into Notion Pipeline DB. Use when asked to find new prospects, load prospects into Apollo, run outreach, seed the sequence, fill the pipeline, restart cold outbound, create a vertical sequence, target a specific industry, check for replies, or manage the cold email pipeline. | Sales Manager |
| Business Orchestration | Patterns for organizing AI agents to mirror business structure — Head → Manager → Skills hierarchy with practical implementation approaches | — |
| Client Onboarding | Comprehensive client onboarding playbook and Linear project setup automation for Magnet Co. Use when onboarding a new client, inheriting a client from another agency, or auditing whether an existing client's operational setup is complete. Covers internal comms, workspace provisioning, access collection, data tracking, reporting baseline, Watchdog monitoring registration, client-facing setup, final handoff verification, and automated Linear project issue generation with sub-issues. Reference playbook with flexible per-client toggling. Creates a Cortex wiki page for the new client during onboarding. | Hiring Manager |
| Computer Use | Drive the user's desktop in the background — clicking, typing, scrolling, dragging — without stealing the cursor, keyboard focus, or switching virtual desktops / Spaces. Cross-platform: macOS, Windows, Linux. Works with any tool-capable model. Load this skill whenever the `computer_use` tool is available. | — |
| Content Marketing | End-to-end thought leadership content engine. Drafts, posts, and measures LinkedIn articles AND cross-publishes each piece as an MDX blog post on the magnet-website repo. Owns daily drafting with theme rotation, Notion Campaigns DB entries, pre-approved batch posting, blog cross-posting to magnet.co, 3-day performance scoring, and a self-improvement loop that biases future drafts from past performance. Agent-agnostic. Use when asked for a LinkedIn article, blog post, thought leadership content, batch-prepared posts, when the daily draft, batch poster, or performance tracker cron fires, or when reviewing post performance. Replaces linkedin-daily-article. Trigger phrases include LinkedIn post, blog post, thought leadership, draft article, post performance, content marketing, run content marketing, daily draft, batch posts. | Marketing ManagerSocial Media Specialist |
| Deal Close Trigger | Fires when a Pipeline entry is marked "6. Closed". Creates or promotes an Account entry in the Accounts DB, carries over the Contacts relation and Proposals relation, sets Client Since to today, links the originating Pipeline entry, and flips Contact Type from "Prospect Contact" to "Client Contact". Posts a Slack confirmation and prompts client-onboarding. Use when a deal closes, when asked to promote a pipeline entry to account, or when setting up a new client after winning a deal. Trigger phrases include deal closed, mark as closed, won the deal, new client, promote to account, close the deal. | Sales Manager |
| Dogfood | Exploratory QA of web apps: find bugs, evidence, reports. | — |
| Email Log Archiver | Agent-only historical store of client email threads. Scans gavin@magnet.co, team@magnet.co, and andrew@magnet.co for new external messages, filters to client-only conversations using the shared client registry, deduplicates by Gmail thread ID, and upserts a structured record per thread into the Notion Email Log DB with an Accounts relation. No Slack, no Linear, no notifications, no redaction. Other skills (PM, client-health, meeting-prep) read from the Email Log DB instead of re-querying Gmail. Use when asked to run email archive, sync email log, backfill threads for a client, refresh email history, or when the weekday 4x/day cron fires. Trigger phrases include email log archiver, email archive, sync email log, run email archiver, refresh email history, backfill email threads. | Project Manager |
| Finance Manager | Single owner of Magnet Co's books — money in (Harvest invoices, AR sync, late-invoice chase, pass-through billing) and money out (Plaid weekly card sweep, monthly Chase reconciliation, Notion Banking ledger import, on-demand spend audit). Replaces harvest-invoice-sync, late-invoice-monitor, client-expense-tracker, expense-management, corporate-expense-alerts, and banking-import. Use when asked to run finance manager, sync invoices, chase overdue invoices, run weekly card sweep, run monthly close, reconcile expenses, bill pass-through, import bank CSVs, audit software spend, check AR aging, or when any finance cron fires (Thu 10am ET, Fri 8am PT, Fri 10am ET, Mon 7am ET, 1st 9am ET). Trigger phrases: finance manager, run finance, AR, AP, accounts receivable, accounts payable, invoices, expenses, reconcile, sync invoices, chase overdue, weekly card sweep, month-end close, bill pass-through, import bank statements, audit spend, expense audit, leakage check. | Finance ManagerAccounts ReceivableAccounts Payable |
| Hiring Manager | End-to-end hiring loop for Magnet Co. Owns job post writing, free LinkedIn listings, candidate intake (LinkedIn, email, careers form), role-specific screeners for non-technical roles plus a universal hard-problem screener for all engineering roles, identity-field enrichment, Name-Based Offshore Filter, twice-weekly review list (Tue + Thu 9am ET), drafted rejections for approval, auto-scheduled interviews, and Granola/Meet filing. Uses Linear (Operations team) as a working surface like project-manager does: one OPS project per open role, a full-lifecycle issue per candidate whose status mirrors the Notion Stage, interview rounds as sub-issues, and periodic Linear project updates per role as the status surface. Friendly candidate email; generic rejections. Trigger phrases: hiring, hiring manager, open a role, screen applicants, send screener, review candidates, schedule interview, R2 interview, send rejection, file the interview, post job, repost job. | Hiring Manager |
| Inbound Lead Capture | Monitors the Notion Website Enquiries DB hourly for new form submissions from magnet.co. Enriches contacts via Apollo and web search, scores against ICP, creates Pipeline DB entries with deal value estimates, drafts personalized response emails in Gmail, and alerts Slack. Use when checking for new inbound leads, processing website enquiries, or when the hourly inbound lead capture cron fires. | Sales Manager |
| Lead Reengagement Audit | Periodic audit of Website Enquiries and Pipeline DBs to identify stale leads worth re-engaging. Filters spam and service sellers, cross-references Gmail for outreach history, assesses deal health, and builds re-engagement plans with drafted follow-ups. Use when asked to check for cold leads, audit the pipeline for re-engagement, find leads that went quiet, review inbound submissions for missed opportunities, or run a periodic pipeline health check. Trigger phrases include re-engage leads, cold lead audit, check for stale leads, missed opportunities, pipeline re-engagement, follow up on old leads, check inbound leads. | Sales Manager |
| Linear Issue Hygiene | Mandatory Linear issue creation and update standards for Magnet Co. Universal dependency loaded before ANY skill that creates, updates, or comments on Linear issues. Enforces four non-negotiable rules: status is Todo (never Backlog) on creation, priority is never set, due date is always set, and all context lives inline in the description (no "see Notion doc" link-outs). Use when creating a Linear issue, updating a Linear issue, drafting a task, filing a bug, assigning work, scoping a project into Linear, or whenever any other skill produces Linear writes. Trigger phrases include create Linear issue, file Linear, new task, PROD-XXX, assign to, Linear hygiene, Linear standards, draft a ticket, log a bug, scope into Linear, hand off via Linear, create sub-issue, parent issue, Linear cleanup. | Hiring ManagerProject ManagerBrand StrategistGTM EngineerFull-Stack EngineerQA EngineerDevOps EngineerPaid Media SpecialistSEO SpecialistSocial Media SpecialistCreative ProducerCRO SpecialistLifecycle / CRM Specialist |
| Linkedin Post Engagement | Draft genuine, human LinkedIn comments on posts from friends and connections. Use when the user shares a LinkedIn post (screenshot or link) and wants help writing a reply that feels natural, elevates the poster's credibility, and shows local or industry awareness. Also use when the user asks to comment on, reply to, or engage with a LinkedIn post. Covers comment drafting, angle selection, and rotation tracking. Never posts without explicit approval. | Marketing Manager |
| Magnet Formatting Standards | Mandatory Magnet writing style and voice spec for all content produced for Magnet Co. Universal dependency, load before generating ANY written output: LinkedIn posts, articles, emails (cold/warm/retention/internal), client threads, proposals, RFPs, case studies, Slack, Linear comments, Notion pages, reports, briefs, code comments, candidate outreach. Enforces the five-writer voice blend (Hormozi dominant), zero-tolerance word rules (universal em dash ban, no hedges, no throat-clearing, no adverb padding, Germanic over Latinate, concrete nouns), structural moves (verdict opener, parallel triad, consequence ladder, labeled binary, aphoristic landing), per-surface templates, canonical signature blocks, the team@magnet.co cc rule, and the pre-output checklist. Replaces gavin-format and email-writing. Use when writing, drafting, formatting, or producing any deliverable. | Hiring ManagerProject Manager |
| Marketing Manager | Master orchestrator for Magnet's own marketing. Single entry point that runs Magnet's content engine, website improvement work, LinkedIn engagement, and local Cincinnati event prospecting through one coordinated loop, with every piece of work tracked as a Linear issue under the Magnet Marketing initiative on the Acquisition team. Calls content-marketing, linkedin-post-engagement, and networking as sub-skills. Runs 1x daily weekdays at 7:15am ET with quieter Saturday and Sunday passes. Use when asked to run marketing manager, run marketing, check marketing pipeline, draft today's LinkedIn post, queue engagement comments, find local events to attend, audit website improvement backlog, or review marketing weekly digest. Trigger phrases include marketing manager, run marketing manager, marketing cron, marketing pulse, magnet marketing, marketing review, marketing weekly, marketing cycle. | — |
| Meeting Prep | Automated meeting preparation for Magnet Co client meetings. Builds client-shareable meeting notes in the global Notion Meeting Notes DB by gathering intelligence from Calendar, Slack, Linear, GitHub, Email Log, and Harvest (billing). Notes are designed to be presented on-screen during calls and shared with clients afterward. Internal-only context (billing, margin, delivery sentiment) is kept in a collapsed toggle that is excluded from the shareable note. Runs in two passes - initial prep (8 hours before) and refresh (20 minutes before) to capture last-minute activity. Use when preparing for any client meeting or when the recurring meeting prep task fires. Reads Client Profile from the Account page body and prior meeting history from the global Meeting Notes DB filtered by Accounts relation. | Hiring ManagerAccount ManagerDiscovery & Research Strategist |
| Networking | Magnet's local AI networking loop. Finds, researches, qualifies, and reaches out to Cincinnati/tristate people building interesting things in AI and agentic systems, then tracks the relationship to a meeting. Full standalone loop: discovery, enrichment, Notion Contacts DB entry, LinkedIn connection outreach (Englishman-in-Cincinnati angle), status tracking, and meeting-prep handoff. Use when asked to find local AI people to meet, resume the AI specialist outreach, network locally, source people like Patrick Smith, build the networking pipeline, send connection requests, log a new networking contact, or check networking status. Trigger phrases include networking, find local AI people, resume outreach, meet people in the AI space, networking contact, connect with, source local builders, networking pipeline, who should I meet, log a contact, networking status. | Marketing Manager |
| Performance Snapshot Updater | Monthly skill that appends a single performance row to each active client's Performance Snapshot report in the global Notion Reports DB (one page per client, with Report Type = Performance Snapshot and Accounts relation). Pulls organic traffic, keyword positions, Core Web Vitals, PPC metrics, and billable hours from GA4, Google Search Console, Ahrefs, Google Ads, PageSpeed Insights, and Harvest. Creates the page if it doesn't exist. Runs on the 1st of each month. Use when asked to update performance snapshots, run the monthly metrics pull, check performance trends, or append monthly stats for a client. | Account Manager |
| Perplexity Research | Horizontal web-grounded research capability for any Hermes specialist, powered by the Perplexity Sonar API (sonar, sonar-pro, sonar-reasoning-pro, sonar-deep-research). Use whenever a task needs current, cited, real-world information beyond the box's connected data sources — competitor and market research, fact-checking, SERP and intent analysis, prospect and company background, industry trends, or any 'what's the latest on X' question. Returns a synthesized answer plus real source URLs. Reads PERPLEXITY_API_KEY from the box; no per-search vendor cost setup needed. | — |
| Pipeline Tracker | On-demand pipeline health check for Magnet. Reads the Notion Pipeline DB, flags stale deals, surfaces follow-up tasks based on the 4-touch cadence (Day 0/3/7/14), and summarizes pipeline state by stage. NOTE - Daily pipeline digest is handled by morning-acquisition-sweep. This skill is for on-demand pipeline checks only. Use when the user asks for a pipeline check, pipeline status, deal health, or follow-up reminders on demand. Compounds with acquisition-workflow and sales-call-prep. | Sales Manager |
| Project Manager | End-to-end PM orchestrator for Magnet. Runs twice daily on weekdays (7 AM ET full, 2 PM ET intraday pulse) and is the single entry point that takes raw client signal - emails, attached assets, scope mentions, replies, calendar events, Linear movement - and translates it into correctly structured Linear work organized by initiative → project → customer request → issue, neatly filed Notion resources, and drafted client replies. Status surfacing happens through canonical Linear project updates written **daily on every active project** (morning run) plus an optional follow-up update at 2 PM when material change accumulated since morning, read via Linear Pulse - not Slack. Slack is reserved for essential, urgent, same-day-action alerts only. Portable - any team member can run it with access to the connected accounts. No local files, no per-operator state. Trigger phrases include 'pm', 'run pm', 'pm cron', 'run pm cron', 'pm pulse', 'pm briefing', 'project manager', 'project-manager', 'run project manager'. | Project Manager |
| Qbr Auto Builder | Auto-generates Quarterly Business Review Notion pages for retainer clients by pulling data from GA4, Search Console, Ahrefs, and Linear, then notifying Gavin with a review link. | Account Manager |
| Reddit Mining | Mine Reddit for buying-intent signals in Magnet's service verticals (web design, SEO, PPC, branding, digital marketing). Searches target subreddits for posts expressing recommendation-seeking, agency dissatisfaction, platform comparison, and active purchase intent. Qualifies, enriches, drafts outreach across three tracks (Reddit comment, DM, direct email), and logs leads to the Notion Pipeline DB. Use when asked to mine reddit, check reddit for leads, reddit prospecting, find leads on reddit, run the reddit pipeline, or when the daily/weekly cron fires. | Sales Manager |
| Retainer Cycle | Parameterized retainer cycle management. Use for Directions Group, WSI, NCTC TOMs, Vitis Tech, Allied Springbok, or any future retainer client. Trigger phrases: "Directions retainer", "run Directions retainer", "Directions cycle", "WSI retainer", "run WSI retainer", "WSI cycle", "NCTC retainer", "NCTC TOMs retainer", "run NCTC retainer", "NCTC cycle", "Vitis retainer", "run Vitis retainer", "Allied retainer", "run Allied retainer", "retainer cycle", "run retainer", "create retainer tasks". | Account Manager |
| Rfp Response | Approval-gated proposal drafting skill for Magnet Co. Picks up an inbound RFP that the project-manager cron has already added to the Pipeline (with a thesis, win strategy, and angle developed at that step), does the deeper RFP digest and organization research needed to build, develops the proposal thesis into a full draft, and presents that draft INLINE as text for Gavin's review. Only on Gavin's approval does it push the proposal into the Notion Proposals DB linked to the existing Pipeline entry. Never auto-creates the Proposal entry before approval, never creates the Pipeline entry (PM owns that), never sends anything externally. Trigger phrases include rfp, respond to rfp, win this rfp, rfp response, draft the proposal, build the proposal for this rfp, write the proposal, proposal for this prospect. | Sales Manager |
| Sales Call Prep | Prepare for Magnet Co sales calls — discovery, primer, demo, proposal, and QBR meetings. Builds a prep brief using Magnet's value offering (brand, web, SEO, PPC), context-loss positioning, 8-category objection framework, Primer call script structure, proof points, and pricing tiers. Use when asked to prep for a sales call, get ready for a client meeting, prepare for a prospect call, or build a meeting brief. | Sales Manager |
| Sales Hiring | Find, vet, and engage fractional sales candidates for Magnet Co. Covers candidate sourcing, enrichment, Notion contact creation, outreach drafting, reply monitoring, and screening. Use when asked to find a salesperson, hire a sales partner, find a BD rep, source fractional sales candidates, check sales candidate replies, or screen a sales candidate. | Hiring Manager |
| Sales Manager | Single owner of Magnet Co's revenue funnel — every motion that converts a stranger into a signed client. Twice-daily orchestrator (7:30 AM ET + 2 PM ET weekdays) that absorbs inbound capture, cold outbound (Apollo + Reddit), follow-up cadence, pipeline hygiene, RFP triage, meeting prep, and deal-close promotion into one master cron with one consolidated Slack digest. Replaces morning-acquisition-sweep. Calls existing sub-skills (auto-prospector, inbound-lead-capture, touchpoint-cadence, pipeline-tracker, acquisition-workflow, lead-reengagement-audit, rfp-response, sales-call-prep, deal-close-trigger, reddit-mining) as libraries; never duplicates their logic. Use when asked to run sales-manager, run sales, sales cron, sales pulse, morning sales sweep, afternoon sales sweep, full pipeline run, run the funnel, check sales status, sales briefing. Trigger phrases: sales-manager, sales manager, run sales, sales pulse, sales briefing, run the funnel, pipeline run. | — |
| Scope Change Detector | Monitors client emails and Slack for scope-expansion language and creates draft Scope Log entries in the client's Notion Resources DB for Gavin to confirm or dismiss. Catches "can you also", "one more thing", "while you're in there", "real quick", and similar phrases that signal unscoped work requests. Runs as part of the PM daily ops workflow and on-demand. Use when checking for scope creep, auditing a client's scope log, or when asked to flag scope changes, detect new asks, or review what clients have requested beyond the original scope. | Account Manager |
| Seo Keyword Research | Free keyword and SEO research for Magnet and its clients using only zero-cost, already-connected sources: Google Search Console (real own-site query data), Google Ads Keyword Planner (search volume, competition, CPC bids for any keyword), and Perplexity Sonar (SERP landscape, intent, competitor content). Use when asked to research keywords, find search volume, assess keyword difficulty/competition, discover keyword ideas, analyze what a site ranks for, map search intent, or size an SEO opportunity. Do NOT use Similarweb, Ahrefs, or Semrush — their APIs are gated behind paid plans. | — |
| Seo Site Analysis | Run an ad-hoc SEO analysis of any website and post the findings to a Slack channel. Load and self-select whenever a task, Linear issue, or request says something like 'run an SEO analysis of DOMAIN', 'ad hoc SEO analysis of URL', 'SEO audit for SITE', or 'analyze the SEO of URL and post to CHANNEL'. Parameterized by a target domain/URL and a destination Slack channel. Produces a prioritized top-5 SEO opportunity list (on-page + content gaps + technical wins) using a public crawl and Perplexity Sonar SERP research, optionally enriched with Google Search Console and Google Ads Keyword Planner when available. Posts a DRAFT to the named Slack channel and comments the link back on the invoking Linear issue. Draft-only: never creates or assigns downstream work issues unless explicitly told. | — |
| Skill Evolution | Approach for continuously improving and evolving skills through real-world use, treating existing skills as starting points rather than gospel | — |
| Slack Formatting | Format any message for Slack so it renders cleanly. Load this BEFORE composing or posting ANY Slack message (conversations_add_message, chat.postMessage, or any Slack MCP post) — digests, tables, reports, briefs, alerts, status updates. Slack does NOT support Markdown tables, double-asterisk bold, headers, or many Markdown features; using them produces broken walls of text. Covers Slack mrkdwn rules, the code-block technique for aligned tables, and a formatter script that converts Markdown/tables into Slack-safe output. | — |
| Touchpoint Cadence | Daily outbound cadence engine for Magnet Co. Scans the Pipeline DB every morning, identifies prospects due for a touchpoint based on stage-specific cadence rules, drafts personalized emails in Gmail, updates Pipeline DB tracking fields (Last Touchpoint, Touchpoint Count, Next Action, Next Action Date), and posts a Slack digest. Targets 25 outreach emails per day across follow-ups, re-engagements, and new cold touches. Use when the daily cron fires, when asked to run the cadence, check outbound status, draft prospect emails, run the touchpoint engine, check follow-ups, or queue outreach. Trigger phrases include touchpoint cadence, run cadence, outbound engine, draft emails, queue outreach, prospect follow-ups, re-engage lost leads, pipeline cadence, daily outbound. | Sales Manager |
| Yuanbao | Yuanbao (元宝) groups: @mention users, query info/members. | — |
Agent hierarchy
3 Heads (triage) · 6 Managers (orchestrators) · 17 specialists = 26 remits. Source: backup/org/AGENTS.md. Tap any node to inspect it.
Operations
Acquisition
Delivery
Cron schedule
17 jobs defined, 0 currently enabled. Generated from backup/cron/jobs.json (snapshot Jul 6, 2026, 7:09 PM).
| Job | Schedule | Last run | State | Status |
|---|---|---|---|---|
Apollo Reply Monitor — · agent · deliver: slack:C055VM59NBX 0 9-17/2 * * 1-5 Last run: Jul 6, 2026, 1:02 PM | 0 9-17/2 * * 1-5 | Jul 6, 2026, 1:02 PM | paused | Healthy |
Apollo Sequences Daily Load — · agent · deliver: slack:C055VM59NBX 0 9 * * 1-5 Last run: Jul 6, 2026, 5:09 AM | 0 9 * * 1-5 | Jul 6, 2026, 5:09 AM | paused | Healthy |
Daily Prospecting Engine Auto Prospector · agent · deliver: slack:C055VM59NBX 0 8 * * 1-5 Last run: Jul 6, 2026, 4:19 AM | 0 8 * * 1-5 | Jul 6, 2026, 4:19 AM | paused | Healthy |
finance-ar-chase Finance Manager · agent · deliver: slack 0 12 * * 1 Last run: Jul 6, 2026, 8:04 AM | 0 12 * * 1 | Jul 6, 2026, 8:04 AM | paused | Healthy |
finance-ar-sync Finance Manager · agent · deliver: slack 0 12 * * 1 Last run: Jul 6, 2026, 8:12 AM | 0 12 * * 1 | Jul 6, 2026, 8:12 AM | paused | Healthy |
finance-client-ingest Finance Manager · agent · deliver: slack 0 12 * * 1 Last run: Jul 6, 2026, 8:08 AM | 0 12 * * 1 | Jul 6, 2026, 8:08 AM | paused | Healthy |
finance-monthly-close Finance Manager · agent · deliver: slack 0 12 * * 1 Last run: Jul 6, 2026, 8:05 AM | 0 12 * * 1 | Jul 6, 2026, 8:05 AM | paused | Healthy |
finance-payments-sweep Finance Manager · agent · deliver: slack 0 12 * * 1 Last run: Jul 6, 2026, 8:04 AM | 0 12 * * 1 | Jul 6, 2026, 8:04 AM | paused | Healthy |
finance-plaid-sync Plaid_sync.sh · script · deliver: local 0 10 * * 1,3,5 Last run: Jul 6, 2026, 6:00 AM | 0 10 * * 1,3,5 | Jul 6, 2026, 6:00 AM | paused | Healthy |
finance-weekly-sweep Finance Manager · agent · deliver: slack 0 12 * * 1 Last run: Jul 6, 2026, 8:03 AM | 0 12 * * 1 | Jul 6, 2026, 8:03 AM | paused | Healthy |
linear-agent-session-gate Linear_agent_session.sh · script · deliver: local Script not found: /root/.hermes/scripts/linear_agent_session.sh every 5m Last run: Jul 6, 2026, 7:05 PM | every 5m | Jul 6, 2026, 7:05 PM | paused | Down |
pm-full-run Project Manager · agent · deliver: slack 0 11 * * 1-5 Last run: Jul 3, 2026, 7:09 AM | 0 11 * * 1-5 | Jul 3, 2026, 7:09 AM | paused | Healthy |
pm-intraday-pulse Project Manager · agent · deliver: slack 0 18 * * 1-5 Last run: Jun 30, 2026, 2:00 PM | 0 18 * * 1-5 | Jun 30, 2026, 2:00 PM | paused | Healthy |
Sales Manager - Afternoon Pulse Sales Manager · agent · deliver: slack:C055VM59NBX 0 18 * * 1-5 Last run: Jul 2, 2026, 2:01 PM | 0 18 * * 1-5 | Jul 2, 2026, 2:01 PM | paused | Healthy |
Sales Manager - Morning Sweep Sales Manager · agent · deliver: slack:C055VM59NBX 30 11 * * 1-5 Last run: Jul 3, 2026, 7:40 AM | 30 11 * * 1-5 | Jul 3, 2026, 7:40 AM | paused | Healthy |
Touchpoint Cadence Engine Touchpoint Cadence · agent · deliver: slack:C055VM59NBX 0 12 * * 1-5 Last run: Jul 6, 2026, 8:06 AM | 0 12 * * 1-5 | Jul 6, 2026, 8:06 AM | paused | Healthy |
Weekly Sequence Performance Review Auto Prospector · agent · deliver: slack:C055VM59NBX 0 9 * * 1 Last run: Jul 6, 2026, 5:18 AM | 0 9 * * 1 | Jul 6, 2026, 5:18 AM | paused | Healthy |
Routing contract
The single, deterministic path every human-initiated request follows. Source: backup/org/ROUTING.md.
01
Intake
Linear delegation (Slack later)
02
Triage
Head classifies the domain — assign only
03
Orchestrate
Domain Manager runs its Process
04
Specialise
Manager invokes specialists internally
05
Surface
Drafted Linear issue or email, human review
The hard gate
A human never invokes a specialist directly. Every request is triaged to a domain, handed to that domain's Manager, and only the Manager reaches for specialists.
Draft, never send
Every output is a reviewable artifact — a Linear issue assigned to a human, or a client email drafted to team@magnet.co. External send is never autonomous.
Rollout / changelog
Memory layer and infrastructure sequence from the architecture doc — what's live, in progress, and still planned.
- 1Repo repurposed as one-way backup + human docsLive
- 2Daily backup live — hermes_backup.sh → backup/In progress
- 3Add swap (4 GB) to the dropletPlanned
- 4Stand up Qdrant + Ollama containers (localhost, volume mounted)Live
- 5Backfill memory — throttled, overnight, SHA-256 dedupPlanned
- 6Wire semantic_recall MCP tool into HermesPlanned
- 7Webhook-driven incremental ingestionPlanned
- 8Reasoning router — basic to Ollama, frontier on OpenRouterPlanned