<?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: John Yegs</title>
    <description>The latest articles on DEV Community by John Yegs (@jyeg).</description>
    <link>https://dev.to/jyeg</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%2F4083710%2F625fbe63-1ef2-4fb1-a70f-b1b9f6ed1925.jpg</url>
      <title>DEV Community: John Yegs</title>
      <link>https://dev.to/jyeg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jyeg"/>
    <language>en</language>
    <item>
      <title>How to Build a Simple AI-Powered Chatbot with Next.js and Claude</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:10:31 +0000</pubDate>
      <link>https://dev.to/jyeg/how-to-build-a-simple-ai-powered-chatbot-with-nextjs-and-claude-5gck</link>
      <guid>https://dev.to/jyeg/how-to-build-a-simple-ai-powered-chatbot-with-nextjs-and-claude-5gck</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/tutorial-nextjs-claude-chatbot" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;. Updated 2026-10-07.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You build an AI chatbot with Next.js and Claude from two files: an App Router route handler that calls streamText from the Vercel AI SDK, and a client component that renders the stream with useChat. This version uses Next.js 16.4, AI SDK 7, and Claude Opus 5.5. Every file below type-checks and passes next build as of October 7, 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;The 2024 version of this post used the OpenAI SDK and a hand-written fetch loop. Both are out of date. AI SDK 7 renamed system to instructions, dropped Node 20, and replaced result.toUIMessageStreamResponse() with two standalone helpers. Next.js 16 turned on Cache Components, which fails the build on the default useChat call. You want code you copy once and run, with the model, the cost, and the security tradeoffs stated up front.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Scaffold the project and install three packages
&lt;/h3&gt;

&lt;p&gt;You need Node.js 22 or later. AI SDK 7 sets &lt;code&gt;"engines": { "node": "&amp;gt;=22" }&lt;/code&gt; in its package.json and dropped support for Node 18 and 20. I verified this build on Node 22.23.1.&lt;/p&gt;

&lt;p&gt;Create the app with Tailwind and the App Router, then add the AI SDK packages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-next-app@latest claude-chat &lt;span class="nt"&gt;--ts&lt;/span&gt; &lt;span class="nt"&gt;--tailwind&lt;/span&gt; &lt;span class="nt"&gt;--eslint&lt;/span&gt; &lt;span class="nt"&gt;--app&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;claude-chat
npm &lt;span class="nb"&gt;install &lt;/span&gt;ai @ai-sdk/anthropic @ai-sdk/react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Versions this post was tested against on October 7, 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt; 16.4.0&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;react&lt;/code&gt; 19.3.0&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ai&lt;/code&gt; 7.0.131&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@ai-sdk/anthropic&lt;/code&gt; 4.0.75&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@ai-sdk/react&lt;/code&gt; 4.0.134&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;zod&lt;/code&gt; 4.6.5 (pulled in as a peer dependency, you do not import it here)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three AI SDK packages are ESM-only in version 7. If you have an older &lt;code&gt;require()&lt;/code&gt; based config somewhere, convert it to &lt;code&gt;import&lt;/code&gt; first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Put the API key where the browser cannot see it
&lt;/h3&gt;

&lt;p&gt;Create an API key in the Claude Console, then add it to &lt;code&gt;.env.local&lt;/code&gt; at the project root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sk-ant-...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;@ai-sdk/anthropic&lt;/code&gt; provider reads &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; from the environment by default, so you never pass the key in code. Two rules keep it private:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Never prefix it with &lt;code&gt;NEXT_PUBLIC_&lt;/code&gt;. Next.js inlines any &lt;code&gt;NEXT_PUBLIC_&lt;/code&gt; variable into the client bundle.&lt;/li&gt;
&lt;li&gt;Only import &lt;code&gt;@ai-sdk/anthropic&lt;/code&gt; from server code. In this tutorial the only import lives in the route handler. The page component imports &lt;code&gt;@ai-sdk/react&lt;/code&gt; and &lt;code&gt;ai&lt;/code&gt;, neither of which touches the key.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Add &lt;code&gt;.env.local&lt;/code&gt; to &lt;code&gt;.gitignore&lt;/code&gt; if create-next-app did not already do it. On Vercel, set the same variable under Project Settings, Environment Variables, and leave it unchecked for the client.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Write the route handler
&lt;/h3&gt;

&lt;p&gt;Create &lt;code&gt;app/api/chat/route.ts&lt;/code&gt;. This is the only file that talks to Anthropic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;anthropic&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ai-sdk/anthropic&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;convertToModelMessages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;createUIMessageStreamResponse&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;streamText&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;toUIMessageStream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;UIMessage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ai&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// One place to change the model. See the FAQ for the cost of each option.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;MODEL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;claude-opus-5-5&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Only the last N messages go to the model. Caps input tokens per request.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;MAX_HISTORY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Allow streaming responses up to 30 seconds on Vercel.&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;maxDuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;POST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;UIMessage&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;streamText&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;MODEL&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;You are a concise assistant for a small business website. &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Answer in plain language. If you do not know, say so.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;convertToModelMessages&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;MAX_HISTORY&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="na"&gt;maxOutputTokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;// Stops the Anthropic request when the browser aborts the fetch.&lt;/span&gt;
    &lt;span class="na"&gt;abortSignal&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;providerOptions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Chat does not need deep reasoning. 'low' cuts latency and output tokens.&lt;/span&gt;
        &lt;span class="na"&gt;effort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;low&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="c1"&gt;// If Claude's safety classifiers decline a request, Anthropic re-runs it&lt;/span&gt;
        &lt;span class="c1"&gt;// on a fallback model inside the same call. The provider adds the beta header.&lt;/span&gt;
        &lt;span class="na"&gt;fallbacks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;default&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;onError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;[chat] stream error&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;createUIMessageStreamResponse&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;toUIMessageStream&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="c1"&gt;// The client sees this string instead of the raw error.&lt;/span&gt;
      &lt;span class="na"&gt;onError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;The assistant is unavailable right now. Try again in a moment.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What each piece does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;anthropic(MODEL)&lt;/code&gt; builds the model reference. &lt;code&gt;claude-opus-5-5&lt;/code&gt; is the current Opus model. The FAQ covers swapping to Sonnet or Haiku.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;instructions&lt;/code&gt; is the system prompt. AI SDK 7 renamed it from &lt;code&gt;system&lt;/code&gt;. The old name still works with a deprecation warning. Version 7 also rejects &lt;code&gt;role: "system"&lt;/code&gt; entries inside &lt;code&gt;messages&lt;/code&gt; by default, so if you persist chat history, keep system text out of it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;convertToModelMessages&lt;/code&gt; strips UI metadata from the &lt;code&gt;UIMessage[]&lt;/code&gt; the client sends and returns the &lt;code&gt;ModelMessage[]&lt;/code&gt; shape the model expects. It is async in version 6 and later, so await it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;messages.slice(-MAX_HISTORY)&lt;/code&gt; bounds input tokens. Without it, a long session re-sends the whole transcript on every turn and your cost grows with conversation length.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;maxOutputTokens: 1024&lt;/code&gt; caps the reply. Raise it if your use case needs long answers.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;abortSignal: req.signal&lt;/code&gt; cancels the Anthropic request when the user clicks Stop. Without it the server keeps generating tokens you pay for and nobody reads.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;effort: "low"&lt;/code&gt; tells Claude to spend fewer thinking tokens. Opus 5.5 defaults to &lt;code&gt;medium&lt;/code&gt;. A website chat widget rarely needs more than &lt;code&gt;low&lt;/code&gt;, and the difference shows up in both latency and output cost.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;fallbacks: "default"&lt;/code&gt; opts into Anthropic server-side refusal fallbacks. If a safety classifier declines a request, the API re-runs it on a fallback model in the same call. The provider adds the required beta header for you.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;toUIMessageStream&lt;/code&gt; plus &lt;code&gt;createUIMessageStreamResponse&lt;/code&gt; replace the &lt;code&gt;result.toUIMessageStreamResponse()&lt;/code&gt; method from version 6. The old method still works in 7 with a warning and is scheduled for removal in the next major.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;onError&lt;/code&gt; on &lt;code&gt;toUIMessageStream&lt;/code&gt; controls what text the browser sees. The SDK masks errors by default and sends the literal string "An error occurred." Return your own string there. The &lt;code&gt;onError&lt;/code&gt; on &lt;code&gt;streamText&lt;/code&gt; is for server logs only.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;maxDuration = 30&lt;/code&gt; lets a Vercel function stream for up to 30 seconds. Other hosts ignore it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4: Write the chat UI
&lt;/h3&gt;

&lt;p&gt;Replace &lt;code&gt;app/page.tsx&lt;/code&gt; with a client component. &lt;code&gt;useChat&lt;/code&gt; owns the message list, the request lifecycle, and the abort controller.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;use client&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useChat&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ai-sdk/react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;DefaultChatTransport&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ai&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Chat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setInput&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stop&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;regenerate&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useChat&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="c1"&gt;// A fixed id keeps the prerender deterministic under Next.js Cache Components.&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;site-chat&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;transport&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;DefaultChatTransport&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;api&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/chat&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;busy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;submitted&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;streaming&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"mx-auto flex min-h-screen w-full max-w-2xl flex-col gap-4 p-6"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-xl font-semibold"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Ask us anything&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"flex flex-1 flex-col gap-3"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;
            &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;
              &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;role&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
                &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;self-end rounded-lg bg-blue-600 px-3 py-2 text-white&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
                &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;self-start rounded-lg bg-gray-100 px-3 py-2 text-gray-900&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
            &lt;span class="si"&gt;}&lt;/span&gt;
          &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
              &lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"whitespace-pre-wrap"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
                  &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
              &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;

        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;submitted&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-sm text-gray-500"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Thinking...&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;

        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"rounded-lg border border-red-300 bg-red-50 p-3 text-sm text-red-800"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;
              &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;
              &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;regenerate&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
              &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"mt-2 underline"&lt;/span&gt;
            &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
              Retry
            &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt;
        &lt;span class="na"&gt;onSubmit&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
          &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
          &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;busy&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
          &lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
          &lt;span class="nf"&gt;setInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"flex gap-2"&lt;/span&gt;
      &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt;
          &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
          &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
          &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Type a question"&lt;/span&gt;
          &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"flex-1 rounded-lg border border-gray-300 px-3 py-2"&lt;/span&gt;
          &lt;span class="na"&gt;disabled&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;busy&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;busy&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;
            &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;stop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
            &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"rounded-lg border border-gray-300 px-4 py-2"&lt;/span&gt;
          &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            Stop
          &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;
            &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"rounded-lg bg-blue-600 px-4 py-2 text-white disabled:opacity-50"&lt;/span&gt;
            &lt;span class="na"&gt;disabled&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
          &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            Send
          &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notes on the parts people trip on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;message.parts&lt;/code&gt; replaced &lt;code&gt;message.content&lt;/code&gt; in AI SDK 5. A message is an array of typed parts. This UI renders only &lt;code&gt;text&lt;/code&gt; parts. If you add tools later, you render &lt;code&gt;tool-*&lt;/code&gt; parts in the same &lt;code&gt;switch&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;status&lt;/code&gt; is one of &lt;code&gt;submitted&lt;/code&gt;, &lt;code&gt;streaming&lt;/code&gt;, &lt;code&gt;ready&lt;/code&gt;, or &lt;code&gt;error&lt;/code&gt;. The form disables itself while busy and swaps the Send button for Stop.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;stop()&lt;/code&gt; aborts the fetch. Combined with &lt;code&gt;abortSignal&lt;/code&gt; in the route handler, the Anthropic request ends too.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;error&lt;/code&gt; and &lt;code&gt;regenerate()&lt;/code&gt; give you a retry path. The message you see in &lt;code&gt;error.message&lt;/code&gt; is the string your server returned from &lt;code&gt;onError&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;id: "site-chat"&lt;/code&gt; is required when Cache Components are on. create-next-app for Next.js 16.4 writes &lt;code&gt;cacheComponents: true&lt;/code&gt; into &lt;code&gt;next.config.ts&lt;/code&gt;. Without it, &lt;code&gt;useChat&lt;/code&gt; generates a random chat id during server-side prerender, and &lt;code&gt;next build&lt;/code&gt; fails with "Next.js encountered the unstable value Math.random() in a Client Component." A fixed id makes the prerender deterministic. Wrapping the component in &lt;code&gt;Suspense&lt;/code&gt; is the other documented fix.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DefaultChatTransport&lt;/code&gt; is where you add headers or extra body fields later, for example a session id for rate limiting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 5: Run it and confirm the stream
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;, type a question, and watch the reply arrive token by token. Three checks worth doing before you move on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Network tab and look at the &lt;code&gt;/api/chat&lt;/code&gt; response. It should be a streamed response with content type &lt;code&gt;text/event-stream&lt;/code&gt;, and you should see the chunks arrive over time rather than one blob.&lt;/li&gt;
&lt;li&gt;Click Stop mid-response. The stream ends and the server log shows no further output.&lt;/li&gt;
&lt;li&gt;Set &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; to a bad value and send a message. The browser shows your &lt;code&gt;onError&lt;/code&gt; string, and the Retry button calls &lt;code&gt;regenerate()&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To confirm the type contract without a key, run &lt;code&gt;npx tsc --noEmit&lt;/code&gt; and &lt;code&gt;npm run build&lt;/code&gt;. Both passed on the exact versions listed in Step 1.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: What to add before this goes on a real site
&lt;/h3&gt;

&lt;p&gt;The two files above are a complete chatbot. They are not a complete product. Four things to add, in order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rate limiting.&lt;/strong&gt; Anyone who finds &lt;code&gt;/api/chat&lt;/code&gt; can call it with your key behind it. Put a per-IP or per-session limit in front of the route. Upstash Ratelimit works on serverless hosts without a persistent connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A real system prompt.&lt;/strong&gt; The &lt;code&gt;instructions&lt;/code&gt; string above is a placeholder. Write down what the bot does, what it refuses, and how it hands off to a human. Keep it stable so Anthropic prompt caching has a prefix to reuse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logging.&lt;/strong&gt; Log &lt;code&gt;result.usage&lt;/code&gt; on the server so you see tokens per conversation. That number, times the prices in the FAQ, is your bill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your own data.&lt;/strong&gt; This bot answers from Claude general knowledge. It does not know your hours, your pricing, or your policies. For that you need retrieval over your documents. &lt;a href="https://dev.to/blog/rag-agents-vs-faq-chatbot"&gt;RAG agents vs. FAQ chatbots&lt;/a&gt; explains the difference, and the &lt;a href="https://dev.to/services/rag-agents"&gt;RAG agents service page&lt;/a&gt; covers what a build looks like.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you would rather have this scoped and built for your business, book a &lt;a href="https://dev.to/contact"&gt;$350 AI strategy session&lt;/a&gt;. The fee is credited in full toward a build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Files you write:&lt;/strong&gt; 2 (One route handler, one client component. Plus one line in .env.local.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verified build:&lt;/strong&gt; Oct 7, 2026 (tsc --noEmit and next build pass on Next.js 16.4.0, ai 7.0.131, Node 22.23.1.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time to a streaming reply:&lt;/strong&gt; Under 1 hour (From an empty directory to a working chat on localhost, API key in hand.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How much does each chatbot message cost with Claude?
&lt;/h3&gt;

&lt;p&gt;A chatbot message costs about $0.012 on Claude Opus 5.5, $0.006 on Sonnet 5.5, and $0.0003 on Haiku 5.5, assuming roughly 1,500 input tokens (system prompt plus a 20-message history) and 300 output tokens. Anthropic list prices on October 7, 2026: Opus 5.5 is $4 per million input tokens and $20 per million output. Sonnet 5.5 is $2 and $10. Haiku 5.5 is $0.10 and $0.50 for prompts under 100,000 tokens. Per 1,000 messages that is about $12, $6, and $0.30. Cache reads on Opus 5.5 and Sonnet 5.5 are 5 percent of the input price, so a stable system prompt lowers the input side further. Log result.usage to replace these estimates with your own numbers.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I keep the Anthropic API key server-side in Next.js?
&lt;/h3&gt;

&lt;p&gt;Keep the Anthropic API key server-side by storing it as ANTHROPIC_API_KEY in .env.local and only importing @ai-sdk/anthropic from a route handler or server component. Never prefix the variable with NEXT_PUBLIC_, because Next.js inlines those into the client bundle. The client component in this tutorial imports @ai-sdk/react and ai only, and it calls your /api/chat route, so the key never leaves the server. On Vercel, add the variable in Project Settings and leave it as a server-only variable.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I swap the Claude model in this chatbot?
&lt;/h3&gt;

&lt;p&gt;Swap the Claude model by changing the MODEL constant in app/api/chat/route.ts to another model id the @ai-sdk/anthropic provider accepts: claude-opus-5-5, claude-sonnet-5-5, or claude-haiku-5-5 are the current options in each tier. Use the bare id with no date suffix. Sonnet 5.5 costs half of Opus 5.5 per token and Haiku 5.5 costs a fortieth. Test replies after a swap, because effort levels and default behavior differ between tiers. For a website chat widget, Sonnet 5.5 or Haiku 5.5 at low effort is the usual place to land after you have measured quality on Opus.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which Node.js version does this chatbot require?
&lt;/h3&gt;

&lt;p&gt;This chatbot requires Node.js 22 or later, because the ai package version 7 declares engines node 22 and up and the AI SDK 7 migration guide states that Node 18 and 20 are no longer supported. Next.js 16.4 requires Node 20.9 or later, so the AI SDK is the stricter constraint. This build was verified on Node 22.23.1. Set "engines": { "node": "&amp;gt;=22" } in package.json so a teammate on Node 20 gets a clear error instead of a confusing stack trace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does next build fail with "unstable value Math.random() in a Client Component"?
&lt;/h3&gt;

&lt;p&gt;next build fails with the Math.random() error because create-next-app for Next.js 16.4 writes cacheComponents: true into next.config.ts, and Cache Components prerender client components on the server and rejects any value the prerender cannot reproduce. useChat generates a random chat id when you do not pass one. The fix is to pass a fixed id, for example useChat({ id: "site-chat", ... }). Wrapping the chat component in a Suspense boundary from a server component parent is the other fix documented by Next.js.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can this chatbot answer questions about my own business?
&lt;/h3&gt;

&lt;p&gt;This chatbot cannot answer questions about your business on its own, because Claude only knows what is in the system prompt and the conversation. For hours, pricing, and policies you can paste a short block of facts into the instructions string. For anything larger than a page or two, you need retrieval: your documents indexed and the relevant passages fetched into the prompt on each turn. That is a RAG agent, and it is a separate build from the one in this post.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/tutorial-nextjs-claude-chatbot" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aitutorial</category>
      <category>nextjs</category>
      <category>claude</category>
      <category>chatbot</category>
    </item>
    <item>
      <title>What Are RAG Agents? A Plain-English Guide for Business Owners</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:10:26 +0000</pubDate>
      <link>https://dev.to/jyeg/what-are-rag-agents-a-plain-english-guide-for-business-owners-2f75</link>
      <guid>https://dev.to/jyeg/what-are-rag-agents-a-plain-english-guide-for-business-owners-2f75</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/what-are-rag-agents-business-guide" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;. Updated 2026-10-07.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;RAG agents (Retrieval-Augmented Generation) are AI assistants that search your company's own documents before they answer, then cite the source, so the answer comes from your policy or contract instead of the model's general training. This guide covers how they work in October 2026, when a per-seat tool like Copilot or Claude Team is enough, when a custom build pays off, and what each option costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Every assistant now claims to know your business. Microsoft 365 Copilot, ChatGPT Business, Claude Team, and Google Workspace each ship connectors to your files, and every AI vendor calls their product an agent. An owner comparing a $20 per seat subscription with a five-figure custom quote cannot tell what the extra money buys, or whether a 1 million token context window makes retrieval unnecessary. This guide explains the mechanics in plain language, lists verified October 2026 prices, and gives you a test for which option fits your document library.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What RAG means
&lt;/h3&gt;

&lt;p&gt;RAG stands for Retrieval-Augmented Generation. A language model on its own answers from what it learned in training. A RAG agent runs a search over your documents first, hands the matching passages to the model, and the model writes an answer from those passages with a citation back to the page it used.&lt;/p&gt;

&lt;p&gt;Three parts do the work:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ingestion.&lt;/strong&gt; Someone collects your PDFs, Word files, wiki pages, tickets, and emails, splits them into passages, and indexes them. In most builds, indexing means creating embeddings (numeric fingerprints of meaning) and storing them in a vector database, plus a keyword index for exact terms like part numbers and case citations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval.&lt;/strong&gt; When an employee asks a question, the system searches the index and pulls the handful of passages most likely to contain the answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generation.&lt;/strong&gt; The model reads those passages and writes the answer, quoting the source.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The word "agent" means the model decides what to search for, runs more than one search when the first comes back thin, and calls other tools (your CRM, your ticketing system) when the answer lives there. A plain RAG pipeline searches once. An agent keeps searching until it has what it needs or reports it could not find the answer.&lt;/p&gt;

&lt;h3&gt;
  
  
  How a RAG agent differs from ChatGPT or Claude out of the box
&lt;/h3&gt;

&lt;p&gt;In 2025 the answer was simple: ChatGPT knew the internet and a RAG agent knew your files. In October 2026 that line has moved. &lt;a href="https://claude.com/pricing" rel="noopener noreferrer"&gt;Claude&lt;/a&gt; ships connectors to Google Drive, Microsoft 365, Slack, Notion, and HubSpot on every plan, and enterprise search across company data on Team and Enterprise. ChatGPT Business supports connectors and custom MCP servers for company knowledge. Microsoft 365 Copilot reads your SharePoint and OneDrive by default.&lt;/p&gt;

&lt;p&gt;So the question for an owner becomes who controls the four things a RAG agent gets right or wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permissions.&lt;/strong&gt; Does the system respect who is allowed to see which document, or does a junior hire get answers drawn from the partner-only folder?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval quality.&lt;/strong&gt; Does it find the right clause in a 90-page contract, or the first paragraph with a matching keyword?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Citations.&lt;/strong&gt; Does every answer link to the page it came from, so a human verifies in one click?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freshness.&lt;/strong&gt; When you update the return policy, does the agent answer from the new version the same day?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A per-seat assistant gives you reasonable defaults on all four and no control over any of them. A custom build gives you control and the bill that comes with it. The next section prices both.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three ways to get RAG in October 2026, with prices
&lt;/h3&gt;

&lt;p&gt;Verified list prices as of this week. They move, so check before you budget.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. A per-seat assistant with connectors.&lt;/strong&gt; The cheapest way to find out whether your team will use this.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.microsoft.com/en-us/microsoft-365-copilot/enterprise" rel="noopener noreferrer"&gt;Microsoft 365 Copilot&lt;/a&gt;: $30 per user per month paid yearly. The small-business add-on, &lt;a href="https://www.microsoft.com/en-us/microsoft-365-copilot/pricing" rel="noopener noreferrer"&gt;Microsoft 365 Copilot Business&lt;/a&gt;, lists at $21 per user per month on an annual term, discounted to $18 through December 31, 2026 for the first year, capped at 300 users, and requires a qualifying Microsoft 365 plan.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://claude.com/pricing" rel="noopener noreferrer"&gt;Claude Team&lt;/a&gt;: $20 per seat per month billed annually, $25 monthly, 2 to 150 seats. Connectors on every plan, enterprise search on Team and Enterprise.&lt;/li&gt;
&lt;li&gt;ChatGPT Business: $20 per user per month billed annually, $25 monthly, two-seat minimum, with connectors and support for custom MCP servers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://workspace.google.com/pricing" rel="noopener noreferrer"&gt;Google Workspace&lt;/a&gt;: Standard at $14 per user per month includes Gemini in Gmail, Docs, Sheets, and Drive plus Gemini Notebook.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a 20-person office, that is $280 to $600 per month. If your documents already live in Microsoft 365 or Google Drive and your questions are "what does the handbook say about PTO," start here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A managed retrieval service inside a custom app.&lt;/strong&gt; You get your own interface, your own rules, and the vendor runs the index.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://developers.openai.com/api/docs/pricing" rel="noopener noreferrer"&gt;OpenAI file search&lt;/a&gt;: $0.10 per GB of index per day with the first GB free, plus $2.50 per 1,000 searches.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pinecone.io/pricing/" rel="noopener noreferrer"&gt;Pinecone&lt;/a&gt; vector database: free Starter tier up to 2 GB, then a $50 per month minimum on Standard, with storage at $0.33 per GB per month.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pgvector/pgvector" rel="noopener noreferrer"&gt;pgvector&lt;/a&gt;: open-source vector search inside Postgres 13 and later. On &lt;a href="https://supabase.com/pricing" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt; that runs on the free tier or the $25 per month Pro plan. For a small document library this is the cheapest index you will find.&lt;/li&gt;
&lt;li&gt;Model tokens: &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;Claude Sonnet 5.5&lt;/a&gt; costs $2 per million input tokens and $10 per million output. Claude Haiku 5.5 costs $0.10 and $0.50 for prompts under 100,000 tokens. A question that retrieves 20,000 tokens of passages and writes a 500-token answer costs about 4.5 cents on Sonnet and under a quarter of a cent on Haiku. One thousand questions a month is $45 or about $2.25.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Running costs for a small business land under $100 per month in most cases. The money is in the build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. A custom build.&lt;/strong&gt; Someone designs the ingestion, picks the embedding model, writes the permission layer, builds the evaluation set, and connects your systems. JY Labs scopes a typical deployment at &lt;a href="https://dev.to/services/rag-agents"&gt;6 to 7 weeks&lt;/a&gt;, with a working prototype by week 3 and 8 to 10 weeks when multiple sources, custom security, or legacy systems are involved. For a market reference, one agency's &lt;a href="https://www.raftlabs.com/blog/rag-development-cost" rel="noopener noreferrer"&gt;2026 breakdown&lt;/a&gt; puts simple document Q&amp;amp;A at $12,000 to $30,000 over 4 to 6 weeks and production multi-source systems at $30,000 to $60,000 over 8 to 14 weeks. The same article names data preparation as the most common overrun and budgets 20 to 30 percent of build time for it. That matches what I see: the index is a week, the permissions and the messy scanned PDFs are the month.&lt;/p&gt;

&lt;p&gt;You buy a custom build when permissions, citations, or freshness are a compliance matter, when your documents live outside the big three suites, or when the agent must take actions (open a ticket, draft a quote) on top of answering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vector search vs. long context vs. agentic retrieval
&lt;/h3&gt;

&lt;p&gt;The flagship models now accept about a million tokens per request. &lt;a href="https://platform.claude.com/docs/en/build-with-claude/context-windows" rel="noopener noreferrer"&gt;Claude Fable 5.1, Opus 5.5, Sonnet 5.5, and Haiku 5.5&lt;/a&gt; all have a 1M-token window at standard pricing. OpenAI's GPT-6 Astra lists a 1.05M-token window. Google's Gemini 3.1 Pro lists 1,048,576. A million tokens is roughly 555,000 words on Anthropic's current tokenizer.&lt;/p&gt;

&lt;p&gt;That raises the obvious question: why search at all when you could paste the whole handbook into the prompt?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paste it when the library is small.&lt;/strong&gt; Anthropic's own guidance in its &lt;a href="https://www.anthropic.com/news/contextual-retrieval" rel="noopener noreferrer"&gt;Contextual Retrieval&lt;/a&gt; post: if your knowledge base is under 200,000 tokens (about 150,000 words), put the whole thing in the prompt and use prompt caching. Cached input on Claude costs 10 percent of the base rate, 5 percent on Opus 5.5 and Sonnet 5.5. No index, no chunking, no retrieval misses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search when it is bigger, or when accuracy matters.&lt;/strong&gt; Anthropic's &lt;a href="https://platform.claude.com/docs/en/build-with-claude/context-windows" rel="noopener noreferrer"&gt;context windows documentation&lt;/a&gt; states the limit: as token count grows, accuracy and recall degrade, a phenomenon they call context rot. A 900,000-token prompt is billed at the same per-token rate as a 9,000-token one, so stuffing a million tokens into every question also costs 100 times more per question than retrieving the 10,000 that matter. The Contextual Retrieval post reports that adding a short context note to each chunk before indexing, combined with keyword search, cut retrieval failures by 49 percent, and adding a reranker cut them by 67 percent. Those are the techniques a serious build uses in 2026.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let the agent decide when the content changes often.&lt;/strong&gt; Anthropic's &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;context engineering guide&lt;/a&gt; describes the third pattern: instead of pre-indexing everything, the agent keeps lightweight references (file names, folder structure, saved queries) and loads a document only when it judges it relevant, the way Claude Code reads a codebase with grep and file paths. It is slower per question and needs good tools, and the guide suggests a hybrid for stable domains like legal and finance: load the core material up front, let the agent dig for the rest.&lt;/p&gt;

&lt;p&gt;For an owner, the practical rule: under 150,000 words, no index needed. Above that, a hybrid keyword-plus-vector index with reranking. If the agent also needs to act, or if your documents change every day, give it tools and let it search on its own.&lt;/p&gt;

&lt;h3&gt;
  
  
  What MCP means for your business
&lt;/h3&gt;

&lt;p&gt;You will see "MCP" on every vendor's feature list. The &lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; is an open standard for connecting an AI application to outside systems: files, databases, search, calendars, ticketing. Anthropic created it and &lt;a href="https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation" rel="noopener noreferrer"&gt;donated it&lt;/a&gt; to the Agentic AI Foundation under the Linux Foundation on December 9, 2025, with Block and OpenAI as co-founders. The announcement counted more than 10,000 published MCP servers and listed Claude, ChatGPT, Microsoft Copilot, Gemini, Cursor, and VS Code as adopters.&lt;/p&gt;

&lt;p&gt;Why an owner should care:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build once, use anywhere.&lt;/strong&gt; A connector to your practice-management or inventory system written as an MCP server works in Claude, ChatGPT, and Copilot. The integration work stops tying you to one assistant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vendors ship connectors you plug in.&lt;/strong&gt; Claude's &lt;a href="https://claude.com/connectors" rel="noopener noreferrer"&gt;connector directory&lt;/a&gt; lists Google Drive, Microsoft 365 (SharePoint, OneDrive, Outlook, Teams), Slack, Notion, HubSpot, Shopify, Box, Intercom, Zoom, and the Atlassian MCP server. OpenAI &lt;a href="https://developers.openai.com/api/docs/mcp/" rel="noopener noreferrer"&gt;supports&lt;/a&gt; custom MCP servers in ChatGPT and in its API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It carries real security obligations.&lt;/strong&gt; OpenAI's documentation says it does not build or vet third-party MCP servers, requires manual confirmation before any write action in ChatGPT, and warns about prompt injection from data a server exposes. Treat every connector as a user account with its own permissions, and review which ones your admin allows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCP moves your data to the model. Retrieval accuracy is a separate problem the connector does not solve.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long it takes
&lt;/h3&gt;

&lt;p&gt;Three timelines, matched to the three options above.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Per-seat assistant:&lt;/strong&gt; an afternoon to turn on, two weeks to learn whether the answers are good enough. Count how often someone opens the source document to check. If that number stays high, the connectors are finding the wrong passages and you have outgrown the tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed retrieval in a custom app:&lt;/strong&gt; two to four weeks for a developer to ship a working internal tool against a clean document set, longer if permissions must mirror your file system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom build:&lt;/strong&gt; &lt;a href="https://dev.to/services/rag-agents"&gt;6 to 7 weeks&lt;/a&gt; in a typical JY Labs engagement, prototype by week 3, 8 to 10 weeks for multiple sources or regulated data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The legal firm in our &lt;a href="https://dev.to/blog/case-study-rag-agents-legal-document-retrieval"&gt;document retrieval case study&lt;/a&gt; indexed 50,000+ documents with a hybrid keyword-and-vector pipeline, a legal-domain embedding model, and clickable citations to the exact paragraph. We tested against 200+ real attorney questions and tuned until accuracy exceeded 95 percent. Attorney research time dropped 80 percent, from 3.2 hours to 38 minutes per day, worth $180K a year to the firm, and attorneys surfaced 3.5x more relevant precedents per query. The evaluation set, 200 real questions with known answers, is the part most projects skip and the reason that one held up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Six questions to ask before you start
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;How big is the library?&lt;/strong&gt; Under roughly 150,000 words, skip the index and use a long-context prompt with caching. Over that, you need retrieval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Are the documents text?&lt;/strong&gt; Scanned images need OCR first. Budget for it. Data preparation is the most common overrun in RAG projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who is allowed to see what?&lt;/strong&gt; If the answer is "everyone sees everything," a per-seat tool works. If partners, HR, and the front desk see different folders, you need a permission layer the agent enforces on every search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Which questions repeat?&lt;/strong&gt; Write down the twenty your team asks most. Those become your evaluation set, the test you run before launch and after every document update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What does a slow or wrong answer cost today?&lt;/strong&gt; Hours spent searching times loaded hourly cost gives you the baseline. The &lt;a href="https://dev.to/tools/ai-roi-calculator"&gt;AI ROI calculator&lt;/a&gt; does the arithmetic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Does the agent need to act?&lt;/strong&gt; Answering "what is our refund policy" is retrieval. Issuing the refund is an agent with tools, and a different scope.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you land on questions 3 or 6 with a hard yes, book a &lt;a href="https://dev.to/contact"&gt;$350 AI strategy session&lt;/a&gt;. It is credited in full toward a build, and you leave with a written scope whether or not you build with us. If you land on "per-seat tool," turn one on this week and measure. The &lt;a href="https://dev.to/blog/rag-agents-vs-faq-chatbot"&gt;RAG agents vs. FAQ chatbot&lt;/a&gt; post covers the case where your question volume is small and stable enough for a scripted bot instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;You now know what a RAG agent does, why a 1 million token context window does not replace retrieval for a real document library, what MCP connectors change about vendor lock-in, and verified October 2026 prices for the three ways to get one. Turn on a per-seat tool first if your files live in Microsoft 365 or Google Drive. Book a scoped build when permissions, citations, or freshness carry legal weight, or when the agent must take actions as well as answer questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is a RAG agent in plain English?
&lt;/h3&gt;

&lt;p&gt;A RAG agent is an AI assistant that searches your company's documents before it answers, then writes the answer from what it found and cites the source page. RAG stands for Retrieval-Augmented Generation. The agent part means it decides what to search for, runs more than one search when the first comes back thin, and calls other tools like your CRM when the answer lives there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I still need RAG when models have a 1 million token context window?
&lt;/h3&gt;

&lt;p&gt;You still need RAG for any document library larger than about 200,000 tokens, roughly 150,000 words. Anthropic's guidance is to paste a smaller knowledge base into a cached prompt and skip retrieval. Above that size, accuracy and recall degrade as context grows (Anthropic calls this context rot), and a million-token prompt costs about 100 times more per question than retrieving the 10,000 tokens that matter.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does a RAG agent cost in 2026?
&lt;/h3&gt;

&lt;p&gt;A RAG agent costs $14 to $30 per user per month as a per-seat assistant with connectors (Google Workspace Standard $14, Claude Team and ChatGPT Business $20 to $25, Microsoft 365 Copilot $30), under $100 per month in running costs for a small custom deployment, and a build fee that one 2026 agency breakdown puts at $12,000 to $30,000 for simple document Q&amp;amp;A and $30,000 to $60,000 for multi-source systems. Data preparation and permission layers drive the build cost more than document count.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long does it take to build a RAG agent?
&lt;/h3&gt;

&lt;p&gt;A custom RAG agent takes 6 to 7 weeks in a typical JY Labs engagement, with a working prototype by week 3 and 8 to 10 weeks when multiple data sources, custom security, or legacy systems are involved. A per-seat assistant with connectors takes an afternoon to turn on. A managed retrieval service inside a simple internal app takes a developer two to four weeks against a clean document set.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is MCP and why does it matter for a small business?
&lt;/h3&gt;

&lt;p&gt;MCP (Model Context Protocol) is an open standard for connecting AI assistants to outside systems such as files, databases, calendars, and ticketing. Anthropic donated it to the Linux Foundation's Agentic AI Foundation in December 2025, and Claude, ChatGPT, Microsoft Copilot, and Gemini all support it. For a small business, a connector to your systems built once as an MCP server works across assistants, which reduces vendor lock-in. It does not make retrieval accurate, and each connector needs its own permission review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Microsoft 365 Copilot or ChatGPT Business enough instead of a custom RAG agent?
&lt;/h3&gt;

&lt;p&gt;Microsoft 365 Copilot or ChatGPT Business is enough when your documents already live in Microsoft 365 or Google Drive, everyone on the team is allowed to see the same files, and the questions are lookups like what the handbook says about PTO. You outgrow them when staff keep opening the source document to verify answers, when different roles must see different folders, when answers must cite an exact passage for compliance, or when the agent needs to take an action such as opening a ticket.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does a RAG agent differ from ChatGPT?
&lt;/h3&gt;

&lt;p&gt;A RAG agent answers from your documents with a citation, while ChatGPT without connectors answers from its training data and guesses when it does not know your policy. With ChatGPT Business connectors turned on, the remaining differences are control: who sees which document, how well it finds the right clause in a long contract, whether every answer links to its source, and how fast it reflects a policy change. A custom RAG agent gives you control over all four.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/what-are-rag-agents-business-guide" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ragagents</category>
      <category>aiexplained</category>
      <category>businessguide</category>
      <category>knowledgemanagement</category>
    </item>
    <item>
      <title>AI Lead Generation Explained for Business Owners</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:10:21 +0000</pubDate>
      <link>https://dev.to/jyeg/ai-lead-generation-explained-for-business-owners-44o7</link>
      <guid>https://dev.to/jyeg/ai-lead-generation-explained-for-business-owners-44o7</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/ai-lead-generation-explained" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;. Updated 2026-10-07.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI lead generation is software that builds a list of companies matching your best customers, fills in their contact data, ranks them by buying signals, and runs the first rounds of outreach, so your team spends its hours on replies instead of research. This guide covers what the tools cost in October 2026, the mailbox-provider rules and US laws a campaign has to clear, how much pipeline to expect, and whether your CRM is ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;A business owner comparing a $49 per seat prospecting tool with an AI SDR quoted at several thousand dollars a month cannot tell what the money buys or why one vendor's demo shows 10x pipeline and another's shows a blocked domain. The rules changed under both: Gmail, Yahoo, and Outlook now enforce authentication and complaint thresholds, the FCC released new consent-revocation rules for calls and texts on October 1, 2026, and a growing share of buyers ask ChatGPT who to call before they ever see your email. This post explains the mechanics, prices the parts, and names the constraints.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The four jobs the software does
&lt;/h3&gt;

&lt;p&gt;Every AI lead generation stack, whether you assemble it from parts or rent it from one vendor, does four things in order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Build the list.&lt;/strong&gt; Pull companies and contacts that look like your best existing customers from a database such as Apollo, LinkedIn, or a scraped source. The model learns the pattern from your closed-won deals: industry, headcount, revenue band, software they run, how they found you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enrich and verify.&lt;/strong&gt; Fill in the email, phone, title, and company facts for each record, then confirm the email is live before anyone sends to it. Clay is the tool most teams use here. It runs a waterfall across several data vendors so one bad provider does not blank out a column.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Score and prioritize.&lt;/strong&gt; Rank the list by signals that predict a reply: a job posting for the role your product serves, a new executive, a funding round, a visit to your pricing page. The score decides who gets a human call versus an automated sequence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Send and follow up.&lt;/strong&gt; Run the email and LinkedIn sequence from a pool of warmed mailboxes, route replies to a person, log everything back to the CRM.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The case study on this site followed the same shape. For a B2B SaaS client, &lt;a href="https://dev.to/blog/case-study-lead-gen-saas-pipeline"&gt;we built a scoring model from 18 months of deal data&lt;/a&gt;, layered intent signals on top, automated outreach across email, LinkedIn, and direct mail, and wired the whole thing into HubSpot. Monthly qualified pipeline went from $420K to $1.3M, and cost per SQL dropped from $340 to $129.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the parts cost in October 2026
&lt;/h3&gt;

&lt;p&gt;List prices from the vendors' own pricing pages, checked this week. They move, so confirm before you budget.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contact database and sequencing: &lt;a href="https://www.apollo.io/pricing" rel="noopener noreferrer"&gt;Apollo&lt;/a&gt;.&lt;/strong&gt; Basic $49, Professional $79, Organization $119 per user per month on annual billing (monthly billing runs about $60, $94, and $149, per a third-party price check in April 2026; Apollo's page shows plan names and features and loads prices separately). The catch is credits. An email lookup costs 1 credit and a phone number costs 8, credits are pooled across the team and expire at the end of each cycle, and every seat on the account has to sit on the same plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enrichment and workflow: &lt;a href="https://www.clay.com/pricing" rel="noopener noreferrer"&gt;Clay&lt;/a&gt;.&lt;/strong&gt; Launch starts at $185 per month ($167 on annual), Growth at $495 ($446 on annual), with unlimited seats on both. Clay meters two things separately: data credits for lookups and actions for workflow steps. Two companies on the same plan pay different bills, and top-ups cost a 30% premium over the plan rate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sending infrastructure: &lt;a href="https://instantly.ai/pricing" rel="noopener noreferrer"&gt;Instantly&lt;/a&gt; or &lt;a href="https://www.smartlead.ai/pricing" rel="noopener noreferrer"&gt;Smartlead&lt;/a&gt;.&lt;/strong&gt; Instantly's outreach-only plans are $47 (Growth, 5,000 emails and 1,000 contacts per month), $97 (Hypergrowth), and $358 (Light Speed); its Starter bundle with the lead database is $94. Smartlead's Base is $39 and Pro is $94, with unlimited connected mailboxes on every plan. Neither price includes the mailboxes themselves. Smartlead resells Google and Outlook inboxes from $4.50 per mailbox per month, and you need several of them on their own secondary domains to send at any volume without burning your main domain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Autonomous AI SDRs: Artisan, 11x, and similar.&lt;/strong&gt; These bundle the four jobs into one agent and sell through a sales call. I could not find a list price on either vendor's site this week, and competitor comparisons put deals in the low thousands per month. I have not run either on a client account and will not quote results I cannot show you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A realistic small-business stack&lt;/strong&gt; is Apollo for one or two seats, Clay Launch, Instantly or Smartlead, six to ten mailboxes on two or three secondary domains, and your existing CRM. Budget $450 to $900 per month in software before anyone's time. The build and tuning labor is the larger line, and it is the part a vendor's pricing page never shows.&lt;/p&gt;

&lt;h3&gt;
  
  
  How lead scoring decides who gets a human
&lt;/h3&gt;

&lt;p&gt;Scoring combines three kinds of evidence. &lt;strong&gt;Fit&lt;/strong&gt; is whether the company matches your closed-won pattern: industry, size, location, technology in use. &lt;strong&gt;Intent&lt;/strong&gt; is whether they are doing something right now that your best customers did right before they bought: hiring for a role, raising money, visiting your pricing page twice in a week, replacing a competitor's tool. &lt;strong&gt;Engagement&lt;/strong&gt; is how they respond to your outreach. The model weights replies, link clicks, and site visits over opens, since open tracking is unreliable.&lt;/p&gt;

&lt;p&gt;The output is a ranked queue. The top of the queue gets a phone call or a hand-written note from a rep. The middle gets a sequence. The bottom gets nothing, which is the point. On the SaaS build, each SDR ended up working 2.4 times more active opportunities because the queue stopped handing them cold names.&lt;/p&gt;

&lt;p&gt;Two honest limits. The model learns from your history, so if you have 20 closed deals it learns noise. And a score is a probability, so a 90 still loses and a 30 occasionally closes. Treat the score as a sort order for your team's day, and let a person read the account before anyone sends.&lt;/p&gt;

&lt;h3&gt;
  
  
  The mailbox-provider rules that quietly kill campaigns
&lt;/h3&gt;

&lt;p&gt;Most failed AI outreach projects I see did not fail on copy. They failed on delivery. Gmail, Yahoo, and Outlook each publish sender requirements now, and the tools above will happily let you violate them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://support.google.com/a/answer/81126" rel="noopener noreferrer"&gt;Gmail's sender guidelines&lt;/a&gt;&lt;/strong&gt; apply to anyone sending to Gmail accounts. All senders need SPF or DKIM, TLS, and a reverse DNS record. If you send more than 5,000 messages per day to Gmail you need SPF, DKIM, and DMARC (a policy of none is enough to comply), one-click unsubscribe headers under RFC 8058 on marketing mail, and a user-reported spam rate below 0.10%, never reaching 0.30%. Google's &lt;a href="https://support.google.com/mail/answer/14668346" rel="noopener noreferrer"&gt;Postmaster Tools compliance dashboard&lt;/a&gt; grades each requirement for your domain, and fixes take up to 7 days to show.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://senders.yahooinc.com/best-practices/" rel="noopener noreferrer"&gt;Yahoo's requirements&lt;/a&gt;&lt;/strong&gt; match: SPF plus DKIM plus DMARC for bulk senders, a working one-click unsubscribe, requests honored within 2 days, complaint rate below 0.3%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://substrate.office.com/ip-domain-management-snds/postmaster/Policies" rel="noopener noreferrer"&gt;Microsoft's Outlook.com rules&lt;/a&gt;&lt;/strong&gt; took effect May 5, 2025. Domains sending more than 5,000 emails a day to Outlook.com, Hotmail, and Live addresses must pass SPF and DKIM and publish DMARC at p=none or stricter. Non-compliant mail goes to junk first, then gets rejected with error 550 5.7.515.&lt;/p&gt;

&lt;p&gt;A 20-person company sending 300 cold emails a day sits under every one of those thresholds and still gets filtered by the same spam-rate math. The practical rules are the same at any size:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authenticate every sending domain with all three records, and check Postmaster Tools weekly.&lt;/li&gt;
&lt;li&gt;Send cold outreach from secondary domains, so a bad week does not land your invoices in spam.&lt;/li&gt;
&lt;li&gt;Warm new mailboxes before they carry a campaign. Instantly and Smartlead include warmup for this reason.&lt;/li&gt;
&lt;li&gt;Verify every address before the first send. A bounce rate of a few percent reads as a purchased list.&lt;/li&gt;
&lt;li&gt;Put a visible unsubscribe line in cold email even though the law treats it differently from a newsletter. A reply that says "stop" counts as a complaint if you ignore it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The US laws a campaign has to clear
&lt;/h3&gt;

&lt;p&gt;None of this is legal advice. It is the list of rules that shaped the last few builds, and the reason each is there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Email: CAN-SPAM.&lt;/strong&gt; The &lt;a href="https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business" rel="noopener noreferrer"&gt;FTC's compliance guide&lt;/a&gt; is short and worth reading in full. Accurate From and subject lines, a physical postal address in every message, a working opt-out that you honor within 10 business days, and responsibility for anything a vendor sends on your behalf. The law makes no exception for business-to-business email, and each message in violation carries a penalty of up to $53,088. An AI SDR that writes a misleading subject line to lift opens is writing you a liability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phone and text: TCPA.&lt;/strong&gt; Automated or prerecorded calls and marketing texts to mobile numbers need prior express consent, and a cold list you bought from a data vendor does not carry it. Three things changed recently:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Eleventh Circuit &lt;a href="https://www.wiley.law/alert-UPDATE-11th-Circuit-Vacates-FCCs-One-to-One-TCPA-Consent-Rule" rel="noopener noreferrer"&gt;vacated the FCC's one-to-one consent rule&lt;/a&gt; on January 24, 2025, so the stricter per-seller consent regime for lead-gen forms never took effect. Existing consent obligations still apply.&lt;/li&gt;
&lt;li&gt;The FCC's "revoke-all" rule, which treats one opt-out as revoking consent for all of a caller's future messages, has been &lt;a href="https://www.burr.com/telephone-consumer-protection-act/the-fcc-delays-effective-date-of-tcpa-revoke-all-rule-until-january-31-2027" rel="noopener noreferrer"&gt;delayed to January 31, 2027&lt;/a&gt; while the agency reconsiders it.&lt;/li&gt;
&lt;li&gt;On October 1, 2026 the FCC &lt;a href="https://www.insideglobaltech.com/2026/10/02/update-fcc-adopts-final-order-and-further-notice-on-tcpa-consent-revocation/" rel="noopener noreferrer"&gt;released a Report and Order on consent revocation&lt;/a&gt;. Senders must honor any of seven standardized reply words: stop, quit, end, revoke, opt out, cancel, unsubscribe. The rules take effect 30 days after Federal Register publication.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Texas: SB 140.&lt;/strong&gt; Since September 1, 2025, Texas &lt;a href="https://www.paulhastings.com/insights/ph-privacy/marketing-texts-in-texas-sb-140-broadens-state-telemarketing-regulations" rel="noopener noreferrer"&gt;extended its telephone solicitation statute to text messages&lt;/a&gt;. Marketing texts to Texas numbers fall under Chapter 302 registration unless an exemption applies, and violations open the door to Deceptive Trade Practices Act remedies including treble damages. If your plan includes an AI agent texting cold prospects in Texas, talk to counsel before you buy the tool.&lt;/p&gt;

&lt;p&gt;The operating rule on my builds: email can go cold with CAN-SPAM in place, calls and texts go only to people who gave consent you can produce, and every channel honors an opt-out the same day.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI search is now a lead source, and a small one
&lt;/h3&gt;

&lt;p&gt;Buyers ask ChatGPT, Gemini, and Perplexity who to hire, and the answer links to a handful of sites. The numbers are real and modest.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://seranking.com/blog/ai-traffic-research-study/" rel="noopener noreferrer"&gt;SE Ranking's study of 101,574 sites&lt;/a&gt;, published June 2026, puts AI referrals at 0.32% of total website traffic in 2026, up from 0.02% in 2024. Organic search still sends about 134 times more visitors. ChatGPT accounts for 74.78% of AI referrals, Gemini 11.56%, Perplexity 7.23%. The visitors who do arrive stay longer: 9 minutes 19 seconds on average versus 5 minutes 33 seconds from organic search.&lt;/p&gt;

&lt;p&gt;The buyer-side data points the same direction. &lt;a href="https://www.digitalcommerce360.com/2026/03/17/gartner-b2b-buyers-rep-free-purchasing-ai-reshapes-sales/amp/" rel="noopener noreferrer"&gt;Gartner's 2026 sales survey&lt;/a&gt; of 646 B2B buyers found 67% prefer a rep-free buying experience and 45% used AI during a recent purchase. A follow-up found 69% still validate AI-generated insights with a sales rep. The AI shortlists you; the human closes.&lt;/p&gt;

&lt;p&gt;For a small business this changes two things. First, your site needs pages that answer the question a buyer types, in the first sentence, with a price range and a named location, because that is what answer engines extract. Second, the forms on those pages need attribution that records the referrer, since a lead from ChatGPT looks like direct traffic in most analytics setups. &lt;a href="https://dev.to/services/content-creation"&gt;Content built for this&lt;/a&gt; is a separate project from outbound, and for most local businesses it produces fewer leads than outbound does this year. It produces warmer ones.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to expect, and when
&lt;/h3&gt;

&lt;p&gt;Be skeptical of anyone promising results in week one. On my builds the sequence runs: two to four weeks for CRM cleanup, domain and mailbox setup, and the first scoring model; 30 days of warmup and the first sequences while the model learns; 60 to 90 days before pipeline moves in a way you would bet on.&lt;/p&gt;

&lt;p&gt;Use public benchmarks to sanity-check a vendor's pitch. &lt;a href="https://instantly.ai/blog/ai-sales-agent-benchmarks-2026-the-complete-performance-report/" rel="noopener noreferrer"&gt;Instantly's 2026 cold email benchmark&lt;/a&gt;, drawn from platform activity between January 1 and December 18, 2025, puts the average reply rate at 3.43%, the top quartile at 5.5% or better, and the top 10% above 10.7%. Replies include "no" and "unsubscribe." A vendor quoting 15% reply rates without defining "reply" is quoting something else.&lt;/p&gt;

&lt;p&gt;The one result set I will stand behind is the &lt;a href="https://dev.to/blog/case-study-lead-gen-saas-pipeline"&gt;B2B SaaS case study&lt;/a&gt;: qualified pipeline up 3.1x, cost per SQL down 62%, each SDR working 2.4x more opportunities. That client had 18 months of clean deal data and a sales team with capacity to work the leads. Your numbers scale with both. The &lt;a href="https://dev.to/tools/ai-roi-calculator"&gt;ROI calculator&lt;/a&gt; will give you a range from your own close rate and deal size.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is your business ready?
&lt;/h3&gt;

&lt;p&gt;Five conditions, in the order I check them on a first call:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;At least 50 closed deals in your CRM&lt;/strong&gt;, with the stage history intact. Fewer than that and the model is guessing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Six months of consistent CRM use.&lt;/strong&gt; Consistent beats perfect. A clean database of 200 deals teaches more than a messy one with 2,000.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An ideal customer profile you can say out loud&lt;/strong&gt;, even a rough one. The model refines it. It cannot invent it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A person who will answer replies within a business day.&lt;/strong&gt; Automated outreach that lands a reply nobody reads is worse than no outreach. It burns the domain and the prospect.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ownership of your sending domains and data.&lt;/strong&gt; If the vendor owns the mailboxes, the enriched list, and the sequences, you own nothing when you leave.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The red flag that ends the conversation: your team cannot follow up on the leads they already have. Fix that first, and the AI will have something to amplify.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I build for a small business
&lt;/h3&gt;

&lt;p&gt;Phase one is the list, the scoring, the sending infrastructure, and the CRM plumbing.&lt;/p&gt;

&lt;p&gt;I start with your closed-won deals and build the profile from them. I set up secondary domains, authentication, and warmed mailboxes before any sequence runs. I wire Clay and your sending tool to your CRM so every reply, click, and score lands on the contact record your reps already use. I write the first sequences with you and hand you the editing.&lt;/p&gt;

&lt;p&gt;Phase one leaves out AI voice calling, cold texting, and autonomous reply handling. Each is a real feature with a real cost and a real compliance surface, and none of them help until the email channel is producing conversations your team can take.&lt;/p&gt;

&lt;p&gt;JY Labs takes a small number of these each year. &lt;a href="https://dev.to/contact"&gt;Book a $350 AI strategy session&lt;/a&gt;, credited in full toward a build, and bring your CRM export. The &lt;a href="https://dev.to/services/lead-generation"&gt;lead generation service page&lt;/a&gt; and &lt;a href="https://dev.to/pricing"&gt;pricing page&lt;/a&gt; list what a full build includes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;You know what the software does, what each layer costs this month, which provider rules and laws will stop a campaign before copy ever matters, and whether your CRM has enough history to teach a model. If your reps spend more than half their week finding names instead of talking to people, the four jobs above are the ones to hand to software first.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is AI lead generation?
&lt;/h3&gt;

&lt;p&gt;AI lead generation is software that builds a prospect list from the pattern of your best existing customers, fills in and verifies contact data, scores each prospect by fit and buying signals, and runs the first rounds of email and LinkedIn outreach while logging results to your CRM. Tools such as Apollo, Clay, Instantly, and Smartlead each cover one of those jobs. Your sales team takes over at the reply.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much does AI lead generation software cost in 2026?
&lt;/h3&gt;

&lt;p&gt;AI lead generation software for a small business costs about $450 to $900 per month in October 2026 list prices. Apollo runs $49 to $119 per user per month on annual billing. Clay Launch starts at $185 per month and Growth at $495. Instantly's outreach plans are $47 to $358 per month and Smartlead's are $39 to $379. Add $4.50 or more per mailbox per month for secondary sending inboxes. Autonomous AI SDR products such as Artisan and 11x do not publish list prices and quote in the low thousands per month.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the Gmail, Yahoo, and Outlook bulk sender requirements?
&lt;/h3&gt;

&lt;p&gt;Gmail, Yahoo, and Outlook bulk sender requirements apply once you send more than 5,000 messages a day to their users. All three require SPF, DKIM, and a DMARC policy of at least none, aligned to your From domain. Gmail and Yahoo also require RFC 8058 one-click unsubscribe on marketing mail, Yahoo expects opt-outs honored within 2 days, and both set a spam complaint ceiling of 0.3%, with Gmail recommending under 0.1%. Microsoft's rules took effect May 5, 2025 and send non-compliant mail to junk, then reject it with error 550 5.7.515. Senders under 5,000 a day still face the same spam-rate filtering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is cold email legal under CAN-SPAM?
&lt;/h3&gt;

&lt;p&gt;Cold email is legal under CAN-SPAM when every message carries accurate header and subject lines, a physical postal address, and a working opt-out that you honor within 10 business days. The law covers business-to-business email with no exception, and the FTC lists a penalty of up to $53,088 per violating email. You remain responsible for messages a vendor or AI tool sends on your behalf. Cold calls and texts fall under the TCPA instead and require prior express consent for automated outreach to mobile numbers. This is general information, not legal advice.&lt;/p&gt;

&lt;h3&gt;
  
  
  How did TCPA text message rules change in 2026?
&lt;/h3&gt;

&lt;p&gt;TCPA text message rules changed on October 1, 2026 when the FCC released a Report and Order on consent revocation that requires senders to honor seven standardized opt-out words: stop, quit, end, revoke, opt out, cancel, and unsubscribe. The rules take effect 30 days after Federal Register publication. The separate revoke-all rule is delayed to January 31, 2027, and the one-to-one consent rule was vacated by the Eleventh Circuit on January 24, 2025. Texas SB 140, effective September 1, 2025, extended the state telemarketing statute to marketing texts. Confirm current status with counsel before any texting campaign.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can AI search engines like ChatGPT generate leads for a small business?
&lt;/h3&gt;

&lt;p&gt;AI search engines like ChatGPT generate a small number of leads for a small business in 2026. SE Ranking's study of 101,574 sites puts AI referrals at 0.32% of total website traffic, with ChatGPT sending 74.78% of that and organic search still sending about 134 times more visitors. Those visitors stay longer, 9 minutes 19 seconds on average against 5 minutes 33 seconds from organic search. Pages that answer a buyer's question in the first sentence, with a price and a location, are the ones answer engines cite.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does a business need before starting AI lead generation?
&lt;/h3&gt;

&lt;p&gt;A business needs at least 50 closed deals in its CRM with stage history, six months of consistent CRM use, an ideal customer profile it can describe, a person who answers replies within a business day, and ownership of its own sending domains and data before starting AI lead generation. If the sales team cannot follow up on the leads it already has, fix that first. Expect two to four weeks of setup and 60 to 90 days before pipeline moves.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/ai-lead-generation-explained" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>leadgeneration</category>
      <category>aiexplained</category>
      <category>businessguide</category>
      <category>salesautomation</category>
    </item>
    <item>
      <title>RAG Agents vs. a Standard FAQ Chatbot: How Do You Choose the Right One?</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:10:17 +0000</pubDate>
      <link>https://dev.to/jyeg/rag-agents-vs-a-standard-faq-chatbot-how-do-you-choose-the-right-one-5e41</link>
      <guid>https://dev.to/jyeg/rag-agents-vs-a-standard-faq-chatbot-how-do-you-choose-the-right-one-5e41</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/rag-agents-vs-faq-chatbot" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;. Updated 2026-10-07.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A standard FAQ chatbot matches a customer's question to a script someone wrote in advance, while a &lt;a href="https://dev.to/services/rag-agents"&gt;RAG agent&lt;/a&gt; retrieves the answer from your live documents and writes a sourced response on the spot. In October 2026 there is a third option between them: AI support agents built into Intercom and Zendesk, which run retrieval over your help center and bill $0.99 to $2.00 per resolved conversation. This post prices all three, shows where each one wins, and covers the rulings that make a wrong answer your legal problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Every vendor calls its product an AI agent, so a business owner comparing options sees near-identical claims on three systems that behave nothing alike in production. A scripted FAQ bot answers the twenty questions you gave it and nothing else. Intercom Fin and Zendesk AI agents answer from your help center and charge per resolution, so the bill grows with your volume. A custom &lt;a href="https://dev.to/services/rag-agents"&gt;RAG agent&lt;/a&gt; costs more up front, searches documents a help center cannot hold, and leaves you in control of what it refuses to answer. Pick on price alone or on a demo, and you pay twice: once for the wrong system and again for the one you needed first.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What each system does under the hood
&lt;/h3&gt;

&lt;p&gt;A scripted FAQ bot runs on decision trees or keyword matching. A customer types a phrase, the bot finds the closest pre-written answer, and returns it word for word. Nothing gets generated.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://dev.to/services/rag-agents"&gt;RAG agent&lt;/a&gt; searches your documents for the passages relevant to the question, then writes a new answer from what it found, with a citation back to the source. One retrieves a fixed answer. The other retrieves raw material and writes.&lt;/p&gt;

&lt;p&gt;The vendor AI agents (Intercom Fin, Zendesk AI agents) are RAG agents too, with two constraints. The vendor controls the retrieval pipeline, and the knowledge sources are the ones the vendor supports, which in both cases centers on your help center plus connected files. Zendesk lists Google Drive and PDFs as external sources. Intercom lists third-party systems reached through APIs, data connectors, or MCP for actions like order lookups and refunds. If your answers live in a help center and a handful of connected tools, these products cover most of what a custom build did in 2024.&lt;/p&gt;

&lt;h3&gt;
  
  
  What off-the-shelf support agents do and cost in October 2026
&lt;/h3&gt;

&lt;p&gt;List prices from the vendors' own pricing pages this week:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intercom Fin.&lt;/strong&gt; $0.99 per outcome. A resolution counts when no further help is requested after Fin's last answer. Conversations Fin hands to your team with no outcome are free. Lead qualifications bill at $9.99 each. On Intercom's own helpdesk, seats start at $29 per month. Fin also runs on Salesforce, HubSpot, Freshworks, Zoho, Gorgias, and others with no seat cost, with a 50-outcome monthly minimum. Copilot for human agents is $35 per user per month. Intercom reports an average resolution rate of 76 percent across 12,000+ customers, which is a vendor figure, not an audit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zendesk AI agents.&lt;/strong&gt; Included in every Suite and Support plan, billed on successful outcomes. Suite Team is $55 per agent per month billed yearly and includes 5 automated resolutions per agent per month. Suite Professional is $115 and includes 10. Beyond the allowance, committed resolutions cost $1.50 and pay-as-you-go resolutions cost $2.00. Copilot is $50 per agent per month on Professional and above. Zendesk's own help article defines a billable resolution as one the AI handled without escalation, verified by an LLM, counted 2 hours after the first message on messaging and 72 hours after the first email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Worked example.&lt;/strong&gt; Say you handle 1,000 support conversations a month and the agent resolves 70 percent, so 700 resolutions. On Fin that is $693 in outcome fees plus seats. On Zendesk Suite Team with three agents, you pay $165 for seats, get 15 resolutions included, and pay $1,027.50 for the remaining 685 at the committed rate, so about $1,193 a month. Both meters have the same property: the better the agent performs, the bigger the bill. Budget on resolutions, not conversations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where a scripted bot still wins
&lt;/h3&gt;

&lt;p&gt;For ten to twenty stable questions (store hours, return policy, shipping cost), a scripted bot is cheap, launches in a week or two, and is hard to get wrong, because a human wrote every word in advance. A wrong answer is impossible unless a human typed it. If your support volume stays low and your answers rarely change, a per-resolution meter and a retrieval pipeline both add more than the problem needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where a scripted bot breaks
&lt;/h3&gt;

&lt;p&gt;The moment a customer phrases a question a way nobody scripted for, the bot returns the closest generic match or admits it cannot help. Businesses with large or changing document libraries (product catalogs, policy manuals, technical documentation) hit this wall every week. Every new product, policy change, or edge case means another manual script update, and the backlog of unscripted questions grows faster than your team writes for it. Vendor AI agents fixed this for the help-center case. The next section covers the cases they did not fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  When a custom RAG agent still earns its cost
&lt;/h3&gt;

&lt;p&gt;A custom build at JY Labs falls in the &lt;a href="https://dev.to/pricing"&gt;Build Sprint tier&lt;/a&gt;, $8K to $15K one time, with optional retention at $499 to $999 a month. A typical deployment runs six to seven weeks, with a working prototype by week three. Against the Zendesk example above, that is about one year of the meter at 1,000 conversations a month. The custom build wins in five situations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Your answers do not live in a help center.&lt;/strong&gt; Contracts, scanned PDFs, an ERP, a ticket archive, a shared drive with 50,000 files. A &lt;a href="https://dev.to/blog/case-study-rag-agents-legal-document-retrieval"&gt;regional law firm&lt;/a&gt; put 50,000+ contracts, briefs, and case files behind a RAG agent and cut attorney research time by 80 percent, from 3.2 hours to 38 minutes a day. No support-desk product indexes that corpus.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The users are your staff, not your customers.&lt;/strong&gt; Per-resolution pricing assumes a support ticket. An internal knowledge agent for onboarding, policy lookups, or sales enablement has no ticket to meter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need control over what the agent refuses.&lt;/strong&gt; In a custom build you set the confidence threshold below which the agent says it does not know and hands off. You choose the citation format, down to the paragraph. The law firm build tested 200+ real attorney questions against expert-verified answers and tuned until accuracy exceeded 95 percent. Vendors publish a resolution rate. They do not publish your accuracy on your questions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volume is high enough that the meter hurts.&lt;/strong&gt; At 3,000 conversations a month and a 70 percent resolution rate, the Zendesk example runs about $3,100 a month in resolution fees alone. A custom build swaps that for model usage and hosting, which you pay per token rather than per outcome.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data has to stay where you put it.&lt;/strong&gt; Regulated data, client confidentiality, or a contract that forbids a third-party processor. You choose the model, the region, and the logs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If none of the five applies and your knowledge already sits in a help center, buy the vendor agent. The &lt;a href="https://dev.to/tools/ai-roi-calculator"&gt;AI ROI calculator&lt;/a&gt; will show you where the meter and a one-time build cross for your volume.&lt;/p&gt;

&lt;h3&gt;
  
  
  A wrong answer is your liability, whichever system you pick
&lt;/h3&gt;

&lt;p&gt;Three cases to know before you sign anything:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Moffatt v. Air Canada, February 14, 2024.&lt;/strong&gt; Air Canada's website chatbot told a grieving customer he could apply for a bereavement fare after travel. The airline's own policy page said the opposite. Air Canada argued the chatbot was a separate legal entity responsible for its own statements. The British Columbia Civil Resolution Tribunal called that a remarkable submission, held Air Canada responsible for all the information on its website, and ordered CAD 812.02 in damages, interest, and fees. The amount is small. The principle travels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor, April 2025.&lt;/strong&gt; A front-line AI support bot named Sam told a customer the product was designed to work on one device per subscription as a security feature. No such policy existed. The company apologized on Reddit and Hacker News, refunded affected users, and now labels AI-generated support replies. Cost: cancellations and public criticism on Hacker News and Reddit for a company whose product is AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aesthetify, OLG Hamm, May 12, 2026.&lt;/strong&gt; A German cosmetic clinic's chatbot told prospective patients its two founders held specialist surgical titles they did not hold. The Higher Regional Court of Hamm ruled the statements were misleading commercial practice attributable to the company, and said the company would be responsible even if it had programmed the chatbot only with correct data. The court allowed an appeal to Germany's Federal Court of Justice, so the ruling is not final.&lt;/p&gt;

&lt;p&gt;What this means for the choice. A scripted bot has the lowest hallucination risk because every answer was pre-approved. A vendor agent is grounded on your help center, and the output is still yours under the rulings above, so read the contract for who carries the liability. A custom RAG agent lets you set the refusal threshold, require a citation on every answer, and log every exchange, which is the evidence you want when a customer disputes what the bot said. Whichever you pick, label it as AI. Maine, New Jersey, and California have bot disclosure statutes, and if you sell into the EU, Article 50 of the AI Act has required chatbots to disclose they are AI since August 2, 2026.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost and setup time, side by side
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Scripted FAQ bot.&lt;/strong&gt; One to two weeks. Platform fee only. Zero hallucination risk, zero coverage outside the script.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vendor AI agent (Fin, Zendesk).&lt;/strong&gt; Days to a few weeks, since the vendor already has your help center. $0.99 to $2.00 per resolved conversation plus seats. Coverage limited to supported sources. Bill rises with volume and with the agent's success.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom RAG agent.&lt;/strong&gt; Six to seven weeks, prototype by week three. $8K to $15K one time plus hosting and model usage. Indexes anything you can export. You own retrieval quality, refusals, citations, and logs.&lt;/p&gt;

&lt;h3&gt;
  
  
  A six-question decision framework
&lt;/h3&gt;

&lt;p&gt;Ask six questions before choosing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How many distinct question types does your team field in a month: under twenty, or hundreds?&lt;/li&gt;
&lt;li&gt;How often do your answers change: rarely, or every product launch?&lt;/li&gt;
&lt;li&gt;Where do the answers live: a help center, or contracts, PDFs, and internal systems?&lt;/li&gt;
&lt;li&gt;Who asks: customers through a support channel, or your own staff?&lt;/li&gt;
&lt;li&gt;What does a wrong answer cost: an extra email, a lost sale, or a compliance violation?&lt;/li&gt;
&lt;li&gt;At your volume, what does the per-resolution meter cost over twelve months?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Under twenty stable questions: scripted bot. Hundreds of questions, answers in a help center, customers asking, moderate volume: vendor AI agent. Answers outside a help center, internal users, high cost per wrong answer, or a meter above the one-time build within a year: custom &lt;a href="https://dev.to/services/rag-agents"&gt;RAG agent&lt;/a&gt;. Two systems side by side is a legitimate answer. Keep the scripted bot for the handful of answers legal has to approve word for word.&lt;/p&gt;

&lt;p&gt;If you want a second opinion on your numbers, JY Labs runs a paid $350 AI strategy session, credited in full toward a build. &lt;a href="https://dev.to/contact"&gt;Book it here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;You now have a working test for the FAQ bot, vendor agent, and custom RAG decision instead of a sales pitch. Count your monthly conversations, estimate the resolution rate, and multiply by $0.99 to $2.00 to see the meter. If the twelve-month meter exceeds a one-time build, or your answers live outside a help center, a custom RAG agent pays back within the year. If you have twenty stable questions, a scripted bot solves the problem for a fraction of either.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the main difference between RAG agents and FAQ chatbots?
&lt;/h3&gt;

&lt;p&gt;A FAQ chatbot matches a question to a fixed, pre-written answer and cannot respond to anything outside its script. A RAG agent searches your documents in real time and generates a new answer with a source citation, so it handles questions nobody wrote a script for. Vendor AI agents such as Intercom Fin and Zendesk AI agents are RAG agents limited to the knowledge sources the vendor supports, centered on your help center.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a RAG agent more expensive than a chatbot?
&lt;/h3&gt;

&lt;p&gt;Yes up front, and often not over a year. A scripted chatbot costs little beyond the platform fee. A vendor AI agent charges $0.99 (Intercom Fin) to $1.50 or $2.00 (Zendesk) per resolved conversation, so at 1,000 conversations a month and a 70 percent resolution rate you pay about $700 to $1,200 a month. A custom RAG agent at JY Labs is $8K to $15K one time plus hosting and model usage. Compare the twelve-month meter against the one-time build for your volume.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I switch from a scripted chatbot to a RAG agent later?
&lt;/h3&gt;

&lt;p&gt;Yes. Many businesses start with a scripted bot for a small set of stable questions, then add a vendor AI agent or a custom RAG agent once their document library or question volume outgrows the script. The two can also run side by side, with the scripted bot handling fixed, legally approved answers and the RAG agent covering everything else.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I know if my business has enough documents to justify a RAG agent?
&lt;/h3&gt;

&lt;p&gt;If your team references more than a few hundred documents, policies, or product pages, questions about them come up weekly, and those documents do not live in a help center a vendor agent can index, a custom RAG agent pays back within months of reduced manual searching. One law firm put 50,000+ documents behind a RAG agent and cut research time by 80 percent. If everything already sits in a help center, start with the vendor agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do RAG agents replace human support staff?
&lt;/h3&gt;

&lt;p&gt;No. RAG agents resolve routine questions a documented answer already covers, freeing staff for exceptions, judgment calls, and relationship work a retrieval system cannot do. Intercom reports an average 76 percent resolution rate across its customers, which is the vendor's figure. Most deployments reduce ticket volume rather than headcount.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is my business liable if an AI chatbot gives a customer wrong information?
&lt;/h3&gt;

&lt;p&gt;Yes, in every ruling so far. In Moffatt v. Air Canada (February 2024) a British Columbia tribunal held the airline responsible for all information on its website, chatbot included, and ordered CAD 812.02 in damages, interest, and fees. In May 2026 the Higher Regional Court of Hamm in Germany ruled a clinic liable for specialist titles its chatbot invented, even if the bot had been given only correct data. Treat the bot's output as your own statement, label it as AI, require citations, and keep logs. This is not legal advice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I still need a custom RAG agent if I already pay for Intercom Fin or Zendesk AI agents?
&lt;/h3&gt;

&lt;p&gt;Only in five cases: your answers live outside a help center (contracts, PDFs, an ERP, a ticket archive), the users are your staff rather than customers, you need to set the refusal threshold and citation format yourself, your volume makes the per-resolution meter cost more than a one-time build within a year, or your data has to stay in a region or system you control. If none applies, keep the vendor agent.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/rag-agents-vs-faq-chatbot" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ragagents</category>
      <category>aichatbots</category>
      <category>comparisonguide</category>
      <category>knowledgemanagement</category>
    </item>
    <item>
      <title>AI Automation for Financial Services: Where Advisors and Community Banks Should Start</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:10:10 +0000</pubDate>
      <link>https://dev.to/jyeg/ai-automation-for-financial-services-where-advisors-and-community-banks-should-start-566f</link>
      <guid>https://dev.to/jyeg/ai-automation-for-financial-services-where-advisors-and-community-banks-should-start-566f</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/ai-automation-for-financial-services" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Financial advisors, RIAs, and community banks sit on more regulated documents (compliance manuals, disclosures, client agreements) than almost any other industry, yet most still search them by hand. This guide covers where AI automation delivers the fastest return in financial services, and where regulatory risk means you should slow down.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;A financial advisory firm or community bank cannot deploy AI the way a retail brand does. Every client communication touches SEC, FINRA, or state banking regulations, and one inaccurate answer to a client's question about their portfolio can trigger a compliance review. That regulatory weight leads many firms to avoid automation entirely, even though the underlying problem, staff spending hours searching compliance manuals, disclosure documents, and client files for answers that already exist somewhere in the firm, is exactly the kind of problem AI handles well when it is built to cite its sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Regulatory Compliance Lookups Are the Highest-Value Starting Point
&lt;/h3&gt;

&lt;p&gt;Compliance officers and advisors at regulated firms spend measurable time each week searching current regulations, internal policies, and past disclosures to answer a single question correctly. A &lt;a href="https://dev.to/services/rag-agents"&gt;RAG agent&lt;/a&gt; built on your compliance manual, past SEC and FINRA guidance, and internal policy library returns a sourced answer in seconds instead of a manual search across binders and shared drives, and every answer links back to the exact clause it came from, so the compliance team can verify before anything goes to a client.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lead Qualification Without Compromising Suitability Requirements
&lt;/h3&gt;

&lt;p&gt;Financial services firms cannot treat every inbound lead the way retail companies do; qualifying a prospective client means checking accredited investor status, minimum asset thresholds, and stated risk tolerance before an advisor spends time on a call. &lt;a href="https://dev.to/services/lead-generation"&gt;AI lead generation&lt;/a&gt; automation applies your firm's qualification criteria consistently to every inbound inquiry, routing only prospects who meet your suitability bar to an advisor's calendar, and logging the qualification trail your compliance team needs for the file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Client Scheduling and Routine Servicing by Phone
&lt;/h3&gt;

&lt;p&gt;Community banks and advisory firms field a steady volume of calls that do not need a human: appointment scheduling, statement requests, and basic account questions. &lt;a href="https://dev.to/services/voice-agents"&gt;Voice agents&lt;/a&gt; handle these calls during and after business hours, checking real-time calendar availability and confirming appointments by text, while any question touching account-specific advice routes straight to a human advisor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Marketing Content That Clears Compliance Review Faster
&lt;/h3&gt;

&lt;p&gt;Financial services marketing content moves through compliance review before it reaches a client, and generic AI writing tools produce drafts that get bounced back for prohibited claims or missing disclaimers. &lt;a href="https://dev.to/services/content-creation"&gt;Content creation&lt;/a&gt; automation configured with your firm's approved language, required disclaimers, and prohibited claim list produces drafts your compliance reviewer approves on the first pass more often, cutting the review cycle rather than skipping it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where to Start If You Are a Smaller Firm
&lt;/h3&gt;

&lt;p&gt;A solo RIA or a two-branch community bank does not need every use case above on day one. Start with the compliance lookup problem, since it touches every advisor and every client interaction, and it carries the clearest audit trail once built. Advisory firms in growing markets like &lt;a href="https://dev.to/locations/georgetown-tx"&gt;Georgetown&lt;/a&gt; and the wider Austin metro, where the wealth management client base is expanding quickly, often add lead qualification next once the compliance foundation is in place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;Financial services firms that automate compliance lookups first typically see advisors recover several hours a week previously spent searching documents, with every answer traceable back to its source for the compliance file. Firms that add lead qualification and scheduling next extend those gains to the front office without loosening suitability standards. The order matters more than the speed: start where regulatory risk is lowest and the audit trail is clearest, then expand.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is AI automation compliant with SEC and FINRA regulations for financial advisors?
&lt;/h3&gt;

&lt;p&gt;AI automation is not compliant or non-compliant on its own; compliance depends on how the system is built and configured. A RAG agent that cites its source for every answer, and a lead qualification system that logs its qualification criteria, both produce the audit trail regulators expect. Firms should have compliance counsel review the specific configuration before launch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can a RAG agent access confidential client financial data safely?
&lt;/h3&gt;

&lt;p&gt;Yes, when the system is deployed within the firm's own infrastructure or an isolated environment with role-based access controls. Data should stay encrypted in transit and at rest, and access should be limited to the same people who could see the underlying documents today.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long does it take a financial services firm to deploy AI automation?
&lt;/h3&gt;

&lt;p&gt;A compliance-focused RAG deployment typically takes six to eight weeks for a financial services firm, longer than a standard deployment because of the additional review and testing regulated data requires. Lead qualification and voice agent deployments follow similar timelines once the compliance foundation is in place.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will AI replace financial advisors?
&lt;/h3&gt;

&lt;p&gt;No. AI automation removes the manual search and administrative work around advising, like finding a regulation or qualifying an inbound lead, so advisors spend more time on the relationship and judgment calls a client pays for. The advisor still makes every recommendation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What size firm is AI automation practical for?
&lt;/h3&gt;

&lt;p&gt;Firms with as few as two or three advisors see measurable time savings from compliance lookup automation, since the manual search problem exists regardless of firm size. Lead qualification and multi-channel automation typically make more sense once a firm has enough inbound volume to justify the setup, usually 20 or more qualified inquiries a month.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/ai-automation-for-financial-services" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>financialservices</category>
      <category>ragagents</category>
      <category>aicompliance</category>
      <category>industryguide</category>
    </item>
    <item>
      <title>Fractional AI Operator vs. an In-House AI Hire: How Do You Choose?</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:10:03 +0000</pubDate>
      <link>https://dev.to/jyeg/fractional-ai-operator-vs-an-in-house-ai-hire-how-do-you-choose-14nh</link>
      <guid>https://dev.to/jyeg/fractional-ai-operator-vs-an-in-house-ai-hire-how-do-you-choose-14nh</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/fractional-ai-operator-vs-in-house-ai-hire" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A growing business weighing AI automation usually chooses between three paths: hire a full-time employee to own it, bring in a project-based consultant for a single build, or retain a fractional AI operator, an agency that runs your AI systems on an ongoing basis without a full-time salary. Each path fits a different stage of growth, and picking the wrong one either overpays for capacity you do not need yet or leaves your systems unmaintained after launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Most businesses discover they need AI automation before they know how to staff it. A full-time AI hire costs $120,000 to $180,000 a year in salary and benefits before writing a line of production code, and takes months to find and ramp up. A single consulting engagement builds one system well, then leaves when the contract ends and nobody on staff can maintain or extend it. Neither option fits a business that needs ongoing AI work, more than a one-time build, but not enough volume yet to justify a full-time salary. That gap is where a fractional AI operator model exists, and most businesses have never evaluated it as a real option before defaulting to a hire or a one-off project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What Each Model Actually Delivers
&lt;/h3&gt;

&lt;p&gt;A full-time hire gives you a dedicated person embedded in your team, available for anything, but limited to that one person's skill set and bandwidth. A project consultant builds a defined system, like a &lt;a href="https://dev.to/services/rag-agents"&gt;RAG agent&lt;/a&gt; or a &lt;a href="https://dev.to/services/lead-generation"&gt;lead generation&lt;/a&gt; pipeline, then hands it off and moves to the next client. A fractional AI operator sits between the two: an outside team that runs and expands your AI systems on a recurring basis, bringing a full team's range of skills without a full-time headcount.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Real Cost Comparison
&lt;/h3&gt;

&lt;p&gt;A full-time AI hire runs $120,000 to $180,000 a year in salary alone, before recruiting costs, benefits, and the ramp-up months where output is low. A fractional AI operator engagement typically runs a few thousand dollars a month (&lt;a href="https://dev.to/pricing"&gt;full pricing detail here&lt;/a&gt;) and starts producing usable systems within weeks rather than months, since the operator already has the tooling and process built. A project consultant sits in between on cost but delivers a single system rather than ongoing coverage.&lt;/p&gt;

&lt;h3&gt;
  
  
  When a Full-Time Hire Is the Right Call
&lt;/h3&gt;

&lt;p&gt;Once a business runs enough AI-driven systems, &lt;a href="https://dev.to/services/voice-agents"&gt;voice agents&lt;/a&gt;, lead scoring, content pipelines, that a single person's full-time attention is justified, and once the business has enough scale to absorb the ramp-up cost, a full-time hire becomes the more economical long-term choice. Businesses past this threshold usually already have a fractional operator's work to hand off to the new hire, which shortens the ramp-up.&lt;/p&gt;

&lt;h3&gt;
  
  
  When a Fractional Operator or Agency Fits Better
&lt;/h3&gt;

&lt;p&gt;A business that needs AI systems running and maintained, but does not yet have the volume to keep one person fully occupied, gets more value from a fractional operator or an outside automation agency than from a full-time salary. The arrangement scales up or down with actual usage, and because the operator works across multiple clients, it usually brings pattern-matched solutions a single new hire would need months to develop independently.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Decision Framework You Can Use Today
&lt;/h3&gt;

&lt;p&gt;Ask three questions. First, do you need one system built once, or ongoing work across multiple AI systems? A single build points toward a project consultant. Second, is there enough AI-related work to occupy someone full time today, not eventually? If not, a fractional operator or agency model fits better than a hire. Third, can your budget absorb $120,000-plus in salary and months of ramp-up before seeing output, or do you need results within weeks on a smaller monthly commitment? Businesses in &lt;a href="https://dev.to/locations/georgetown-tx"&gt;Georgetown&lt;/a&gt; and the wider Austin area weighing this decision can usually start with a fractional engagement and convert to a hire later once the workload justifies it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;Run your business through the three-question framework before committing to a salary line, a one-time project fee, or a monthly retainer. Most businesses starting out get more value from a fractional operator: lower commitment, faster time to a working system, and the option to convert to a full-time hire once the workload justifies the cost. The &lt;a href="https://dev.to/pricing"&gt;pricing breakdown&lt;/a&gt; shows what each tier of engagement looks like in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is a fractional AI operator?
&lt;/h3&gt;

&lt;p&gt;A fractional AI operator is an outside team or agency that builds, runs, and maintains a business's AI systems on an ongoing monthly basis, similar to a fractional CFO or fractional CMO, without the cost of a full-time salary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a fractional AI operator cheaper than hiring in-house?
&lt;/h3&gt;

&lt;p&gt;In the short term, yes. A full-time AI hire costs $120,000 to $180,000 a year in salary alone before benefits and ramp-up time, while a fractional operator engagement typically runs a few thousand dollars a month. Past a certain volume of ongoing AI work, a full-time hire can become the more economical long-term option.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I switch from a fractional operator to an in-house hire later?
&lt;/h3&gt;

&lt;p&gt;Yes. Many businesses start with a fractional operator, then hire in-house once their AI-driven workload justifies a full-time role. The transition is faster than starting from scratch because the systems, documentation, and integrations built by the operator transfer to the new hire.&lt;/p&gt;

&lt;h3&gt;
  
  
  How is a fractional AI operator different from a one-time consultant?
&lt;/h3&gt;

&lt;p&gt;A consultant builds a defined system and moves on once the contract ends. A fractional operator maintains, monitors, and expands your AI systems on a recurring basis, closer to an ongoing service relationship than a single project.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much does a fractional AI operator cost?
&lt;/h3&gt;

&lt;p&gt;Pricing varies by scope and the number of systems under management, typically landing in the low thousands of dollars per month rather than a six-figure annual salary. Specific tiers and what each includes are listed on the pricing page.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/fractional-ai-operator-vs-in-house-ai-hire" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aistrategy</category>
      <category>comparisonguide</category>
      <category>fractionalai</category>
      <category>hiringdecisions</category>
    </item>
    <item>
      <title>What a Solo Texas Realtor's Website Actually Needs — and What It Costs in 2026</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:09:41 +0000</pubDate>
      <link>https://dev.to/jyeg/what-a-solo-texas-realtors-website-actually-needs-and-what-it-costs-in-2026-37cf</link>
      <guid>https://dev.to/jyeg/what-a-solo-texas-realtors-website-actually-needs-and-what-it-costs-in-2026-37cf</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/texas-realtor-website-requirements-and-cost" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A working scope from a current build for a solo agent covering Austin and Houston: the four jobs the site has to do, the Texas compliance items templates get wrong, why IDX is not a day-one decision, and honest 2026 cost ranges.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;A solo Texas agent comparing a $59/month template with a $12,000 custom quote cannot tell what the money buys. This post is the scope from a current Austin-and-Houston build, with the client unnamed and no traffic numbers because the site has not launched.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The four jobs the site has to do
&lt;/h3&gt;

&lt;p&gt;Most agent websites fail because they were built to look like a brochure. A solo agent's site has four jobs, in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Capture a lead from a specific traffic source.&lt;/strong&gt; Usually a yard sign, an open house flyer, or a business card.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Satisfy Texas disclosure requirements on every page.&lt;/strong&gt; Not optional, not a footer afterthought.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let the agent update listings and open houses without calling the developer.&lt;/strong&gt; Weekly, from a phone, without breaking the layout.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load fast on a phone on cell data&lt;/strong&gt;, because that is where the yard-sign scan happens.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything else — the bio page, the testimonials, the neighborhood guides — is worth doing, but it is worth doing after those four.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Texas compliance layer is the part templates get wrong
&lt;/h3&gt;

&lt;p&gt;This is the piece that turns a generic website project into a real estate website project, and it is where off-the-shelf themes consistently fall short.&lt;/p&gt;

&lt;p&gt;TREC requires that every broker and sales agent &lt;strong&gt;provide a link on the homepage to the Information About Brokerage Services form&lt;/strong&gt;, labeled "Texas Real Estate Commission Information About Brokerage Services," in at least a 10 point font, in a readily noticeable place. That is Rule 531.20(b), and the label wording and font size are both specified — a link that says "Disclosures" does not satisfy it. TREC publishes its own guidance on posting the IABS and the Consumer Protection Notice, and it is worth reading directly rather than trusting a theme vendor's checklist.&lt;/p&gt;

&lt;p&gt;On the build, that meant a compliance block rendered by the theme itself rather than dropped into each page by hand, so it cannot be forgotten on a new page or lost when someone edits a layout. It carries the broker attribution, the license lines, the TREC links using the prescribed labels, Equal Housing Opportunity, and the REALTOR and MLS marks. Nine pages, one source of truth, verified by a script that fails the build if any page is missing it.&lt;/p&gt;

&lt;p&gt;Two related items that surprise agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your own completed IABS is the document that should be posted&lt;/strong&gt;, not a re-typeset copy someone made for you. It is your disclosure to make.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you refer clients to an affiliated mortgage business, that is a RESPA matter.&lt;/strong&gt; A per-transaction Affiliated Business Arrangement Disclosure delivered at referral and a standing notice on the website are two different things, and one does not substitute for the other. On this build, the disclosure wording is the client's to approve with her own counsel, and the page ships with a placeholder until she does. I write the plumbing; I do not write someone's legal disclosures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing in this section is legal advice. It is a list of the things that made it into the scope, and the reason each one is there.&lt;/p&gt;

&lt;h3&gt;
  
  
  QR codes need their own landing pages, not your homepage
&lt;/h3&gt;

&lt;p&gt;The single highest-leverage decision on this build cost nothing: the QR codes do not point at the homepage.&lt;/p&gt;

&lt;p&gt;A scan from an Austin yard sign lands on an Austin page. A Houston flyer lands on a Houston page. Same structure, same compliance footer, market-specific headline and market-specific contact path. The template is built to spin up five of these without new development, so a specific neighborhood, a single open house, or a print campaign can each have its own destination.&lt;/p&gt;

&lt;p&gt;Two reasons this matters more than it sounds like it should. First, relevance: someone standing in front of a house in Cedar Park does not want a statewide value proposition. Second, attribution: separate landing pages tell you which signs and which markets actually produce scans, which is information a single homepage cannot give you.&lt;/p&gt;

&lt;h3&gt;
  
  
  IDX is not a day-one decision, and treating it like one is what blows the budget
&lt;/h3&gt;

&lt;p&gt;Every agent asks about MLS search on the first call. It is the most expensive feature on the list and usually the least urgent, because a solo agent's early leads come from signs, open houses, and referrals — not from a stranger running a property search on a new domain with no traffic.&lt;/p&gt;

&lt;p&gt;Current monthly costs, if you want a sense of what the feature actually carries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Showcase IDX (WordPress plugin):&lt;/strong&gt; $94.95–$124.95/mo. No setup fee; MLS pass-through fees run roughly $0–$33/mo depending on your board.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Placester:&lt;/strong&gt; $59–$129/mo. IDX adds about $25/mo per MLS on top.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sierra Interactive:&lt;/strong&gt; $299.95–$599.95/mo. Monthly billing triggers a $500 setup fee that annual billing avoids.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are list prices as of this year and they move, so check before you budget. The structural point holds either way: IDX is a recurring cost with a board-approval process attached, and it does not get cheaper if you add it later.&lt;/p&gt;

&lt;p&gt;So this build phases it. Phase one is lead capture, compliance, and a small set of hand-curated featured properties that link out to the existing tour microsites. Phase two is the MLS feed, once there is traffic for it to serve. The landing pages ship with a marked slot where the market's search widget will go, so adding it later is configuration rather than a rebuild.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it actually costs
&lt;/h3&gt;

&lt;p&gt;Three honest tiers, with what drives the number in each:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DIY builder — roughly $20–$60/month.&lt;/strong&gt; Squarespace, Wix, or similar, plus a domain. You get a presentable site and you do all the work, including the compliance items. Viable if your lead flow is entirely referral and the site is a business card.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent platform — roughly $60–$600/month.&lt;/strong&gt; Placester at the low end, Sierra Interactive at the high end, IDX bundled or bolted on. You get MLS search and a CRM without a build project. The trade-offs are real: you are renting the site, customization is bounded by the platform, and the compliance blocks are your responsibility to configure correctly. Over three years the subscription frequently exceeds what a custom build would have cost once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom build — a one-time four-figure to low five-figure project, plus $20–$40/month hosting.&lt;/strong&gt; What moves the number is not page count. It is how much of the work is bespoke: a design system built from scratch versus a licensed theme, compliance rendered in code versus pasted per page, custom content types the agent can edit safely, IDX integration, and whether performance is measured or assumed. A three-page site with a stock theme and a stock contact form is a small project. The same three pages with a custom content model, a verified compliance layer, and measured mobile performance is a different one.&lt;/p&gt;

&lt;p&gt;On this build, performance was measured rather than claimed — nine pages, repeated runs, every regression tracked against a documented baseline. That is deliberately unglamorous work, and it is the difference between a site that scores well in a screenshot and one that loads on cell service in a driveway.&lt;/p&gt;

&lt;h3&gt;
  
  
  What we deliberately left out
&lt;/h3&gt;

&lt;p&gt;Scope discipline is most of what keeps a small project from becoming an expensive one. Explicitly out of phase one: MLS/IDX integration, a CRM or lead database, client logins and saved searches, a blog, and analytics beyond GA4. Each of those is a real feature with a real cost, and none of them help a solo agent capture the lead standing in front of a house today.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I build for a Texas agent
&lt;/h3&gt;

&lt;p&gt;Phase one is lead capture, Texas compliance, and a site you can update from your phone.&lt;/p&gt;

&lt;p&gt;I build the page that receives one traffic source. A yard sign, an open house flyer, or a business card each lands on its own page.&lt;/p&gt;

&lt;p&gt;The theme renders the compliance block, so a new page cannot ship without it. The block carries the Information About Brokerage Services link with the label "Texas Real Estate Commission Information About Brokerage Services," the Consumer Protection Notice, the broker attribution, the license lines, Equal Housing Opportunity, and the REALTOR and MLS marks.&lt;/p&gt;

&lt;p&gt;You edit listings and open houses from your phone. The layout stays intact.&lt;/p&gt;

&lt;p&gt;I measure load time on a phone on cell data and track each regression against a documented baseline.&lt;/p&gt;

&lt;p&gt;Phase one leaves out MLS/IDX integration, a CRM or lead database, client logins and saved searches, a blog, and analytics beyond GA4.&lt;/p&gt;

&lt;p&gt;JY Labs takes a small number of these each year. &lt;a href="https://dev.to/contact"&gt;Get in touch&lt;/a&gt; and tell me what your yard signs currently point at.&lt;/p&gt;

&lt;p&gt;This is a current engagement, described with the client's permission and with identifying details withheld until the site launches. I will publish the named version, with the live site and her own account of it, after launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does a solo Texas realtor website need before anything else?
&lt;/h3&gt;

&lt;p&gt;Four jobs, in order. Capture a lead from a yard sign, an open house flyer, or a business card. Satisfy the Texas disclosure rules on every page. Let the agent update listings and open houses from a phone. Load fast on a phone on cell data. The bio, testimonials, and neighborhood guides come after those four.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does TREC require on an agent homepage?
&lt;/h3&gt;

&lt;p&gt;Rule 531.20(b) requires a homepage link to the Information About Brokerage Services form. The link text is "Texas Real Estate Commission Information About Brokerage Services," set in at least a 10 point font, in a readily noticeable place. A link that says "Disclosures" does not satisfy the rule. Post your own completed IABS. A re-typeset copy is a document someone else made. Nothing here is legal advice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where should a yard-sign QR code point?
&lt;/h3&gt;

&lt;p&gt;Point an Austin yard sign at an Austin page and a Houston flyer at a Houston page. Use the same page structure and the same compliance footer, with a headline and a contact path for that market. Separate pages show which signs and which markets produce scans.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should IDX be on a new agent site from day one?
&lt;/h3&gt;

&lt;p&gt;Leave IDX for phase two. A solo agent's early leads come from signs, open houses, and referrals. Phase one ships hand-curated featured properties that link out to the tour pages you have, plus a marked slot where the search widget will go. Showcase IDX lists at $94.95–$124.95/mo, Placester at $59–$129/mo with about $25/mo per MLS, and Sierra Interactive at $299.95–$599.95/mo. Those are this year's list prices. Confirm them, and your board's approval process, before you budget.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does a Texas agent website cost in 2026?
&lt;/h3&gt;

&lt;p&gt;A DIY builder such as Squarespace or Wix runs roughly $20–$60/month, plus a domain. An agent platform runs roughly $60–$600/month, Placester at the low end and Sierra Interactive at the high end. A custom build is a one-time four-figure to low five-figure project, plus $20–$40/month hosting. You pay more when the work is bespoke: a design system, compliance rendered in code, content types the agent can edit, IDX, and measured mobile performance.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/texas-realtor-website-requirements-and-cost" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>realestate</category>
      <category>webdev</category>
      <category>texas</category>
      <category>leadgeneration</category>
    </item>
    <item>
      <title>AI Content Creation for Business: What It Can (and Can't) Do in 2026</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Fri, 09 Oct 2026 01:09:24 +0000</pubDate>
      <link>https://dev.to/jyeg/ai-content-creation-for-business-what-it-can-and-cant-do-in-2026-40i</link>
      <guid>https://dev.to/jyeg/ai-content-creation-for-business-what-it-can-and-cant-do-in-2026-40i</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/ai-content-creation-business-guide" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;. Updated 2026-10-07.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI content creation tools in 2026 draft, edit, and adapt business content at scale, and they pay off when you train them on your brand voice, fact-check every output, and keep a person in charge of what gets published. This guide covers what Google, the FTC, and the Copyright Office require as of October 2026, which writing, image, and video tools are current, and the content volume where the investment pays back.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Owners arrive at this topic from one of two positions. One group expects AI to replace the content team by Friday. The other refuses to touch it after reading a robotic blog post on a competitor's site. Both positions cost money. The first produces thin pages Google now names in its spam policy. The second leaves a small team hand-writing product descriptions one at a time. The workable position sits between them, and in 2026 it comes with rules from Google, the FTC, and the Copyright Office you need before you scale anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How AI content creation works in 2026
&lt;/h3&gt;

&lt;p&gt;You give a model your best existing content, a style guide, and a brief. It returns a draft in your voice, then variations for each channel. Your team edits, fact-checks, and approves. The model writes fast. Your people decide what ships.&lt;/p&gt;

&lt;p&gt;The tools most small businesses use for this in October 2026, with list prices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ChatGPT Business&lt;/strong&gt;: $25 per user per month, or $20 billed annually, with a two-seat minimum. Premium seats with higher usage limits run $125 per month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Team&lt;/strong&gt;: $25 per seat per month, or $20 billed annually. Current models are Fable 5.1, Opus 5.5, Sonnet 5.5, and Haiku 5.5.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini inside Google Workspace&lt;/strong&gt;: Business Standard at $14 per user per month includes Gemini in Gmail, Docs, Sheets, Slides, Drive, and Meet. Starter at $7 includes Gemini in Gmail only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jasper Pro&lt;/strong&gt;: about $69 per seat per month, or $59 billed annually, for a marketing layer with saved brand voices and templates on top of the models above.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All four let you store brand voice, product facts, and sample content so the model stops writing generic copy. The gap between a $25 seat and a working content pipeline is what sits around the model: structured product data going in, a review step in the middle, and conversion data coming back. Our &lt;a href="https://dev.to/blog/case-study-content-automation-ecommerce"&gt;e-commerce content automation&lt;/a&gt; build is one example of the full version.&lt;/p&gt;

&lt;h3&gt;
  
  
  What AI content does well, and where it fails
&lt;/h3&gt;

&lt;p&gt;Content Marketing Institute's 2026 B2B research (1,015 B2B marketers, surveyed June to August 2025) found 95% of organizations use AI applications and 89% use them for written content. Of the marketers using AI for content creation, 39% report better content performance and 12% report lower quality. Adoption is near universal. Results are split.&lt;/p&gt;

&lt;p&gt;AI handles structured, repeatable content well: product descriptions and catalog copy, social post variations, email subject lines and body copy, meta titles and descriptions, FAQ and help-center articles, first drafts of blog posts, and turning one webinar into a post, five social clips, and an email.&lt;/p&gt;

&lt;p&gt;It fails at original research, interviews, first-hand experience, and opinion. It fails at technical content where the reviewer needs expertise the writer lacks. And it fails quietly on facts: a model predicts likely words, it does not look things up, so a price, a statute, or a statistic in an AI draft is unverified until a person checks it. Google now says the same thing in its own guidance, covered next.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google's position on AI content, as of October 1, 2026
&lt;/h3&gt;

&lt;p&gt;Google updated its &lt;a href="https://developers.google.com/search/docs/fundamentals/using-gen-ai-content" rel="noopener noreferrer"&gt;guidance on using generative AI content&lt;/a&gt; on October 1, 2026. The long-standing position holds: Google rewards content for quality, and the production method does not matter on its own. The new emphasis is verification. The page states: "It is critical to manually factcheck and review all AI-generated content for accuracy and trustworthiness before publishing," and extends the review to titles, meta descriptions, structured data, and image alt text.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://developers.google.com/search/docs/essentials/spam-policies" rel="noopener noreferrer"&gt;spam policies page&lt;/a&gt;, last updated August 28, 2026, lists "Using generative AI tools or other similar tools to generate many pages without adding value for users" as the first example of scaled content abuse. Google publishes no page count or ratio. Volume alone is not the violation. Volume without value is. A site in violation ranks lower or drops out of results. Manual actions arrive as a Search Console notice. Algorithmic demotions arrive with no notice at all.&lt;/p&gt;

&lt;p&gt;On disclosure, Google recommends explaining how content was made where it helps readers, and requires it in one place: Google Merchant Center. AI-generated product images must carry the IPTC DigitalSourceType metadata tag, and AI-generated product titles and descriptions must use the structured title and structured description attributes with the digital source type set to trained_algorithmic_media.&lt;/p&gt;

&lt;p&gt;In practice: 200 city pages with swapped nouns is the pattern Google names. 500 product pages built from real specs, real photos, and a writer's edit is the pattern our client used, and the listings converted 34% better than the hand-written ones they replaced.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Overviews, AI Mode, and what gets cited
&lt;/h3&gt;

&lt;p&gt;Google announced at I/O on May 19, 2026 that AI Mode passed one billion monthly users, made Gemini 3.5 Flash its default model, and now lets a reader move from an AI Overview into an AI Mode conversation. The search results page your content competes on has changed shape.&lt;/p&gt;

&lt;p&gt;Three data points on what that means for clicks and citations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pew Research Center&lt;/strong&gt; (July 2025, browsing data from 900 US adults in March 2025): when an AI summary appeared, users clicked a traditional result 8% of the time, versus 15% without one. Clicks on links inside the summary itself happened on 1% of visits. 26% of visits ended on the summary page, versus 16% without one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BrightEdge&lt;/strong&gt; (2026): google.com accounts for 44.9% of AI Mode citations and 9.9% of AI Overviews citations, a gap that has held for eight months. AI Mode sends you to Google's own surfaces first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BrightEdge&lt;/strong&gt; (April 24, 2026): AI Overviews draw about 17.5% of citations from user-generated platforms, with a single video platform at 10.6%. ChatGPT spreads citations across a long tail, with its top 10 domains holding 18.5% of citations and a heavy weighting toward .gov and .org sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google's own &lt;a href="https://developers.google.com/search/docs/fundamentals/ai-optimization-guide" rel="noopener noreferrer"&gt;guide to generative AI search&lt;/a&gt;, updated July 10, 2026, says: "Optimizing for generative AI search is optimizing for the search experience, and thus still SEO." Structured data is not required. Google tells you to ignore "chunking" tricks, llms.txt files, and paid mentions, and to distrust any vendor claiming special access. On May 27, 2026, Google added Preferred Sources to AI Overviews and AI Mode and a "Highly Cited" badge for original reporting, and says readers are twice as likely to click a source they have marked as preferred.&lt;/p&gt;

&lt;p&gt;The implication for AI-generated content is direct. A model summarizing what is already online produces the commodity content Google says it will not surface. The content that gets cited carries what the model cannot invent: your prices, your process, your numbers, your photos, your customer's words. Answer the question in the first sentence. Use AI to structure and expand material you already have.&lt;/p&gt;

&lt;h3&gt;
  
  
  Image and video tools in October 2026
&lt;/h3&gt;

&lt;p&gt;The image and video market turned over in the last 12 months. Current versions, verified this month:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Images&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI GPT Image&lt;/strong&gt;: GPT Image 2 launched April 21, 2026 in ChatGPT on every plan, including free. The API now defaults to GPT Image 2.5, in two versions: Sunburst for editing precision and Flare for speed (Flare snapshot dated September 8, 2026). API billing is $30 per million output image tokens, $15 in batch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Nano Banana 2&lt;/strong&gt; (Gemini 3.1 Flash Image) launched February 26, 2026: output from 512px to 4K, legible in-image text, and consistent likeness for up to five characters across a set. It is the default in the Gemini app. Google AI Pro is $19.99 per month and Plus is $4.99. A Nano Banana 2.1 model is listed in the Gemini API as of this writing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Midjourney&lt;/strong&gt;: V8.2 became the default model on July 24, 2026. Still the pick for stylized work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adobe Firefly&lt;/strong&gt;: trained on Adobe Stock, openly licensed, and public domain material. Adobe offers enterprise customers IP indemnification on most Firefly workflows. The scope lives in your contract, so read it before you rely on it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Video&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Veo 3.1&lt;/strong&gt; (October 15, 2025) runs in Flow, the Gemini app, the Gemini API, and Vertex AI, with audio and an Extend feature for clips of a minute or more. Google AI Pro includes 1,000 Flow credits, Ultra includes 10,000 or 25,000.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runway Gen-4.5&lt;/strong&gt; (December 2025): 2 to 10 second clips at 12 credits per second on paid plans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI Sora&lt;/strong&gt;: gone. OpenAI announced the discontinuation on March 24, 2026 and removed the sora-2 models and Videos API on September 24, 2026.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two of the image models above did not exist a year ago and one of the three video products is gone. Keep your prompts, brand assets, and approved outputs in your own storage, outside the vendor's app. If you sell on Google Shopping, keep the IPTC AI tag on generated product images, since Merchant Center requires it.&lt;/p&gt;

&lt;h3&gt;
  
  
  FTC rules: reviews, testimonials, and disclosure
&lt;/h3&gt;

&lt;p&gt;The FTC's &lt;a href="https://www.ftc.gov/business-guidance/resources/consumer-reviews-testimonials-rule-questions-answers" rel="noopener noreferrer"&gt;Consumer Reviews and Testimonials Rule&lt;/a&gt;, 16 CFR Part 465, took effect October 21, 2024. It bans reviews and testimonials that misrepresent whether the reviewer exists, used the product, or had the experience described. An AI-written review from a customer who does not exist is a fake review under the rule. The FTC's December 2025 warning letters cite civil penalties of up to $53,088 per violation.&lt;/p&gt;

&lt;p&gt;The FTC's own Q&amp;amp;A draws the line on AI avatars. There is no blanket ban on AI-generated avatars in marketing. An avatar reading a real customer's real words is allowed. An avatar reading an invented testimonial is not.&lt;/p&gt;

&lt;p&gt;Enforcement in the last year:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;December 22, 2025&lt;/strong&gt;: warning letters to 10 companies (six property managers, three personal injury firms, one accounting firm) over incentives offered for positive reviews.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;May 11, 2026&lt;/strong&gt;: the FTC and Illinois sued Premium Home Service, alleging thousands of fake business listings and fake five-star reviews posted by employees, relatives, and SEO firms. The case is pending in the Northern District of Illinois, with a motion to dismiss filed July 17, 2026.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;December 22, 2025&lt;/strong&gt;: the FTC set aside its 2024 order against Rytr, an AI tool with a review-writing feature. That decision protects the tool vendor. It does nothing for a business that posts the output as a customer review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On disclosure of AI-written marketing copy generally: the Endorsement Guides require clear and conspicuous disclosure of material connections, and the FTC Act's deception standard applies to anything you publish. I found no federal rule in force in October 2026 requiring a label on AI-drafted blog posts or product copy. Google Merchant Center's tagging requirement, covered above, is a platform rule, not a statute. Nothing in this section is legal advice. Ask your counsel before you publish testimonials you did not collect yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who owns AI-generated content
&lt;/h3&gt;

&lt;p&gt;Three facts settle most of the ownership question as of October 2026:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The &lt;a href="https://www.copyright.gov/newsnet/2025/1060.html" rel="noopener noreferrer"&gt;US Copyright Office&lt;/a&gt; issued Part 2 of its AI report on January 29, 2025. Prompts alone do not earn copyright. Protection applies where a human-authored work is perceptible in the output, or where a person makes creative arrangements or modifications of it. The Office found no case for changing the law to protect pure AI output.&lt;/li&gt;
&lt;li&gt;In Thaler v. Perlmutter, the D.C. Circuit held in March 2025 that the Copyright Act requires a human author. The Supreme Court declined to review the case on March 2, 2026 (No. 25-449). The human-authorship rule stands.&lt;/li&gt;
&lt;li&gt;Allen v. Perlmutter, the case over a Midjourney image built from more than 600 prompts, is pending in federal court in Colorado with briefing complete as of January 2026 and no ruling as of this writing. It is the case that will test how much human direction is enough.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a business, the rule works out like this. A blog post your team substantively rewrote is yours to register. The raw AI draft is not. An AI product image you generated from a prompt is likely unprotectable, which means a competitor who copies it has a defense. Keep the brief, the drafts, and the edit history so you can show the human contribution. Adobe's enterprise indemnification covers infringement claims against you, which is a separate problem from whether you own the output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost and time expectations
&lt;/h3&gt;

&lt;p&gt;Seats cost $14 to $25 per user per month at the tools above. A working pipeline (data in, review step, analytics back) takes 2 to 4 weeks to set up, most of it spent on brand voice training, product data structure, and the review workflow.&lt;/p&gt;

&lt;p&gt;The only client numbers I will cite are ours. A DTC home goods brand with three writers was stuck at 40 fully optimized product listings per month against 500 new SKUs. After the build, output reached 500+ listings per month, cost per listing fell from $45 to $9.80, new SKUs went live in 48 hours instead of 3 weeks, and AI-optimized listings converted 34% better than the hand-written ones. The full breakdown is in the &lt;a href="https://dev.to/blog/case-study-content-automation-ecommerce"&gt;case study&lt;/a&gt;. Those are one client's numbers. Yours depend on volume and on how much of your content is structured.&lt;/p&gt;

&lt;p&gt;Run your own volume through the &lt;a href="https://dev.to/tools/ai-roi-calculator"&gt;AI ROI calculator&lt;/a&gt; before you commit to a build.&lt;/p&gt;

&lt;h3&gt;
  
  
  When AI content creation makes sense for your business
&lt;/h3&gt;

&lt;p&gt;A pipeline pays back when you have high volume (50 or more pieces per month), multi-channel needs (the same product on Amazon, Shopify, and Instagram), seasonal spikes, or a catalog with hundreds of SKUs waiting on copy.&lt;/p&gt;

&lt;p&gt;Under 10 pieces per month, buy seats, write a brand voice document, and skip the build. The setup cost will not pay back.&lt;/p&gt;

&lt;p&gt;When the content needs original research, interviews, or an opinion with your name on it, keep writing it yourself and use the model for outlines and cleanup. The two mistakes that cost the most are building a pipeline for low volume and letting a pipeline publish without a person reading the output.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I build for a content pipeline
&lt;/h3&gt;

&lt;p&gt;I build the part around the model: an attribute extraction step from your product data, a brand voice layer trained on your best content, channel-specific generation, a review queue that routes each draft to a writer with the sections needing judgment flagged, and a feedback loop from your analytics into the next batch. The &lt;a href="https://dev.to/services/content-creation"&gt;content creation service page&lt;/a&gt; lists the scope and the &lt;a href="https://dev.to/pricing"&gt;pricing page&lt;/a&gt; lists the ranges.&lt;/p&gt;

&lt;p&gt;Start with a $350 AI strategy session. We map your content volume, your channels, and your review capacity, and you leave with a scoped plan whether or not you build with me. The $350 is credited in full toward a build. &lt;a href="https://dev.to/contact"&gt;Book it here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;You now know what AI content creation delivers in October 2026, what Google, the FTC, and the Copyright Office require, which image and video tools are current, and whether your volume justifies a build. If your team is stuck producing the same structured content by hand, a pipeline with a human review step multiplies output while a person still decides what ships.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does Google penalize AI-generated content in 2026?
&lt;/h3&gt;

&lt;p&gt;Google does not penalize AI-generated content for being AI-generated. Google rewards quality regardless of production method. Google's spam policies, updated August 28, 2026, list using generative AI to produce many pages without adding value for users as scaled content abuse, and sites in violation rank lower or drop out of results. Google's generative AI guidance, updated October 1, 2026, tells publishers to manually fact-check every AI output before publishing, including titles, meta descriptions, structured data, and image alt text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I have to disclose that my marketing content was written by AI?
&lt;/h3&gt;

&lt;p&gt;No federal rule in force in October 2026 requires a label on AI-drafted blog posts or product copy. The FTC Act's deception standard and the Endorsement Guides still apply, so an AI persona presented as a real customer is deceptive. Google Merchant Center requires AI-generated product images to carry the IPTC DigitalSourceType tag and AI-generated titles and descriptions to use the structured title and description attributes. Google Search recommends explaining how content was made where it helps readers. This is not legal advice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I copyright content or images an AI made for my business?
&lt;/h3&gt;

&lt;p&gt;You can copyright the human contribution and not the raw AI output. The US Copyright Office's January 2025 report says prompts alone do not earn protection, while human-authored material perceptible in the output and creative arrangements or modifications of it do. The D.C. Circuit held in Thaler v. Perlmutter that copyright requires a human author, and the Supreme Court declined to review that ruling on March 2, 2026. A blog post your team substantively rewrote is registrable. A product image generated from a prompt is likely not.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use AI to write customer reviews or testimonials?
&lt;/h3&gt;

&lt;p&gt;No. The FTC's Consumer Reviews and Testimonials Rule, 16 CFR Part 465, effective October 21, 2024, bans reviews and testimonials that misrepresent whether the reviewer exists, used the product, or had the experience described. An AI-written review from a customer who does not exist is a fake review. The FTC's December 2025 warning letters cite penalties of up to $53,088 per violation. An AI avatar reading a real customer's real words is permitted under the FTC's Q&amp;amp;A. An avatar reading an invented testimonial is not.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get my content cited in Google AI Overviews and ChatGPT?
&lt;/h3&gt;

&lt;p&gt;Content gets cited in Google AI Overviews and ChatGPT when it holds first-hand material a model cannot generate: your prices, process, numbers, photos, and customer accounts, with the direct answer in the first sentence. Google's guide to generative AI search, updated July 10, 2026, says optimizing for AI search is still SEO, structured data is not required, and chunking tricks, llms.txt files, and paid mentions do nothing. BrightEdge's April 2026 data shows AI Overviews lean on user-generated platforms while ChatGPT spreads citations across a long tail weighted toward .gov and .org sources.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does AI content creation cost a small business in 2026?
&lt;/h3&gt;

&lt;p&gt;AI content creation costs $14 to $25 per user per month in seats: ChatGPT Business at $25 per user ($20 annual), Claude Team at $25 per seat ($20 annual), Google Workspace Business Standard with Gemini at $14 per user, and Jasper Pro at about $69 per seat. A built pipeline with product data in, a review step, and analytics back takes 2 to 4 weeks to set up. Our e-commerce client's cost per listing fell from $45 to $9.80 after the build. Run your own volume through the AI ROI calculator at jy-labs.com/tools/ai-roi-calculator.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which AI image and video tools should a small business use in 2026?
&lt;/h3&gt;

&lt;p&gt;For images in October 2026, use OpenAI GPT Image 2 (in ChatGPT on every plan since April 21, 2026, with GPT Image 2.5 Sunburst and Flare in the API), Google Nano Banana 2 (default in the Gemini app since February 26, 2026, with Google AI Pro at $19.99 per month), or Midjourney V8.2 for stylized work. Adobe Firefly adds enterprise IP indemnification. For video, Google Veo 3.1 runs in Flow and the Gemini app and Runway Gen-4.5 handles 2 to 10 second clips. OpenAI shut down Sora, with the API removed September 24, 2026.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/ai-content-creation-business-guide" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>contentcreation</category>
      <category>aiexplained</category>
      <category>businessguide</category>
      <category>aiwriting</category>
    </item>
    <item>
      <title>AI Voice Agents Explained: What Every Business Owner Should Know</title>
      <dc:creator>John Yegs</dc:creator>
      <pubDate>Wed, 07 Oct 2026 19:37:09 +0000</pubDate>
      <link>https://dev.to/jyeg/ai-voice-agents-explained-what-every-business-owner-should-know-1fb8</link>
      <guid>https://dev.to/jyeg/ai-voice-agents-explained-what-every-business-owner-should-know-1fb8</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jy-labs.com/blog/ai-voice-agents-explained" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;. Updated 2026-10-07.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An AI voice agent is software that answers or places phone calls, holds a normal conversation, and finishes a task such as booking an appointment or taking a message, then writes the result into your calendar or CRM. This guide covers what one costs per minute in October 2026, how the two build approaches differ, the FCC and Texas rules you have to follow, and which calls to keep with a person.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;You have heard a voice agent demo and it sounded fine. The questions you still have are the ones vendors skip: what it costs per month at your call volume, why some agents pause for two seconds before answering, whether you are allowed to record the call, and what the FCC says about AI voices on the phone. This post answers those with October 2026 list prices and the current rules, so you can decide with numbers instead of a demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approach
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What a voice agent is, and how it differs from the phone tree
&lt;/h3&gt;

&lt;p&gt;A phone tree (IVR) plays a menu and waits for a keypress. A voice agent listens to what the caller says, decides what to do using a language model, and speaks a reply in a synthesized voice. The caller talks the way they would to a person: "I need to move my Thursday appointment to next week." The agent checks the calendar, offers two open slots, books one, and sends a confirmation text.&lt;/p&gt;

&lt;p&gt;Three things make this work in 2026 that did not work in 2021:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Speech recognition that handles accents, background noise, and people talking over the agent.&lt;/strong&gt; Interruptions no longer break the call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language models that follow a script loosely instead of matching keywords.&lt;/strong&gt; The caller does not have to say the magic word.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool calling.&lt;/strong&gt; The model reads and writes to your scheduling system, CRM, or order database during the call, so the booking lands in the right place without anyone retyping it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The agent still has limits. It works from the instructions and data you give it. Ask it a question outside that scope and a well-built agent says so and transfers the call. A badly built one guesses. The difference is in the setup, not the model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two ways to build one, and why the pause matters
&lt;/h3&gt;

&lt;p&gt;Every voice agent on the market uses one of two architectures. The choice sets both the price and the feel of the call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pipeline (speech-to-text, then a language model, then text-to-speech).&lt;/strong&gt; Three separate services pass text between them. You pick each part: a Deepgram transcriber, an OpenAI or Anthropic model, an ElevenLabs or Cartesia voice. It is cheaper, easier to control, and easier to swap parts. The cost is delay. Each hop adds time before the agent starts speaking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speech-to-speech.&lt;/strong&gt; One model takes in audio and produces audio. OpenAI's gpt-realtime-2.1 is the main example. There is no transcription step, so the model hears tone and pacing, and it handles interruptions more like a person would. It costs more. On Retell, the flagship speech-to-speech model bills at $0.38 per minute against $0.064 for a standard text model, and the mini version at $0.07 (&lt;a href="https://www.retellai.com/pricing" rel="noopener noreferrer"&gt;Retell pricing&lt;/a&gt;, October 2026).&lt;/p&gt;

&lt;p&gt;The number to ask any vendor for is latency: how long the caller waits after finishing a sentence before the agent starts talking. Hamming's January 2026 analysis of production voice agents put the median at 1.4 to 1.7 seconds and the 90th percentile at 3.3 to 3.8 seconds. Their target for a natural conversation is under 800 milliseconds, and above 1.5 seconds the conversation breaks down (&lt;a href="https://hamming.ai/blog/voice-ai-latency-whats-fast-whats-slow-how-to-fix-it" rel="noopener noreferrer"&gt;Hamming, Voice AI Latency&lt;/a&gt;). Demo calls run under ideal conditions. Ask for the P90 on real calls, and listen to recordings from the vendor's existing customers before you sign.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it costs per minute in October 2026
&lt;/h3&gt;

&lt;p&gt;Voice agents bill per minute of talk time, plus a platform fee on some plans, plus the build. List prices I checked on October 7, 2026:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Per-minute&lt;/th&gt;
&lt;th&gt;Monthly platform fee&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.retellai.com/pricing" rel="noopener noreferrer"&gt;Retell&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;$0.07 to $0.31 all-in, by model and voice&lt;/td&gt;
&lt;td&gt;None on pay-as-you-go&lt;/td&gt;
&lt;td&gt;$0.055 infra + $0.015 telephony + $0.015 standard voice + language model ($0.0016 to $0.64)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://vapi.ai/pricing" rel="noopener noreferrer"&gt;Vapi&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;$0.05 hosting, then provider costs at pass-through&lt;/td&gt;
&lt;td&gt;$0 or $29 (Core)&lt;/td&gt;
&lt;td&gt;Vapi's calculator estimates $82 to $129 per month for 1,000 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://elevenlabs.io/pricing/api" rel="noopener noreferrer"&gt;ElevenLabs Agents&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;$0.08 ($0.16 above your concurrency limit)&lt;/td&gt;
&lt;td&gt;Plans from $6 to $990 with bundled minutes&lt;/td&gt;
&lt;td&gt;Language model and phone line billed on top&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.bland.ai/pricing" rel="noopener noreferrer"&gt;Bland&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;$0.14 (Start) or $0.12 (Build)&lt;/td&gt;
&lt;td&gt;$0 or $299&lt;/td&gt;
&lt;td&gt;Telephony extra, transfers $0.04 to $0.05 per minute&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two add-ons move the bill more than the headline rate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Premium voices.&lt;/strong&gt; On Retell, a standard voice costs $0.015 per minute and an ElevenLabs v4 voice costs $0.10. Pick the voice after you have heard both on your own script.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HIPAA.&lt;/strong&gt; Vapi charges $2,000 per month for its HIPAA add-on. Retell offers a BAA on enterprise contracts only, with custom pricing. If you are a clinic, this line item belongs in the budget on day one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are list prices and they change often. Vendors run calculators on their pricing pages. Put your own numbers in before you budget.&lt;/p&gt;

&lt;h3&gt;
  
  
  A worked monthly budget, next to a receptionist's salary
&lt;/h3&gt;

&lt;p&gt;Take a business that gets 600 calls a month averaging three minutes, so 1,800 minutes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Budget stack&lt;/strong&gt; (Retell infra, Retell telephony, a standard voice, GPT 5.4 mini): about $0.11 per minute, or roughly $200 a month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better stack&lt;/strong&gt; (same, with an ElevenLabs Flash voice and Claude 5.5 Sonnet): about $0.17 per minute, or roughly $310 a month.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is my arithmetic from Retell's October 2026 price list, before a phone number ($2 a month) and before the build. The build is the larger cost in year one: call-flow design, calendar and CRM integration, testing on real calls, and a few weeks of tuning after launch. On my projects that work runs four to eight weeks.&lt;/p&gt;

&lt;p&gt;For comparison, the Bureau of Labor Statistics puts the median receptionist wage at $18.27 an hour in May 2025, or $38,010 a year, with the top 10 percent above $24.01 an hour (&lt;a href="https://www.bls.gov/ooh/office-and-administrative-support/receptionists.htm" rel="noopener noreferrer"&gt;BLS Occupational Outlook Handbook&lt;/a&gt;). Add payroll taxes and benefits on top.&lt;/p&gt;

&lt;p&gt;Read that comparison carefully. A voice agent at $200 to $310 a month does not replace a receptionist who greets walk-ins, handles mail, and knows which patient is a talker. It replaces the calls that currently ring out. CallRail's July 2026 data puts the share of business calls that go unanswered at 28 percent on average (&lt;a href="https://www.callrail.com/blog/callrail-opens-voice-assist-to-every-business-contextual-ai-texting" rel="noopener noreferrer"&gt;CallRail&lt;/a&gt;). If your number is anywhere near that, the agent pays for itself on recovered bookings before you touch headcount. Run your own volume through the &lt;a href="https://dev.to/tools/ai-roi-calculator"&gt;AI ROI calculator&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The rules: FCC, call recording, and AI disclosure in Texas
&lt;/h3&gt;

&lt;p&gt;None of this is legal advice. It is the list of rules that shaped the builds I have done, and the reason each one matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The FCC treats an AI voice like a prerecorded voice.&lt;/strong&gt; On February 8, 2024, the FCC issued a declaratory ruling that AI-generated and cloned voices count as "artificial or prerecorded voice" under the Telephone Consumer Protection Act (&lt;a href="https://wiley.law/alert-FCC-Extends-Regulatory-Reach-Over-AI-Announces-TCPA-Restrictions-Cover-AI-Generated-Voices-in-Outbound-Calls" rel="noopener noreferrer"&gt;Wiley summary of FCC 24-17&lt;/a&gt;). The restriction applies to calls your agent initiates. Appointment reminders, follow-ups, and re-engagement calls need prior express consent from the person you are calling, and marketing calls need that consent in writing. Collect it at intake, in plain words, and keep the record. Inbound calls that a customer places to you do not trigger that consent rule, since you did not initiate the call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A disclosure rule is proposed and not final.&lt;/strong&gt; In August 2024 the FCC proposed requiring callers to say at the start of a call that it uses AI-generated technology, and to spell out AI calls in consent forms (&lt;a href="https://www.hlc.com/en/publications/fcc-to-consider-new-tcpa-requirements-for-using-ai-generated-content-in-robocalls-and-robotexts" rel="noopener noreferrer"&gt;Hogan Lovells summary&lt;/a&gt;). As of October 2026 I found no final rule adopting it. In the same week I wrote this, the FCC was taking comments on a petition to let political groups send AI-voiced robocalls to cell phones without consent, with reply comments due October 19 (&lt;a href="https://www.ksat.com/news/politics/2026/10/07/fcc-considers-allowing-more-political-robocalls-before-midterms-including-those-created-with-ai/" rel="noopener noreferrer"&gt;AP via KSAT, October 7, 2026&lt;/a&gt;). The rules are moving. The safe build announces the agent is AI in its first sentence regardless.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recording consent depends on where the caller is standing.&lt;/strong&gt; Texas is a one-party consent state. Under Penal Code 16.02 it is a defense that you are a party to the call or that one party consented, and unlawful interception is a second-degree felony (&lt;a href="https://texas.public.law/statutes/tex._penal_code_section_16.02" rel="noopener noreferrer"&gt;Texas Penal Code 16.02&lt;/a&gt;). The civil side, Civil Practice and Remedies Code 123.004, allows $10,000 per violation (&lt;a href="https://www.rcfp.org/reporters-recording-guide/texas/" rel="noopener noreferrer"&gt;RCFP Texas recording guide&lt;/a&gt;). Roughly a dozen states require every party's consent, among them California, Florida, Illinois, Maryland, Massachusetts, Montana, Nevada, New Hampshire, Pennsylvania, and Washington, and the published lists disagree on a few others. You do not know which state a cell phone caller is in. Record the "this call is recorded" notice into the greeting on every call and the question goes away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Texas added an AI law on January 1, 2026.&lt;/strong&gt; The Texas Responsible Artificial Intelligence Governance Act requires health care providers to give patients clear notice when AI is used in relation to their service or treatment, no later than the first date of service, and requires government agencies to tell people they are interacting with an AI system (&lt;a href="https://www.insideglobaltech.com/2025/07/01/texas-enacts-ai-consumer-protection-law/" rel="noopener noreferrer"&gt;Covington summary&lt;/a&gt;). The Attorney General enforces it, with a 60-day cure period and penalties from $10,000 to $200,000 per violation (&lt;a href="https://www.morganlewis.com/pubs/2025/07/texas-joins-the-emerging-landscape-of-state-level-ai-governance" rel="noopener noreferrer"&gt;Morgan Lewis summary&lt;/a&gt;). If you run a clinic in Texas, the voice agent's greeting and your intake paperwork both need the notice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Calls that work today, and calls to keep with a person
&lt;/h3&gt;

&lt;p&gt;The agent earns its keep on calls with a defined outcome and a system to write into.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Works today&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scheduling, rescheduling, and cancellations against a live calendar.&lt;/li&gt;
&lt;li&gt;Reminder calls with one-touch rescheduling. In the &lt;a href="https://dev.to/blog/case-study-voice-agents-healthcare-scheduling"&gt;healthcare scheduling case study&lt;/a&gt;, reminders at 72, 24, and 2 hours cut the no-show rate from 18 percent to 4.9 percent and recovered $420K a year, with the agent answering 99.2 percent of calls within three rings.&lt;/li&gt;
&lt;li&gt;The 20 questions that make up most of your call volume: hours, location, pricing, what to bring.&lt;/li&gt;
&lt;li&gt;Order and ticket status lookups.&lt;/li&gt;
&lt;li&gt;Lead intake: name, need, timeline, best callback window, written straight into the CRM.&lt;/li&gt;
&lt;li&gt;After-hours coverage and overflow when every line is busy.&lt;/li&gt;
&lt;li&gt;Spanish and English on the same number, with the agent switching when the caller does.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Keep with a person&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anything that needs judgment the caller will hold you to: a clinical question, a legal position, a pricing exception.&lt;/li&gt;
&lt;li&gt;Upset customers. A good agent detects the tone and transfers. Do not ask it to de-escalate.&lt;/li&gt;
&lt;li&gt;Payments by phone, unless the platform handles card capture under PCI rules and you have confirmed that in writing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The design rule I use: the agent either finishes the task or hands off with context. It never leaves the caller in a loop.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it connects to your calendar and CRM
&lt;/h3&gt;

&lt;p&gt;The integration is the part that turns a demo into a tool. During the call, the agent calls functions you define: check availability, book slot, look up order, create contact, send SMS. Each one hits your existing system through its API. Google Calendar, Calendly, Acuity, HubSpot, Salesforce, Jobber, ServiceTitan, and most EHRs expose one.&lt;/p&gt;

&lt;p&gt;If your system has no API, the agent still takes the message and emails a structured summary, and a person enters it. That works, and it loses most of the time savings. Before you buy, list the three systems the agent must touch and confirm each has an API or a Zapier/Make connector.&lt;/p&gt;

&lt;p&gt;After the call, the transcript, the recording (if you record), and a short summary attach to the contact record. You read five summaries in the time it took to listen to one voicemail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is your business a fit, and how to start
&lt;/h3&gt;

&lt;p&gt;Three questions settle it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Do calls go unanswered?&lt;/strong&gt; Pull last month's missed-call count from your phone system. If it is a handful, start with a better voicemail. If it is dozens a week, the agent has a job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do most calls follow a pattern?&lt;/strong&gt; Scheduling, status, and the same ten questions are a fit. Calls that start "it's complicated" are not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is there a system to write into?&lt;/strong&gt; A calendar or CRM with an API. Without one, the agent is a transcription service.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Start with one call type for 30 days. After-hours scheduling is the usual first pick because the baseline is zero: today those calls go to voicemail. Measure three things: calls answered, tasks completed without transfer, and bookings made. Then add the next call type.&lt;/p&gt;

&lt;p&gt;JY Labs builds voice agents on these platforms for clinics, home-service companies, and professional firms. The first step is a $350 AI strategy session, credited in full toward a build if you go ahead. You leave with your call volume costed on current prices, the rules that apply to your industry, and a yes or no on fit. &lt;a href="https://dev.to/contact"&gt;Book it here&lt;/a&gt;, or read the &lt;a href="https://dev.to/services/voice-agents"&gt;voice agents service page&lt;/a&gt; first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;You now have current per-minute prices from four platforms, a worked monthly budget next to the BLS receptionist wage, the FCC consent rule for outbound AI calls, the Texas recording and AI disclosure rules, and a three-question fit test. If your phone system shows dozens of missed calls a week and most of them are scheduling or status questions, a voice agent on after-hours coverage is the lowest-risk place to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does an AI voice agent cost per minute in 2026?
&lt;/h3&gt;

&lt;p&gt;An AI voice agent costs roughly $0.07 to $0.31 per minute of talk time on Retell, $0.05 per minute hosting plus provider costs on Vapi, $0.08 per minute on ElevenLabs Agents, and $0.12 to $0.14 per minute on Bland, at October 2026 list prices. The language model and the voice you pick move the rate most. A business with 1,800 minutes a month lands near $200 to $310 before the build. HIPAA is extra: $2,000 a month on Vapi, enterprise-only on Retell.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does the FCC allow AI voices on business phone calls?
&lt;/h3&gt;

&lt;p&gt;The FCC allows AI voices on business calls with the right consent. Its February 8, 2024 declaratory ruling treats AI-generated and cloned voices as artificial or prerecorded voices under the TCPA, so outbound calls your agent initiates need the recipient's prior express consent, in writing for marketing calls. Inbound calls that a customer places to you do not trigger that consent rule. A proposed rule requiring an AI disclosure at the start of each call was still not final as of October 2026.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it legal to record AI voice agent calls in Texas?
&lt;/h3&gt;

&lt;p&gt;Recording AI voice agent calls is legal in Texas with one party's consent. Texas Penal Code 16.02 makes it a defense that you are a party to the call or that one party consented. Callers from all-party consent states such as California, Florida, Illinois, Maryland, Massachusetts, Montana, Nevada, New Hampshire, Pennsylvania, and Washington need to hear a recording notice. Put the notice in the greeting on every call. This is not legal advice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does a Texas business have to disclose that callers are talking to AI?
&lt;/h3&gt;

&lt;p&gt;A Texas health care provider has to disclose AI use to patients, and a Texas government agency has to disclose AI interaction, under the Texas Responsible Artificial Intelligence Governance Act, effective January 1, 2026. Other Texas businesses have no state disclosure mandate as of October 2026, and the FCC's proposed in-call AI disclosure is not final. Announce the agent is AI in its first sentence anyway. The Attorney General enforces TRAIGA with penalties from $10,000 to $200,000 per violation. This is not legal advice.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does a voice agent compare to hiring a receptionist?
&lt;/h3&gt;

&lt;p&gt;A voice agent compares to a receptionist on the calls that go unanswered, not on the whole job. The BLS median receptionist wage was $18.27 an hour in May 2025, or $38,010 a year, before payroll taxes and benefits. A voice agent handling 1,800 minutes a month runs about $200 to $310 a month at October 2026 list prices, plus a one-time build. It covers after-hours, overflow, and reminder calls 24 hours a day. It does not greet walk-ins or handle the judgment calls a good receptionist makes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do some AI voice agents pause before answering?
&lt;/h3&gt;

&lt;p&gt;AI voice agents pause because each step in the call pipeline adds delay: transcribing the caller, running the language model, and generating speech. Hamming's January 2026 analysis of production voice agents found a median wait of 1.4 to 1.7 seconds and a 90th percentile of 3.3 to 3.8 seconds, against a target of under 800 milliseconds for a natural conversation. Speech-to-speech models such as OpenAI's gpt-realtime-2.1 remove the transcription step at a higher per-minute price. Ask a vendor for 90th percentile latency on real calls, not demo calls.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;JY Labs builds AI automation for businesses: RAG agents, lead generation, content automation, and voice agents. Read the original post and more at &lt;a href="https://jy-labs.com/blog/ai-voice-agents-explained" rel="noopener noreferrer"&gt;jy-labs.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>voiceagents</category>
      <category>aiexplained</category>
      <category>businessguide</category>
      <category>aiphoneautomation</category>
    </item>
  </channel>
</rss>
