First of all, as we transition to building companies with agents rather than humans, we need to rethink things from the ground up. This starts with what I call AJDs — Agent Job Descriptions. A standard job description has the following things:
About the company
What the role is
Responsibility required
What an ideal candidate looks like
Benefits
However, an Agent Job Description needs to be a little different as we can build this labour, buy it or a combination of these two. While an AJD may be performative in nature, it can help clarify your own thinking about what your needs are for this agent.
So what does an Agent Job Description look like? The following:
What is the outcome that the agent needs to achieve?
What context does it require to succeed?
What are the liveliness, security and privacy requirements?
What is your budget for the agent to run?
Before jumping into examples, lets explore the landscape of the approaches we can take to build the agent.
The Landscape
When deciding how to build your agent, you need to be able to make trade-offs between complexity, capability and context.
Some examples of how you would need to balance these things:
An agent that converts your voice memos to draft blog posts would be:
Low capability, low context and low complexity
It simply converts text → speech
It doesn’t need context outside of the voice memo
Isn’t very complex with how you construct it
An agent that goes through your Telegram messages and reads things for you would be:
High capability, mid context and high complexity
It’s able to read messages from anyone that wants to reach out to you
It knows only what has been written in the chat
Requires a local Telegram client to be instantiated (if you don’t want to have to add a bot to every convo)
An agent that reads someones LinkedIn profile and then crafts a personalised message would be:
Mid capability, mid context and low complexity
Being able to make cold emails can be useful
Scraping data from LinkedIn to get context is useful
It isn’t very complex in how you actually join these pieces together
I’m sure I’ll evolve this over time but that’s a high level starting point to think about this stuff.
Whenever you see all these “here’s how I built an AI agent that replaced my sales team” on LinkedIn, it’s 100% full of shit. If your sales team are click-and-drag AI agents then your sales team probably sucks and your company is dying.
Good agents require careful thought and a logical understanding of when a human should be in the loop.
Going back to the point, you broadly have three ways you can build agents:
Level 0 - Chat Platforms (low capability, variable context, no complexity)
This is your existing ChatGPT conversations, Claude projects or Custom GPTs that you’ve built that can be constructed natively and most of us have used. As you add context to these chats/projects their context grows over time which makes them more valuable/sticky. You should not discount these agents as they are still the best to do what you need.

Your only downside with these agents is that the more you speak to them the more they can forget their context, so you need to rely on strong system instructions. I like to configure my Claude, Gemini and ChatGPT with different system prompts so they’re different types of agents I can consult.
ChatGPT is great for the memory feature and o3’s researching capabilities.
Claude is great when I don’t want context and someone friendly but doesn’t gas me up and tell me I am a visionary genius who will solve world hunger
Gemini is easily the most capable model that I give challenging scenarios to compute EVs of situations. Context is fragile with it though!
Level 1 - Trigger Platforms (mid capability, low context, low complexity)
When you think of agents this is most likely where you’ll start from. Your level 1 agents are based on platforms that say:
If X gets hit, then Y will happen (with maybe a few steps in between)
The best example of this is Zapier, Lindy, Operator by ChatGPT or other simple workflow orchestration tools. These platforms can be intimidating for non-technical users but can be easy to get the hang of once you understand them.
They are most people’s best shot of making an AI agent that is somewhat useful in their life. However they only fit a narrow use case of:
Things that are hard for non-technical people but valuable in some particular instance
Things that are very easy for technical people that don’t want extra complexity
I have still have Zapier webhooks that I rely on to do miscellaneous things around the place despite having higher levels of capability.
Level 2 - Semi-Code Platforms (high capability, mid context, high complexity)
This is when you start getting into things that are more valuable. By far, I’d say that n8n dominates this category in terms of the sheer capability. Semi-code platforms require you to have a good understanding of how APIs work, data structures and data pipelines. In return, the capability they give you is much higher than your standard trigger based workflows.
The only reason they are ranked as mid-context is their execution engines can’t really handle anything beyond 1000s of rows of data. For real context, you will need tens of thousands if not millions of rows.
Anything where you want serious and proper context, your semi-code platforms will tap you out. Also you have to remember these platforms cannot “always stay on” to do things and get expensive as you scale (hundreds of dollars very quickly).
Level 2 platforms are not for beginners, they’re for users who can handle data pipelines, system logic, and manual setup. Level 3 - Custom Code (high capability, max context, high complexity)
We end up full circle where the most capable agents are custom code bases that have the full power of the compute they run on, can access any API on the internet, can always stay on and are efficient as you scale up to the maximum scale of their compute.
As capability increases, so does the engineering effort required. Custom Code sits at the top for those who can handle the setup. While you can can kind of vibe-code a bit of this, you need real engineering capability to build these things as they have to get the job done and the context window is beyond what most chat applications can handle. Furthermore this also requires infrastructure deployment and the chops to be able to run it consistently. Even as AI gets more capable, it does not solve architectural decisions which you need to think about when building custom code based agent.
There’s almost a very simple heuristic to think about this:
The low level platforms
Cost a lot more per $ of compute
Are limited in what they can do
Don’t make you think about what you want to do
The higher level platforms
Cost a lot less per $ in compute
Are unlimited in what they can do
Make you think about every aspect of the agent
This is why the Agent Description is extremely useful as it helps you size out what level you need for the task at hand. Agents that don’t need a lot of context or scale should be delegated to lower levels. Agents that are critical, need precision and handle scale will need custom builds that no platform can give you out of the box.
Closing
Even though influencers on social media make it easy to believe that AI will magically solve all your problems, there is still a lot of thinking that needs to be done to make these things work. I like to best think of them as “mental leverage”. It doesn’t dictate how to steer your mind, but it lets you go 100x faster in whatever direction you do choose. Luckily, you can also learn anything you’d like with these incredible tools. Non-technical → technical is just a few months of prompting now.
The world is open to those who have the grit, determination and stamina to do hard things with technology that makes learning anything easy. Paradoxical in a beautiful way.