<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: hakiimi</title>
    <description>The latest articles on DEV Community by hakiimi (@hakiimi_claw).</description>
    <link>https://dev.to/hakiimi_claw</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4070361%2Fbc5213bd-0fb2-40ae-b559-686e6c0cc32b.png</url>
      <title>DEV Community: hakiimi</title>
      <link>https://dev.to/hakiimi_claw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hakiimi_claw"/>
    <language>en</language>
    <item>
      <title>How I Automated My Passive Income Content Pipeline With OpenClaw</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 05:32:45 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/how-i-automated-my-passive-income-content-pipeline-with-openclaw-g8b</link>
      <guid>https://dev.to/hakiimi_claw/how-i-automated-my-passive-income-content-pipeline-with-openclaw-g8b</guid>
      <description>&lt;p&gt;If you have been following my series on building passive income with AI agents, you already know I publish regular English technical articles to dev.to. This post is different. This is the story of how I turned the whole thing into a &lt;strong&gt;fully unattended, self-running system&lt;/strong&gt; 鈥?so that content keeps going out even when I am asleep, offline, or working on something else.&lt;/p&gt;

&lt;p&gt;The tool that made this possible is &lt;a href="https://github.com/openclaw" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt;. It is an open-source, local-first AI agent platform. Here is exactly how I set up an automated content pipeline, the mistakes I made along the way, and the parts you cannot automate (yet).&lt;/p&gt;

&lt;h2&gt;
  
  
  The Goal
&lt;/h2&gt;

&lt;p&gt;I wanted a system that could, on a schedule:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate a new SEO-oriented technical article from a topic list&lt;/li&gt;
&lt;li&gt;Format it as Markdown&lt;/li&gt;
&lt;li&gt;Push it to dev.to through a logged-in browser session&lt;/li&gt;
&lt;li&gt;Record that it was published so it never duplicates&lt;/li&gt;
&lt;li&gt;Repeat, forever, with zero human input between runs&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Building Blocks
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. A scheduled task that checks for new content
&lt;/h3&gt;

&lt;p&gt;The heart of the system is a scheduled job (a cron in OpenClaw) that runs every 20 minutes. On each run it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reads a local file called &lt;code&gt;published-state.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Lists the Markdown files in a &lt;code&gt;content/articles/&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;Publishes any file whose name is &lt;strong&gt;not&lt;/strong&gt; already in the published list&lt;/li&gt;
&lt;li&gt;Updates the state file only after a successful publish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That file is my deduplication key. It is the single most important design decision in the whole system, because it is what stopped me from accidentally posting the same article twice.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. A generating step
&lt;/h3&gt;

&lt;p&gt;I queue topic ideas as Markdown files. When the folder has a new file, the pipeline generates the full article (title + ~1600 words of body) from that topic. I keep the topics in a specific vertical 鈥?AI agents, automation, and OpenClaw 鈥?because that is the corner of search where my audience actually lives.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. A publishing step that talks to the real editor
&lt;/h3&gt;

&lt;p&gt;Here is the part most tutorials skip. dev.to's editor is a React app, so you cannot just POST a string and have it work reliably. I drive a real logged-in browser tab over CDP (Chrome DevTools Protocol) and:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fill the title field by DOM id&lt;/li&gt;
&lt;li&gt;Fill the body by textarea name, using the native value setter plus an input event so React actually notices&lt;/li&gt;
&lt;li&gt;Simulate a real mouse click on the Publish button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The trick that made it reliable: after setting the value, you often have to &lt;strong&gt;append a space and delete it&lt;/strong&gt; to force React's &lt;code&gt;onChange&lt;/code&gt; to fire. Without that, the publish click silently does nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two Mistakes Cost Me Real Time
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake 1 鈥?I ignored rate limits.&lt;/strong&gt; dev.to returns &lt;code&gt;Rate limit reached, try again in 300 seconds&lt;/code&gt; if you post too fast. The fix is to space publishes out by at least five minutes. My cron interval already handles this, but my early manual testing did not, and I burned time waiting on backoff timers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 2 鈥?I duplicated a post.&lt;/strong&gt; My first version tracked "what is published" by remembering URLs. When a URL changed slightly between runs, the checker thought the article was new and posted it again. Switching to a filename-based state file fixed this permanently.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Still Needs a Human
&lt;/h2&gt;

&lt;p&gt;Full transparency: automation handles the production and the publishing. It does &lt;strong&gt;not&lt;/strong&gt; handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Account creation and verification&lt;/strong&gt; 鈥?the first-time login, email confirmation, and bot-check basically need a human at the wheel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subject matter judgment&lt;/strong&gt; 鈥?a topic list is a strategy decision. The pipeline is only as good as the queue you feed it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Waiting for SEO to pay off&lt;/strong&gt; 鈥?Google indexing and ranking takes weeks. This is a compounding asset, not a lottery ticket.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;Right now the system runs unattended in the background. The content files grow, the cron publishes on schedule, and &lt;code&gt;published-state.json&lt;/code&gt; grows with each successful post. I write the strategy; the agent executes the mechanics.&lt;/p&gt;

&lt;p&gt;If you are already running OpenClaw, this is very achievable. Start small: one folder, one state file, one scheduled task. Let the machine do the boring, repeatable work while you own the part that actually matters 鈥?deciding what to say.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is part of an ongoing series on AI-agent-driven content automation with OpenClaw.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Deploying OpenClaw with Docker: A Clean Setup</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 03:51:51 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/deploying-openclaw-with-docker-a-clean-setup-5e7k</link>
      <guid>https://dev.to/hakiimi_claw/deploying-openclaw-with-docker-a-clean-setup-5e7k</guid>
      <description>&lt;p&gt;Running OpenClaw inside Docker gives you isolation, easy upgrades, and consistent environments across machines. Here is a clean, working setup with the key details that usually trip people up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Docker
&lt;/h2&gt;

&lt;p&gt;Docker keeps everything (runtime, config, data) bundled and reproducible. You can move a setup between machines, pin versions, and avoid “works on my machine” problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  The basics
&lt;/h2&gt;

&lt;p&gt;Create a directory for your config and data, then run the official image with the ports the gateway needs exposed. Keep your auth token in an environment variable, not in the command line, so it stays out of shell history and logs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Named volumes for persistence
&lt;/h2&gt;

&lt;p&gt;Persist the data directory with a named volume so agents, memory, and sessions survive container restarts and upgrades. Without this, you lose everything when the container is replaced.&lt;/p&gt;

&lt;h2&gt;
  
  
  Networking that matters
&lt;/h2&gt;

&lt;p&gt;Bind the gateway to localhost by default, and put a reverse proxy in front if you need remote access. Exposing the gateway directly to the internet without auth protection is a common and dangerous mistake.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upgrading safely
&lt;/h2&gt;

&lt;p&gt;Before upgrading, back up the data volume. Pull the new image and recreate the container. Because state lives in the volume, the upgrade is low-risk and reversible.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small compose file goes a long way
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;docker-compose.yml&lt;/code&gt; captures the whole setup: image, ports, volumes, environment, and restart policy. One command brings it up, and the same file works on any Docker host.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;Docker is one of the cleanest ways to run OpenClaw: reproducible, isolated, and easy to upgrade. Get the volumes and auth right, and the rest is straightforward.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building Your First OpenClaw Skill: A Walkthrough</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 03:11:33 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/building-your-first-openclaw-skill-a-walkthrough-5agp</link>
      <guid>https://dev.to/hakiimi_claw/building-your-first-openclaw-skill-a-walkthrough-5agp</guid>
      <description>&lt;p&gt;Skills are how you package repeatable work for an OpenClaw agent — a folder with instructions, scripts, and references the agent can load on demand. The first one is the hardest; after that it clicks. Here is the full walkthrough.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a skill is
&lt;/h2&gt;

&lt;p&gt;A skill is a directory containing a &lt;code&gt;SKILL.md&lt;/code&gt; (instructions for when and how to use it), plus optional &lt;code&gt;scripts/&lt;/code&gt; and &lt;code&gt;references/&lt;/code&gt; folders. The agent reads SKILL.md when the skill is relevant and follows it, running scripts and consulting references as needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pick one repeatable task
&lt;/h2&gt;

&lt;p&gt;Choose a workflow you do more than once that takes at least a few minutes and can be automated or partly automated. A clear, single-purpose task beats a vague catch-all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write SKILL.md
&lt;/h2&gt;

&lt;p&gt;SKILL.md has a small YAML frontmatter block (&lt;code&gt;name&lt;/code&gt; and &lt;code&gt;description&lt;/code&gt;) followed by the instructions. The description matters most: it tells the agent when to use the skill.&lt;/p&gt;

&lt;p&gt;Then write the body: the workflow steps, expected inputs and outputs, and any quality bar the agent must meet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add a script
&lt;/h2&gt;

&lt;p&gt;Put a helper script in &lt;code&gt;scripts/&lt;/code&gt; — for example a Python or shell file that does the mechanical part. Keep it focused. Scripts make the skill do real work instead of just describing steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add references
&lt;/h2&gt;

&lt;p&gt;Put templates, examples, or longer guides in &lt;code&gt;references/&lt;/code&gt; that the agent can read when it needs detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test it
&lt;/h2&gt;

&lt;p&gt;Give the skill to your own agent and run it end to end. Fix anything that breaks, and adjust the description if the agent is not triggering it correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publish or keep local
&lt;/h2&gt;

&lt;p&gt;You can keep a skill local for yourself, or publish it to ClawHub for community use. Either way, a polished skill saves effort every time you reuse it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SOUL.md: Give Your AI Agent a Personality That Actually Helps</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 02:32:10 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/soulmd-give-your-ai-agent-a-personality-that-actually-helps-40o3</link>
      <guid>https://dev.to/hakiimi_claw/soulmd-give-your-ai-agent-a-personality-that-actually-helps-40o3</guid>
      <description>&lt;p&gt;Every OpenClaw agent has a persona file, traditionally SOUL.md. Most people skip it or write a one-liner. But SOUL.md is where you encode &lt;em&gt;how&lt;/em&gt; the agent should behave, and it has an outsized effect on output quality. Here is how to use it well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why persona matters
&lt;/h2&gt;

&lt;p&gt;An agent without a persona answers literally. With a good persona, it understands tone, priorities, when to push back, and what "good" means for your work. The same model produces very different output depending on the persona you give it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the job, not the vibe
&lt;/h2&gt;

&lt;p&gt;Write SOUL.md around the &lt;em&gt;role&lt;/em&gt; the agent plays, not generic personality adjectives. Instead of "be friendly and helpful", try "you are a senior SEO editor: you flag weak claims, keep prose tight, and refuse to pad word count."&lt;/p&gt;

&lt;h2&gt;
  
  
  Include what matters for your work
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tone&lt;/strong&gt;: how it should sound in deliverables and messages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Priorities&lt;/strong&gt;: what to optimize for (accuracy, speed, clarity, consistency).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boundaries&lt;/strong&gt;: what it should refuse or flag, to keep you safe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context&lt;/strong&gt;: who the audience is, what the work is for.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Keep it short and specific
&lt;/h2&gt;

&lt;p&gt;A tight, concrete SOUL.md beats a long vague one. Aim for a few sentences per point, written as instructions to the agent, not marketing copy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Iterate with examples
&lt;/h2&gt;

&lt;p&gt;As you work, note where the agent's behavior missed: too wordy, too terse, too agreeable. Rewrite SOUL.md with concrete examples of the desired behavior, and the next run improves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;SOUL.md is a lever, not a formality. Write it around the job, keep it concrete, and keep refining it. The better the persona, the less hand-holding every other instruction needs.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Your AI Agents Need Memory (and How OpenClaw Handles It)</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 02:09:42 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/why-your-ai-agents-need-memory-and-how-openclaw-handles-it-3mma</link>
      <guid>https://dev.to/hakiimi_claw/why-your-ai-agents-need-memory-and-how-openclaw-handles-it-3mma</guid>
      <description>&lt;p&gt;A chatbot without memory answers the same question twice. An agent without memory can never get better at a task. Memory is what turns a stateless tool into a system that compounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with no memory
&lt;/h2&gt;

&lt;p&gt;Without memory, every task starts from zero. The agent re-reads context, re-learns your preferences, and repeats mistakes. It is like hiring someone who forgets everything overnight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three kinds of memory
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Session memory&lt;/strong&gt;: what happened in this conversation. Useful but transient.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-term memory&lt;/strong&gt;: facts and lessons that persist across sessions. This is the big win.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Working memory / state&lt;/strong&gt;: the current state of a running task or project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most people only use session memory. The leverage is in the long-term kind.&lt;/p&gt;

&lt;h2&gt;
  
  
  How OpenClaw addresses it
&lt;/h2&gt;

&lt;p&gt;OpenClaw stores memory in plain files (like MEMORY.md and dated daily notes) plus a semantic search index. Agents can recall prior decisions, preferences, and context by searching these notes instead of asking again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why plain files are a feature
&lt;/h2&gt;

&lt;p&gt;Files are human-readable, editable, and portable. You can see exactly what the agent remembers, fix a wrong memory, and move it to a new machine. No opaque database lock-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tell your agent to write decisions down, not just answer.&lt;/li&gt;
&lt;li&gt;Review and fold daily notes into long-term memory periodically.&lt;/li&gt;
&lt;li&gt;Prune stale facts so memory stays clean and relevant.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;Memory is the difference between an agent and a toy. Start writing things down, let the agent search its own notes, and you get compounding returns on every interaction.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>OpenClaw Gateway Setup: Tokens, Channels, and Security</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 02:04:38 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/openclaw-gateway-setup-tokens-channels-and-security-kd2</link>
      <guid>https://dev.to/hakiimi_claw/openclaw-gateway-setup-tokens-channels-and-security-kd2</guid>
      <description>&lt;p&gt;A good OpenClaw setup is more than installing the binary. The gateway is the heart that connects your agents to chat channels, tools, and the web. Getting it configured right saves you trouble later.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gateway in one sentence
&lt;/h2&gt;

&lt;p&gt;The gateway is the always-on service that routes messages between your agents, the tools they use, and the channels where you talk to them (Telegram, Slack, Discord, and more).&lt;/p&gt;

&lt;h2&gt;
  
  
  Tokens and auth
&lt;/h2&gt;

&lt;p&gt;The gateway uses a token for access control. Set a strong, unique token and never expose it. Keep the gateway bound to localhost or behind an authenticated reverse proxy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting a channel
&lt;/h2&gt;

&lt;p&gt;The simplest first channel is Telegram: create a bot, give the gateway the bot token, and you can talk to your agent from your phone. Each channel has a small config block; fill it and the gateway does the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agents and their config
&lt;/h2&gt;

&lt;p&gt;Each agent has a profile with its personality (SOUL.md), memory, and allowed tools. You can run multiple agents on one gateway, each isolated. Keep security settings strict.&lt;/p&gt;

&lt;h2&gt;
  
  
  Environment and secrets
&lt;/h2&gt;

&lt;p&gt;Store API keys and credentials in config or environment, not prompts. Use the gateway's built-in secret handling so keys are never logged or sent to the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scheduled and headless work
&lt;/h2&gt;

&lt;p&gt;The gateway can run agents on schedules and expose them over a local API, which is how you build headless automations on a VPS. Secure that API the same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;Proper gateway setup: strong token, localhost binding or HTTPS, careful secret storage, and channels connected one at a time.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Headless AI Agents: Real Workflows Beyond the Chatbot</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 01:59:17 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/headless-ai-agents-real-workflows-beyond-the-chatbot-59fp</link>
      <guid>https://dev.to/hakiimi_claw/headless-ai-agents-real-workflows-beyond-the-chatbot-59fp</guid>
      <description>&lt;p&gt;"AI agent" usually means a chatbot. But the real leverage of an agent platform like OpenClaw is headless automation: software that runs tasks on its own schedule, without a chat window. Here is what that actually looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chatbot is the weakest use case
&lt;/h2&gt;

&lt;p&gt;A chatbot waits for a question. A headless agent initiates work. The difference is the difference between a reactive tool and an autonomous system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real headless workflows
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled scraping&lt;/strong&gt;: pull competitor prices or news every hour and write results to a database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content pipelines&lt;/strong&gt;: generate and publish SEO articles on a cron schedule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring and alerts&lt;/strong&gt;: watch for price changes and notify you on Slack or Telegram.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data normalization&lt;/strong&gt;: take messy rows from a form or API and output clean, structured records.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inbox triage&lt;/strong&gt;: sort mail, draft replies, and log follow-ups automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it is wired
&lt;/h2&gt;

&lt;p&gt;Typically you run the agent as a service (systemd) on a VPS, connect it to a scheduler, and let it call APIs and write to storage by itself. No chat window required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters for income
&lt;/h2&gt;

&lt;p&gt;Headless agents are the engine behind passive automation: content that publishes itself, monitors that run constantly, and pipelines that never sleep. The value is consistency at scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key idea
&lt;/h2&gt;

&lt;p&gt;An agent is not a better chatbot. It is a way to encode a repeatable business process that runs on its own. Start with one boring repeatable task, automate it, then add the next.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Keyword Research for AI-Generated Content: A Practical Method</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 01:54:10 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/keyword-research-for-ai-generated-content-a-practical-method-51dj</link>
      <guid>https://dev.to/hakiimi_claw/keyword-research-for-ai-generated-content-a-practical-method-51dj</guid>
      <description>&lt;p&gt;Most AI content fails because it starts with a vague topic, not a keyword with real demand. This is the keyword research method I use to decide what my agents write next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the searcher, not the topic
&lt;/h2&gt;

&lt;p&gt;Ask: what would someone actually type? Real search phrases, not editorial headlines. Write down the question form, the problem form, and the how-to form of your topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use the free tools first
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Google Autocomplete: type your seed phrase and read the suggestions - these are real queries.&lt;/li&gt;
&lt;li&gt;People also ask: mine those boxes for sub-questions.&lt;/li&gt;
&lt;li&gt;Answer boxes / featured snippets show what Google thinks the intent is.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Judge demand vs. effort
&lt;/h2&gt;

&lt;p&gt;For each keyword, ask two questions: Is it worth ranking for? Can I realistically rank? A long-tail keyword with clear intent beats a broad head term for a new site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cluster into one article
&lt;/h2&gt;

&lt;p&gt;Group 3-5 related questions into one in-depth article. One strong page that answers a cluster outperforms five thin pages, and matches how Google rewards topical depth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hand the cluster to the agent
&lt;/h2&gt;

&lt;p&gt;Once you have a keyword cluster, your agent has a real brief: title, target keywords, outline sections mapped to each question. That is the difference between write about X and answer these specific searchers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest metric
&lt;/h2&gt;

&lt;p&gt;Track position, not vanity. If a page does not move after a few weeks, reassess the keyword or improve the page. Keyword research is a loop, not a one-time step.&lt;/p&gt;

&lt;p&gt;That is the method: find the real queries, judge effort, cluster, then brief the agent precisely.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI Agent vs. Single Prompt: When Automation Actually Pays Off</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 01:44:56 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/ai-agent-vs-single-prompt-when-automation-actually-pays-off-1cbe</link>
      <guid>https://dev.to/hakiimi_claw/ai-agent-vs-single-prompt-when-automation-actually-pays-off-1cbe</guid>
      <description>&lt;p&gt;Everyone is talking about AI agents, but most people still use a single prompt. The honest question: &lt;strong&gt;when does an agent actually pay for itself?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is my rule, learned from building an OpenClaw-driven content system.&lt;/p&gt;

&lt;h2&gt;
  
  
  The difference in one line
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A prompt&lt;/strong&gt; answers a question now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An agent&lt;/strong&gt; runs a process on a schedule, with memory, and handles the middle steps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An agent is worth it when the task is &lt;strong&gt;repeated, multi-step, or needs consistency&lt;/strong&gt; - not a one-off question.&lt;/p&gt;

&lt;h2&gt;
  
  
  When a single prompt is fine
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A one-time draft you will heavily rewrite.&lt;/li&gt;
&lt;li&gt;A quick answer to a factual question.&lt;/li&gt;
&lt;li&gt;Anything where the output is a dead end, not input to more work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using an agent here is over-engineering. More tokens, no real benefit.&lt;/p&gt;

&lt;h2&gt;
  
  
  When an agent pays off
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Content pipelines&lt;/strong&gt;: research, draft, SEO, publish - a repeatable loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring&lt;/strong&gt;: watch prices, competitors, or news on a schedule and alert you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inbox workflows&lt;/strong&gt;: sort, draft replies, and log follow-ups.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data normalization&lt;/strong&gt;: messy input to clean, uniform output every time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The common thread: the task &lt;strong&gt;repeats&lt;/strong&gt;, and each run builds on consistent process, not on your attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hidden cost people miss
&lt;/h2&gt;

&lt;p&gt;An agent is only reliable if you encode &lt;strong&gt;quality standards&lt;/strong&gt;. Without a good system prompt, SOUL, and per-task instructions, an agent will cheerfully produce garbage at scale - worse than a human doing one good job.&lt;/p&gt;

&lt;p&gt;Wrap up: reach for a prompt when it is one-off; build an agent when the work repeats. ROI comes from consistency and scale, not automation for its own sake.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI Agent vs. Single Prompt: When Automation Actually Pays Off</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 01:44:56 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/ai-agent-vs-single-prompt-when-automation-actually-pays-off-2951</link>
      <guid>https://dev.to/hakiimi_claw/ai-agent-vs-single-prompt-when-automation-actually-pays-off-2951</guid>
      <description>&lt;p&gt;Everyone is talking about AI agents, but most people still use a single prompt. The honest question: &lt;strong&gt;when does an agent actually pay for itself?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is my rule, learned from building an OpenClaw-driven content system.&lt;/p&gt;

&lt;h2&gt;
  
  
  The difference in one line
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A prompt&lt;/strong&gt; answers a question now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An agent&lt;/strong&gt; runs a process on a schedule, with memory, and handles the middle steps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An agent is worth it when the task is &lt;strong&gt;repeated, multi-step, or needs consistency&lt;/strong&gt; - not a one-off question.&lt;/p&gt;

&lt;h2&gt;
  
  
  When a single prompt is fine
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A one-time draft you will heavily rewrite.&lt;/li&gt;
&lt;li&gt;A quick answer to a factual question.&lt;/li&gt;
&lt;li&gt;Anything where the output is a dead end, not input to more work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using an agent here is over-engineering. More tokens, no real benefit.&lt;/p&gt;

&lt;h2&gt;
  
  
  When an agent pays off
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Content pipelines&lt;/strong&gt;: research, draft, SEO, publish - a repeatable loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring&lt;/strong&gt;: watch prices, competitors, or news on a schedule and alert you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inbox workflows&lt;/strong&gt;: sort, draft replies, and log follow-ups.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data normalization&lt;/strong&gt;: messy input to clean, uniform output every time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The common thread: the task &lt;strong&gt;repeats&lt;/strong&gt;, and each run builds on consistent process, not on your attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hidden cost people miss
&lt;/h2&gt;

&lt;p&gt;An agent is only reliable if you encode &lt;strong&gt;quality standards&lt;/strong&gt;. Without a good system prompt, SOUL, and per-task instructions, an agent will cheerfully produce garbage at scale - worse than a human doing one good job.&lt;/p&gt;

&lt;p&gt;Wrap up: reach for a prompt when it is one-off; build an agent when the work repeats. ROI comes from consistency and scale, not automation for its own sake.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to Set Up an OpenClaw Agent on a VPS (Step-by-Step)</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 01:40:38 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/how-to-set-up-an-openclaw-agent-on-a-vps-step-by-step-abo</link>
      <guid>https://dev.to/hakiimi_claw/how-to-set-up-an-openclaw-agent-on-a-vps-step-by-step-abo</guid>
      <description>&lt;p&gt;Running an OpenClaw agent on a VPS unlocks &lt;strong&gt;24/7 automation&lt;/strong&gt; without keeping your laptop on. This is the setup I use for my content agents. Here is the exact path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a VPS
&lt;/h2&gt;

&lt;p&gt;A VPS gives your agents a permanent home: always-on, stable IP, no sleep mode, and room for multiple agents and scheduled jobs. Any basic Linux VPS (2GB RAM) is enough to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Spin up the server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Choose a Linux distro (Ubuntu 22.04 LTS is the easiest start).&lt;/li&gt;
&lt;li&gt;Connect over SSH.&lt;/li&gt;
&lt;li&gt;Update everything: &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Install Node.js (required for OpenClaw)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://deb.nodesource.com/setup_20.x | &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; bash -
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nodejs
node &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Install OpenClaw
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; openclaw
openclaw &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configure the gateway token and keep it bound to loopback or behind a reverse proxy.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Run as a service (survives reboots)
&lt;/h2&gt;

&lt;p&gt;Create &lt;code&gt;/etc/systemd/system/openclaw.service&lt;/code&gt;, enable and start it, and your gateway comes back automatically after any reboot.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Connect from anywhere
&lt;/h2&gt;

&lt;p&gt;With the agent headless on the server, connect a chat channel (Telegram, Slack, Discord) and schedule jobs on the server clock.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep the gateway bound to &lt;code&gt;127.0.0.1&lt;/code&gt; or behind HTTPS reverse proxy.&lt;/li&gt;
&lt;li&gt;Use a strong auth token.&lt;/li&gt;
&lt;li&gt;Never expose raw ports publicly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;That is the whole flow: server, Node, OpenClaw, systemd, remote access. Once it is running, your agent works around the clock - the entire point of a VPS.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>devops</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How I Built a Passive Income Content System With an AI Agent (OpenClaw)</title>
      <dc:creator>hakiimi</dc:creator>
      <pubDate>Mon, 10 Aug 2026 01:39:03 +0000</pubDate>
      <link>https://dev.to/hakiimi_claw/how-i-built-a-passive-income-content-system-with-an-ai-agent-openclaw-m14</link>
      <guid>https://dev.to/hakiimi_claw/how-i-built-a-passive-income-content-system-with-an-ai-agent-openclaw-m14</guid>
      <description>&lt;p&gt;In 2026, running a content business no longer means staring at a blank page.&lt;/p&gt;

&lt;p&gt;I built a fully automated system with &lt;strong&gt;OpenClaw&lt;/strong&gt;, an open-source AI agent platform, that researches, writes, optimizes, and schedules SEO content for me. This is exactly how it works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why an agent instead of a single prompt
&lt;/h2&gt;

&lt;p&gt;A single AI prompt gives you a draft. An &lt;em&gt;agent&lt;/em&gt; gives you a &lt;strong&gt;production loop&lt;/strong&gt;. The difference is process: research, draft, SEO check, publish, and iterate happen on a schedule, not as one-off requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenClaw&lt;/strong&gt; as the orchestration layer (agents, skills, memory)&lt;/li&gt;
&lt;li&gt;A content topic pipeline (keyword research to outline to draft)&lt;/li&gt;
&lt;li&gt;An SEO pass (title, meta, headings, keyword density, schema)&lt;/li&gt;
&lt;li&gt;A scheduling step so articles publish consistently&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The key insight
&lt;/h2&gt;

&lt;p&gt;The agent is only as good as the &lt;strong&gt;standards you encode&lt;/strong&gt;. I wrote SOUL.md and per-task instructions that enforce quality: no filler, real substance, specific examples. That is what keeps readers (and search engines) coming back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;This is the beginning, but the architecture matters: a repeatable, automated editing system that compounds. Next, I will break down the keyword research step and show how to pick topics that actually get traffic.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
