Claude Desktop · Scheduled agent

Run DCOS as an always-on account agent

Your extension gives Claude access to Salesforce and Elasticsearch when a session runs. To continuously discover updates on your accounts, combine background CRM sync with a scheduled Claude Routine — not a 24/7 daemon inside Claude.

Two layers: (1) macOS/Windows sync keeps Elasticsearch fresh every ~15 minutes. (2) Claude wakes on a schedule, reads your watchlist, compares deltas, researches the web, and saves notes.

What runs where

LayerAlways on?Role
Elasticsearch Yes Local or Elastic Cloud — account memory index
SF sync (sfdc-sync) Yes (optional) Pulls CRM changes into ES on a timer — no Claude needed
DCOS MCP extension No Claude starts it per chat or per Routine run
Claude Routine Scheduled Agent session: sync → search → Jina → brief → note

Claude Desktop does not keep an agent process running between sessions. “Always on” in practice means fresh data in the background plus automated agent runs on a cadence you choose.

Setup in three steps

  1. Install DCOS + extension Double-click the platform installer from the download page. Pick your role and account watchlist during setup — stored in ~/.config/dcos/accounts.yaml.
  2. Background Salesforce sync (macOS) Keep CRM data indexed even when Claude is closed.
  3. Schedule a Claude Routine Local routine with DCOS + Jina connectors; runs your discovery workflow on autopilot.

Step 2 — Background sync (macOS)

After install, enable launchd to sync Salesforce → Elasticsearch every 15 minutes:

cp launchd/com.elastic.dcos.sfdc-sync.plist.example \
  ~/Library/LaunchAgents/com.elastic.dcos.sfdc-sync.plist

# Edit paths in the plist to match your install location, then:
launchctl load ~/Library/LaunchAgents/com.elastic.dcos.sfdc-sync.plist

The plist ships inside the installer payload under launchd/, or in the source repo. Logs: /tmp/dcos-sfdc-sync.log

Windows / cron alternative

*/15 6-20 * * 1-5 source ~/.config/dcos/env.sh && \
  node /path/to/digital-chief-of-staff/scripts/sfdc-sync.mjs

Step 3 — Claude Routine

Create a Project (once)

Claude Desktop → Projects → new project → paste project instructions from the installer docs (claude/project-instructions.md in the repo). This gives every chat and routine the same MEDDPIC workflow.

New local routine

Cowork → Schedule (or Routines → New → Local):

SettingValue
ScheduleWeekdays 6:00 AM (add noon for midday pulse)
Connectorsdigital-chief-of-staff + Jina
ProjectYour DCOS project (recommended)

Prompt — paste into the routine

You are my Digital Chief of Staff for Elastic sales.

First run dcos_user_profile to load my persona and account watchlist.
Only research accounts on my watchlist unless I specify otherwise.

Steps — execute all before writing the brief:
1. dcos_sfdc_sync — refresh Salesforce into Elasticsearch
2. dcos_sfdc_list_opportunities with limit 100 — open pipeline on watchlist
3. For each watchlist account (or top 15 by close date):
   a. dcos_search — MEDDPIC context, recent blockers, prior briefs
   b. Jina parallel_search_web (tbs qdr:w): "<Account> news", leadership change, observability OR security
4. Compare against prior dcos_search notes — highlight MEDDPIC deltas since last run
5. dcos_connector_list — if Slack/KB configured, pull internal signals

Output — Executive Daily Brief (plain English):

# Executive Daily Brief — {territory}
**Updated:** {date/time}

## What matters today
## What to watch
## What this means for me
## Today's game plan
## Your priority actions today
## Sales + executive implications
## Deals at risk today
## Territory snapshot
## High-priority setups
## Elastic
## Rep handoffs

Rules:
- Ground all CRM numbers from dcos_sfdc_* tools only
- MEDDPIC terminology throughout
- After the brief, dcos_add_note summarizing material changes (source: dcos_scheduled_brief)

Enable unattended runs

Tool approvals: If DCOS tools are set to “Needs approval,” a scheduled routine will stall until you click approve on each tool call.

Claude Desktop → Settings → Extensions → digital-chief-of-staffOther tools → change from Needs approval to Allow automatically (or allow individually: dcos_sfdc_sync, dcos_search, dcos_sfdc_list_opportunities, dcos_add_note).

Requirements for local routines

What each run discovers

Test before scheduling

In a new chat (with DCOS + Jina enabled):

Run dcos_user_profile, then dcos_sfdc_sync, then scan my watchlist for
anything that changed in the last 24 hours vs prior dcos_search notes.
Summarize deltas only.

If that completes without manual tool approvals, your routine will run unattended.

When the laptop is closed

ApproachTradeoff
Local routine Full SF + ES access; requires Claude open and Mac awake
Cloud routine (Remote) Runs when laptop is off; cannot reach local SF — uses synced ES + Jina only
Elastic Cloud + server cron Move ES to Cloud; run sync on a VM — best for team-wide always-on data