The AI Agent We Use to Create SEO Content for Pxl

Following this LinkedIn post from Monday (are we connected on LinkedIn yet?) I want to show you in more detail how I built the Pxl Content Agent, which creates high-quality SEO-optimized content for our portfolio company, Pxl.
Why build an AI agent anyway?
Let's be honest, LLMs are still pretty basic – some might even say dumb – and I agree for the most part. I like the metaphor of considering them as a first-year intern at your company that still needs detailed instructions just to get this one task right.
However, these interns are available 24/7, and with the right instructions, you can get exactly what you need from them for almost no money.
I’ve been building automation workflows for almost 10 years, and while they’re still basic, I see them as the missing piece that adds some form of creativity to my workflows.
From this point onwards, this technology will only get more powerful.
Personally, I think every one of us should learn how to use AI agents in some capacity. I don't believe people will lose their jobs to AI overnight, but those who know how to leverage AI in their work today will have an advantage over their competition tomorrow.
With this in mind, let's dive right in:
How I built the Pxl Content Agent
My best-practices for building agentic workflows
- Know the limits of LLMs. Give them as few tasks as possible: This might sound counterintuitive at first when thinking about agentic workflows, but in most cases, their output is still somewhat unpredictable. Even if they get the task right 8 out of 10 times, that still means they’re wrong 20% of the time.
- Use a professional workflow automation platform: While Zapier is great to get started with, I prefer n8n as it's a more developer-friendly platform with lots of customization options.
- Build a human-in-the-loop system: I personally prefer to do a final review before any LLM handles a production deployment. I mean... would you trust your first-year intern to do a production deployment?
- Use OpenAI or Anthropic for creative content: I mostly use OpenAI's models for our workflows, which excel at complex tasks with the right input. But Anthropic's Claude is really good at copywriting, so chances are we’ll use it for some steps of our workflow.
- Integrate them with your existing interfaces: We run our business on a handful of tools, such as Google Workspace and Notion. Both offer plenty of options for integration with workflows. Use them, people don't like to learn new interfaces.
- Testing, testing, testing: Especially with the non-deterministic output of LLMs, you should test different prompting techniques, including providing examples of how you want the output to be structured (see below).
- Start with version 1 and then build from there: We have deliberately not yet tasked the Content Agent with SEO keyword research, but that will be the next step. Our primary goal was to get the core workflow right first and then iterate from there.
- Try a multi-agent workflow to improve the quality of content: In version 1, we have one agent responsible for creating the blog post. The next step to improve the quality is to implement a multi-agent setup in version 2 that "critiques" the original agent and provides feedback to have the blog post improved by another agent.
Prompts
Below are the two prompts that create the content. In version 1 of the Pxl Content Agent, we have been working with non-reasoning models from OpenAI, which support both system
and user
messages.
In the next version. I will move over to a reasoning model such as o1
or o3-mini
to further increase the quality of output.
System message
You are a world-class copywriter. Your task is to write a SEO optimized blog post for Pxl (www.pxl.to), a software-as-a-service about QR Codes, short links and microsites (link-in-bio pages). Your blog post should be about 1200 words long.
The SEO keyword for this post is "{{ SEO keyword }}" and the blog post should be written in {{ language }}. Remember, the blog post you are about to create needs to be SEO optimized.
Additional instructions for the blog post:
{{ additional instruction on style, structure & more }}
Return the blog post in markdown and follow these instructions:
- Insert a Table of contents at the top and link each headline.
– Only capitalize the first character in headings.
- Add FAQs towards the end of the blog post.
– Keep the tone conversational just like in the provided example and don't use complex vocabulary. Resemble the writing style from the blog post you are provided by the user.
- Return the blog post in markdown. Do not return a code (```) element, just markdown.
– Only return the content of the blog article. Do not return the title and hence, do not place a h1 (#) title inside the blog post
User message
<Example Blog Post>
## Table of contents
1. [Introduction to QR codes with analytics](#introduction)
2. [Why QR codes are crucial for modern marketing](#why-qr-codes)
3. [What is QR code analytics?](#what-is-qr-code-analytics)
4. [Key metrics you can track with QR codes](#key-metrics)
5. [How to implement QR code analytics in your campaigns](#implementing-qr-code-analytics)
6. [Best practices for QR codes](#best-practices)
7. [Frequently asked questions](#faqs)
8. [Conclusion](#conclusion)
## <a name="introduction"></a>Introduction to QR codes with analytics
QR codes have transformed from simple scannable images to powerful tools that marketers use to bridge offline and online experiences.
(...)
</Example Blog Post>
This prompt has been abbreviated to keep it consise
In the upcoming version, we are experiment with loading several blog posts into the User message to create a more precise template.
Want to learn more?
We have plenty more AI agents doing work for us at Waterglass and I will share them over the coming weeks.
Steal them and start building your own empire of AI agents.