Skip to content
hannctl.
PDF ↓
← All work
06 / PF-06 · AI · FastAPI AI agents

AetherCrew: a virtual company of 11 AI employees.

A hand-built orchestrator that assigns work, picks models, and tracks cost for 11 AI employees in a virtual company. Agent work is simulated and no language model API is called.

PERIOD
Personal project · released Nov 2026
MY ROLE
Design and implementation
TOOLS & CONTEXT
Python · FastAPI · WebSocket · pytest · Slack · Jira · GitHub — 11 AI employees · 3 divisions · 8 dashboard pages
CEOUser directiveManagementTechnologySalesEmmaChief of staffMiaFinanceAvaHRSophiaTech leadNoahSenior engineerLunaEngineerEthanDB engineerLiamQA engineerChloeSecurity engineerJamesPlanning and salesleadOliviaContent marketer(off by default)Model priority · estimated cost recordedSimulated: assignment, model selection, and cost tracking onlyNo language model API is called
In the public code, agent work is simulated and no language model API is called.
01 / CONTEXT

Problem

When AI employees split work by role, code must control which model each one uses, how much has been spent, and what can be written to outside systems.

02 / DECISIONS

Approach

The chief of staff takes a CEO directive, writes a plan, and splits it into tasks by role. Each employee has a priority list of Anthropic, OpenAI, Google, and DeepSeek models and moves to the next on failure. Estimated costs add up, with warnings at 80% and 95% and work stopped at 100%. External writes are off by default, and file access stays inside the project root.

03 / ENGINEERING

Implementation

  • Python
  • FastAPI
  • WebSocket
  • pytest
  • Slack
  • Jira
  • GitHub

Scale · 11 AI employees · 3 divisions · 8 dashboard pages

FLOW / 05
CEOUser directiveManagementTechnologySalesEmmaChief of staffMiaFinanceAvaHRSophiaTech leadNoahSenior engineerLunaEngineerEthanDB engineerLiamQA engineerChloeSecurity engineerJamesPlanning and salesleadOliviaContent marketer(off by default)

Eleven AI employees sit in three divisions: management, technology, and sales, each with a role and permissions.

01 / 05
Read every step
  1. Eleven AI employees sit in three divisions: management, technology, and sales, each with a role and permissions.
  2. The chief of staff receives the CEO directive and writes a plan.
  3. The plan is split into tasks by role and assigned to the technology team.
  4. For each task, a model is chosen from the employee priority list and an estimated cost is recorded.
  5. In the public code, agent work is simulated and no language model API is called.
Model fallback per employeeThe first available model on the list is chosengpt-5OpenAIclaude-opus-4Anthropicgemini-2.5-proGoogledeepseek-v3DeepSeekChoice 1Choice 2Choice 3Choice 4Selectedagent.fallback event loggedEstimated cost only, no language model API call
The switch is logged as an agent.fallback event. Model calls are simulated.
04 / VERIFICATION

Result

Eight FastAPI dashboard pages show the org chart, cost, logs, and a pixel-art CCTV office. It runs with no API keys and calls no language model, so it produces no real work output. The Slack, Jira, and GitHub clients are real code and run only when INTEGRATIONS_LIVE_WRITE is on.

11
AI employees
3
Divisions
8
Dashboard pages
05 / REFLECTION

What I learned

When I let agents hand work to each other, a wrong result from one agent was trusted as-is by the next, with no check in between. That is when I felt that trust boundaries and permission scope must live in code, not in a polite request inside a prompt. So in this project, every point where risk can arise, such as model choice, budget stops, external writes, and file access, is a rule in code. External writes are blocked by default and allowed only when a setting is turned on, and the budget warns at 80% and 95% and stops at 100%. The more work AI takes on, the more the human decision shifts from what to ask for to how far to allow it.

OUTCOME

11 AI employees — 3 divisions, work stops at 100% budget

Public repo: pf-06-aethercrew-ai-company ↗

Related field notes

NEXT / PF-09 · AWS · Python AWS firewall request automation

Search the site

Quick links ↑ ↓ move · Enter open · Esc close

Choose a theme

Click a badge to switch to that theme on the same content. Dragging only swings it.

Back to the front page →