Every consulting firm I've worked with has the same dirty secret: nearly half their billable talent is buried in admin work.
According to a 2024 McKinsey study, professional services firms lose 42% of productive hours to non-billable administrative tasks — client intake, proposal writing, and report generation. That's not a rounding error. That's almost half your team's capacity evaporating into Google Docs and email threads.
I decided to fix this with AI agents. Not chatbots. Not copilots. Autonomous agents that own entire workflows end-to-end.
The result is AgentDesk — a platform of pre-built AI agents powered by Anthropic's Claude that handle the three biggest time sinks in consulting.
The Three Agents
1. Intake Agent — Qualify Leads Automatically
When a prospect fills out your intake form, the Intake Agent:
- Extracts key details (budget range, timeline, scope)
- Scores the lead against your ideal client profile
- Generates a structured brief for your team
- Sends a personalized follow-up within minutes
Time saved: ~3 hours per qualified lead.
2. Proposal Agent — From Call Notes to Polished Proposals
Hand it your meeting notes (or a transcript), and the Proposal Agent:
- Identifies the client's core problem and desired outcomes
- Maps your services to their needs
- Generates a complete proposal with scope, timeline, pricing, and terms
- Formats it in your brand template
Time saved: ~6 hours per proposal.
3. Report Agent — Executive Summaries on Demand
Feed it project data, metrics, or raw notes, and the Report Agent:
- Synthesizes everything into a clear executive summary
- Highlights KPIs, progress, and blockers
- Generates data visualizations
- Outputs a client-ready PDF
Time saved: ~4 hours per report cycle.
How I Built It: The Technical Architecture
AgentDesk runs on a modern stack designed for speed and reliability:
- Next.js 16 (App Router) for the frontend and API routes
- Anthropic SDK (Claude 3.5 Sonnet) for the AI agent engine
- Stripe for subscription billing
- Vercel for deployment with edge functions
The core of the system is a reusable agent engine pattern. Every agent — Intake, Proposal, Report — is just a configuration on top of the same execution engine:
// The core agent engine pattern
interface AgentConfig {
name: string;
systemPrompt: string;
outputSchema: z.ZodSchema;
maxTokens: number;
}
async function runAgent<T>(
config: AgentConfig,
userInput: string
): Promise<T> {
const response = await anthropic.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: config.maxTokens,
system: config.systemPrompt,
messages: [{ role: "user", content: userInput }],
});
// Parse and validate against the output schema
const parsed = config.outputSchema.parse(
JSON.parse(response.content[0].text)
);
return parsed as T;
}
// Each agent is just a config
const intakeAgent: AgentConfig = {
name: "intake",
systemPrompt: INTAKE_SYSTEM_PROMPT,
outputSchema: IntakeResultSchema,
maxTokens: 2048,
};
// Run it
const result = await runAgent<IntakeResult>(intakeAgent, clientFormData);
This pattern gives you:
- Type safety — every agent output is validated against a Zod schema
- Composability — chain agents together (intake → proposal is a common flow)
- Testability — mock the Anthropic call, test the schema validation independently
-
Observability — wrap
runAgentwith logging, metrics, cost tracking
The Business Model
AgentDesk is priced for the firms it serves:
| Plan | Price | What You Get |
|---|---|---|
| Starter | $99/mo | 1 agent, 50 runs/month — perfect for solo consultants |
| Professional | $299/mo | All 3 agents, 200 runs/month — for small firms |
| Enterprise | $799/mo | Unlimited runs, custom agents, priority support |
At $299/month, if it saves a single consultant even 10 hours/month (conservative), that's roughly $2,000+ in recovered billable time. The ROI is immediate.
What I Learned Building This
1. Structured outputs are everything. The difference between a useful agent and a toy is whether the output is predictable. Zod schemas + Claude's instruction-following make this reliable.
2. System prompts are your product. The agents are only as good as their system prompts. I spent more time on prompt engineering than on the Next.js frontend.
3. Billing by "runs" aligns incentives. Clients pay for value delivered (agents that ran and produced output), not for seats or API tokens they don't understand.
Try It
AgentDesk is live at agentdesk-inky.vercel.app.
If you run a consulting firm, agency, or professional services team, I'd love your feedback. What other workflows should these agents handle?
Drop a comment below or check out the site. Happy to answer any technical questions about the architecture.
Built with Next.js 16, Anthropic Claude, Stripe, and deployed on Vercel.
Top comments (0)