Claude for Teams & Orgs
Deploying Claude inside a company: shared prompts, admin controls, usage policies, and cost governance.
Claude Team vs. Claude API — Which to Use?
- Claude.ai Team/Enterprise — no-code, for knowledge workers. Shared projects, custom instructions, admin controls. Best when your team needs Claude as a productivity tool.
- Claude API — for builders. You control UX, auth, costs. Best when you are embedding Claude inside your own product or internal tool.
- Both together — engineers use the API to build; business teams use Claude.ai for day-to-day work. Very common setup.
Shared Prompt Libraries (API)
The single biggest leverage point for teams: centralise your prompts. Don't let every engineer or analyst write their own version of the same prompt.
# prompts/library.py — centralised prompt store
PROMPTS = {
"support_triage": {
"system": """You are a support triage agent for Acme Corp.
Classify the ticket into: billing | technical | feature_request | other.
Return JSON: {"category": "...", "priority": "high|medium|low",
"summary": "one sentence"}""",
"model": "claude-haiku-4-5-20251001",
"max_tokens": 128,
},
"contract_review": {
"system": """You are a legal analyst specialising in SaaS contracts.
Identify: unusual clauses, liability caps, IP ownership issues, termination rights.
Flag anything that deviates from our standard terms (attached below).
Be concise. Bullet points per section.""",
"model": "claude-opus-4-5",
"max_tokens": 2048,
},
"weekly_summary": {
"system": """Summarise the week's Slack messages into:
- 3 key decisions made
- Open questions still unresolved
- Action items with owners
Keep it under 200 words.""",
"model": "claude-sonnet-4-5",
"max_tokens": 512,
}
}
# Usage
import anthropic
client = anthropic.Anthropic()
def run_prompt(prompt_key: str, user_content: str) -> str:
cfg = PROMPTS[prompt_key]
r = client.messages.create(
model=cfg["model"],
max_tokens=cfg["max_tokens"],
system=cfg["system"],
messages=[{"role": "user", "content": user_content}]
)
return r.content[0].textUsage Tracking & Cost Governance
The API doesn't automatically track spend per team or feature. Build lightweight cost logging from day one — it's nearly impossible to add retroactively.
# middleware/cost_logger.py
import anthropic, time
from datetime import datetime
# Approximate cost per 1M tokens (check pricing page for current rates)
COSTS = {
"claude-opus-4-5": {"input": 15.0, "output": 75.0},
"claude-sonnet-4-5": {"input": 3.0, "output": 15.0},
"claude-haiku-4-5-20251001": {"input": 0.25, "output": 1.25},
}
def tracked_call(client, feature: str, team: str, **kwargs):
start = time.time()
response = client.messages.create(**kwargs)
elapsed = time.time() - start
model = kwargs["model"]
input_tokens = response.usage.input_tokens
output_tokens = response.usage.output_tokens
cost = (
input_tokens / 1_000_000 * COSTS[model]["input"] +
output_tokens / 1_000_000 * COSTS[model]["output"]
)
# Log to your DB / analytics
log_entry = {
"timestamp": datetime.utcnow().isoformat(),
"feature": feature,
"team": team,
"model": model,
"input_tokens": input_tokens,
"output_tokens": output_tokens,
"cost_usd": round(cost, 6),
"latency_s": round(elapsed, 2),
}
print(log_entry) # replace with supabase.table("usage").insert(log_entry)
return responseClaude.ai Enterprise Admin Controls
- Custom system prompts — set org-wide instructions users can't override
- Model access — restrict which models are available
- Data retention — opt out of training data use for all users
- SSO/SCIM — integrate with Okta, Azure AD, Google Workspace
- Usage dashboard — per-seat usage reports
- Shared Projects — team-wide Claude Projects with shared context
Rollout Strategy for Teams
No-code plan for knowledge workers — shared projects, admin panel
For builders — you control UX, auth, and costs
Centralised dict of system prompts + model configs per use case
Log input/output tokens + model per call to track spend by feature/team
SSO, data retention, model restrictions, org-wide system prompts
Define what data employees can/cannot paste into Claude