Use agents to decide and coordinate
Plan jobs, classify messy text, prepare briefs, draft communications, surface exceptions and improve playbooks.
Pre-SaaS · Local-first · Twenty-client capacity
A practical service-delivery architecture using Hermes Agent as orchestrator, Obsidian as the human control room, PostgreSQL as canonical memory, local models for repetitive work, and a frontier API only when complexity justifies it.
The governing decision
Hermes, Obsidian and the language models should coordinate and interpret the operation. They should not become the canonical CRM, the compliance ledger, or an uncontrolled outreach engine.
Plan jobs, classify messy text, prepare briefs, draft communications, surface exceptions and improve playbooks.
Keep people, properties, permissions, campaigns, activities, scores and audit history in a structured transactional store.
Outreach, record mutation, deletion, exports and cross-client access must pass deterministic rules and scoped permissions.
Reference architecture
Client manuals, operating notes, campaign decisions, briefs and exceptions.
Schedules workflows, invokes tools, creates queues and escalates uncertainty.
Cheap batch classification locally; complex reasoning through API escalation.
ETL, matching, suppression, scoring, validation and CRM synchronisation.
Canonical records, audit logs, imports, documents and tenant isolation.
Division of responsibility
Agents do not independently mass-send, erase records, decide consent, share tenant data or scrape arbitrary sources.
The five service engines
Import past vendors, buyers, appraisals, open-home attendees, withdrawn listings, lost listings and neglected enquiries. Clean, classify and convert them into approved call and nurture queues.
Use properly licensed ownership and property data to identify long-held properties, absentee owners, portfolio owners, withdrawn listings and relevant life-cycle signals.
Match active buyer requirements against properties and known owners, creating a concrete reason for the agency to initiate a conversation.
Move every lead through explicit states—from unknown and engaged through appraisal, likely seller, appointment, listing, nurture or suppression.
Deliver a daily brief containing top prospects, neglected opportunities, seller signals, buyer matches, unanswered replies and recommended actions.
Every outbound action checks relationship, consent source, permitted channel, suppression status, Do Not Call status, client exclusions and frequency limits.
Operating efficiency
Phone formatting, date parsing, address matching, deduplication, territory filters, suppression, arithmetic scores and record validation should be ordinary software.
Run repetitive language work on a local 14B–32B model. Send only difficult, ambiguous or strategically important work to the frontier model.
Use one orchestrator, tenant-scoped credentials, isolated schemas, stateless workers and a central queue instead of twenty continuously running agents.
Correct routing can avoid sending 80–95% of routine records to the expensive model while improving reproducibility and auditability.
Offline operating mode
The system can keep sensitive transformation and classification local, but production prospecting still requires controlled connections for licensed data, CRM sync, suppression washing, email, SMS, calls and reporting.
Pull approved data into encrypted staging through source-specific connectors.
Normalise, classify, match and score without exposing the full dataset to remote models.
Produce a contact queue that passes compliance rules and human review.
Send only approved actions through audited channel-specific integrations.
Write activity, evidence, outcomes and suppression events into the audit trail.
Purge temporary data and exports according to documented retention policy.
Machine recommendation
One capable workstation can support twenty clients because the workload is queued, most transformations are deterministic, and language-model jobs can run in batches.
Indicative build target: AUD $3,500–$5,500.
Choose this when simplicity, noise and power use matter more than maximum stack flexibility.
Twenty-client economics
Twenty clients with 5,000 historical contacts each, 2,000 refreshed property prospects each month and 1,000 active analysed contacts each can be handled comfortably by PostgreSQL and queued workers.
Licensed property data, contact enrichment, telephony, SMS, email infrastructure, compliance, onboarding, CRM integration and human appointment-setting will cost more than inference.
Canonical data model
A person may own multiple properties; a property may have multiple owners; and the same person may be known to multiple agencies. Each agency relationship, permission and suppression status remains separately controlled.
Implementation sequence
Build import, cleaning, note classification, scoring, approved call lists, outcome capture and weekly ROI reporting.
Integrate licensed property data, territory segmentation, buyer matching, suppression controls, letters and compliant call queues.
Add tenant isolation, secret management, queueing, dashboards, billing metrics, onboarding, monitoring and full audit history.
Productise stable ingestion, lead states, compliance rules, orchestration, opportunity dashboards and attribution reporting.
Recommended build
Hermes orchestration + PostgreSQL canonical database + Obsidian control room + a 14B–32B local model + API escalation + licensed data connectors.