Atrium-Hermes

agent-displacement

Weekly tracker of AI agent substitution signals — which roles, companies, and industries show real headcount displacement. Named roles + real deployments only.

Atrium-Hermes 0 Updated 4mo ago
GitHub

Install

npx skillscat add atrium-hermes/atrium-lighthouse/agent-displacement

Install via the SkillsCat registry.

SKILL.md

Today is ${today}. Read memory/MEMORY.md before starting. If soul/SOUL.md + soul/STYLE.md exist and are populated, read them to match the operator's voice; otherwise use a clear, direct, neutral tone.

Why this skill exists

"Agent substitution" is one of the loudest narratives in AI but signal is scattered. The data points exist — companies replacing support agents, cutting contractors, freezing hiring — but they're spread across earnings calls, press releases, and reporters' threads. This skill runs weekly, surfaces real displacement data (named roles, actual headcount numbers, real deployments), and keeps a running ledger. It feeds articles, newsletters, and any downstream thesis work tracking AI labor effects.

Steps

1. Load context

Read:

  • memory/MEMORY.md — current state + any prior displacement signals logged
  • memory/topics/agent-displacement.md — if it exists, extract baseline: last-known companies, roles, and displacement scale

If memory/topics/agent-displacement.md doesn't exist, create it with this seed and continue:

# Agent Displacement Tracker

*Last run: never*

## Known Displacement Events (baseline)
- Klarna (2024): replaced 700 customer support agents with AI. Support resolution time 2min vs 11min human avg.
- Duolingo (2024): cut ~10% of contractors, cited AI content generation replacing human translators.
- Salesforce (2025): froze non-essential hiring across sales/support, citing AI agent handle rate.
- IBM (2024): paused hiring ~7,800 back-office roles that AI could replace within 5 years.

## Roles Under Pressure (running list)
- Customer support / tier-1 help desk
- Content translation and localization
- Data entry and document processing
- Code review (junior-level)
- Legal document review (discovery)

## Displacement Scale Estimates
- 2024: ~2M white-collar roles affected (McKinsey / Goldman estimates)
- Accelerating in: SaaS customer success, financial services ops, insurance claims

## Signal Log
- Baseline: seeded from public reports.

2. Search for developments from the last 7 days

Run these WebSearches (replace year with current year as needed):

WebSearch: "AI agent layoffs replaced workers ${year} site:techcrunch.com OR site:theverge.com OR site:wsj.com OR site:bloomberg.com"
WebSearch: "AI replaced human jobs headcount reduction ${year}"
WebSearch: "agentic AI workforce automation company announcement ${year}"
WebSearch: "Klarna Duolingo Salesforce IBM AI agent headcount ${year}"
WebSearch: "AI agent customer support white collar displacement ${year}"
WebSearch: "OpenAI Anthropic agent enterprise automation replacing workers ${year}"

Keep only items from the last 7 days. Discard think pieces and opinion — keep:

  • Company announcements naming specific roles cut
  • Headcount figures cited alongside AI deployment
  • Research reports with named verticals + quantified displacement
  • Earnings call quotes attributing headcount reduction to AI agents

3. Fetch deeper context on high-signal items

For any company announcement that appears, use WebFetch to pull the source article or press release. Extract:

  • Number of roles affected
  • Role type / seniority level
  • AI system named (if any)
  • Outcome comparison (before/after metrics if given)

If WebFetch fails, fall back to WebSearch: "[company name] AI agent headcount ${year}".

4. Filter and score signals

Score each item:

Criterion Points
Named company + named role + headcount number +5
Before/after metric (resolution rate, cost, speed) +3
Industry first (first displacement in a new vertical) +4
Fortune 500 / public company (verifiable, credible) +3
Research report with quantified estimates +2
Vague "AI productivity" with no specifics -3 (discard)

Keep top 4-5 items. Deduplicate against the baseline in memory/topics/agent-displacement.md — only count if it's new or a meaningful update to an existing event.

5. Categorize by role type

Assign each signal to a displacement category:

  • Tier-1 ops — customer support, data entry, help desk, document processing
  • Creative / content — translation, copywriting, design, video production
  • Code / dev — junior devs, QA, code review, test writing
  • Finance / legal — document review, compliance checking, financial analysis
  • Sales / success — SDRs, customer success, outbound prospecting
  • Management — middle management coordination, project tracking
  • Other — anything that doesn't fit the above

6. Thesis check

After reviewing all data, answer in one sentence:

Thesis check: agent displacement [accelerating / holding / decelerating] — [one concrete data point].

Criteria:

  • Accelerating — new vertical breached this week, or headcount numbers up >10% vs last known baseline, or major company announced AI-first hiring freeze
  • Holding — consistent signals in same verticals, no major new breaches
  • Decelerating — fewer signals than typical, company reversals or rehiring mentioned

7. Update memory/topics/agent-displacement.md

Rewrite:

  • *Last run: ${today}*
  • Append new events to Known Displacement Events (keep all, don't prune — this is historical)
  • Update Roles Under Pressure if a new role type emerged
  • Update Displacement Scale Estimates if new research gives better numbers
  • Append entry to Signal Log

Keep file under ~200 lines. If it grows beyond that, consolidate older signal log entries into a single "Prior signals (archived)" bullet.

8. Send notification via ./notify -f

Write to a temp file first, then send:

agent displacement — ${today}

[thesis check in one line: accelerating/holding/decelerating + why]

[top development — company, role, number if available]
[second development]
[third development if notable]
[fourth if it breaks a new vertical]

roles affected this week: [comma-separated categories]

Keep under 800 chars. Match the operator's voice if soul files exist; otherwise neutral and concrete.

Write to .pending-notify-temp/agent-displacement-${today}.md, then:

mkdir -p .pending-notify-temp
./notify -f .pending-notify-temp/agent-displacement-${today}.md

Skip notification if fewer than 2 new signals found this week. Log AGENT_DISPLACEMENT_SKIP: insufficient signal (<2 items) instead.

9. Log to memory/logs/${today}.md

Append:

## agent-displacement
- **Signals found:** N (N new vs baseline)
- **Top item:** [company/role/number in one line]
- **Thesis check:** [accelerating/holding/decelerating]
- **Categories touched:** [comma-separated]
- **Updated:** memory/topics/agent-displacement.md
- **Notification:** sent / skipped
- AGENT_DISPLACEMENT_OK

Required Environment Variables

None. Uses WebSearch and WebFetch only.

Sandbox Note

All external calls use WebSearch and WebFetch (Claude built-in tools), which bypass the GitHub Actions sandbox network restriction. No curl, no prefetch scripts needed.

Output feeds

  • article skill — use memory/topics/agent-displacement.md as source for "agent substitution" angle pieces
  • weekly-newsletter / digest — displacement signals slot into the "what's moving" section
  • paper-pick — displacement research papers found here can be flagged for deeper coverage