Building Property Axis with AI agents in the loop
When people talk about AI in engineering, they usually mean GitHub Copilot suggesting a function body. What I mean by AI agents in the loop is something different: agents that run multi-step tasks, make decisions, call tools, and produce structured output that flows directly into product features.
The setup
Property Axis has an AI-assisted CRM feature. When a lead fills out a contact form on a tenant's property site, an agent runs: it reads the lead data, classifies the lead type (investor, first-time buyer, renter), drafts a suggested follow-up message, and writes the result to the database, all before the agent notification reaches the admin.
The key insight: the agent does not replace the human decision. It reduces the cognitive load of the first 30 seconds of evaluating a new lead.
What agents actually do
The implementation uses structured output with a strict schema. The agent is not asked to 'help', it is given a specific task with specific output fields. Classification confidence is a required field. If confidence is below a threshold, the CRM shows the human the raw lead data instead of the agent summary. This matters because overconfidence in AI output is the most common failure mode in production.
Where it breaks
Agents break when the input is ambiguous. A lead that fills out a form with three words and a phone number gives the agent nothing to work with. The failure case here is not a crash, it is a confident wrong classification. This is why confidence scoring is not optional. You need a graceful degradation path for every agent in a user-facing workflow.
What changed in my workflow
Building this feature changed how I think about every new feature. I now ask: is there a step in this workflow where an agent could do a defined task better than a form field? Not 'could we use AI here' in the abstract, but specifically: what is the task, what is the input, what is the structured output, and what is the fallback.
Contents
- The setup
- What agents actually do
- Where it breaks
- What changed in my workflow