
SalesRook
Lead generation and qualification platform for letting agents. Handles enquiries on autopilot.
Agents that fail loudly, retry sensibly, and log everything.
An agent is only as good as its tools and its error handling. I build agents that treat every tool call as a fallible network request — typed schemas, bounded retries, replayable logs — so when a run breaks at 2am you can see exactly which step did it.
If two or more of these land, this is the right conversation to have.
A person copies data between two systems all day, and the rules are almost simple enough to write down.
Your agent works in the happy path and hangs silently the moment an API returns a 429.
You can't reproduce a bad run, because nothing was logged.
Every automated action still needs a human check, so the automation saves nobody any time.
Artifacts, not slides — all of it yours to keep and run without me.
Every tool the agent can call gets a strict schema, validation on both sides, and an explicit failure contract. Bad arguments get rejected, not improvised around.
Bounded retries with backoff, idempotency keys on anything that writes, and defined behaviour for every failure mode — including "stop and ask a human".
Conversation and workflow state that survives a restart, so a long-running task doesn't lose its place halfway through.
Every run recorded step by step and re-runnable against the same inputs. Debugging becomes reading, not guessing.
Cheap models for classification and extraction, frontier models only where they earn their price — with spend visible per workflow.
Approval gates on irreversible actions, so the agent is trusted with the routine 90% and escalates the rest.
Three phases, with something demoable at the end of every week.
Sit with whoever does the job today and write down the actual rules — including the exceptions — then mark which steps must stay human.
Integrations and their schemas come before the agent loop. A reliable toolbelt makes the model's job easy.
The agent runs alongside your team, proposing actions without taking them, until the disagreement rate is low enough to let it act.
Defaults, not dogma — I'll work in yours where it makes more sense.
Real products, in production, with real users on them.
The narrow ones do. An agent with six well-defined tools and a clear stopping condition is reliable today; an open-ended "do anything" agent still isn't. I scope hard towards the former.
I use them where they save work and drop them where they add indirection. Most production agents I've shipped come down to a loop, a tool registry, and good logging.
That's the normal case, and most of the build is integration work — auth, rate limits, pagination, and the quirks of whatever's on the other end.
Approval gates on write actions, hard spend caps per run, and idempotency so a retry can never double-charge anyone.
Tell me what you're working on. I'll tell you what it takes — and whether it's worth building at all.