<?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: InterCode</title>
    <description>The latest articles on DEV Community by InterCode (@intercode).</description>
    <link>https://dev.to/intercode</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%2F2915617%2Fab42a674-e724-4bd9-8b5a-89f5ceb1de85.png</url>
      <title>DEV Community: InterCode</title>
      <link>https://dev.to/intercode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/intercode"/>
    <language>en</language>
    <item>
      <title>Rules vs. Goals: What Changes in Your Code When Marketing Automation Becomes an Agent</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Thu, 29 Oct 2026 11:52:21 +0000</pubDate>
      <link>https://dev.to/intercode/rules-vs-goals-what-changes-in-your-code-when-marketing-automation-becomes-an-agent-17fo</link>
      <guid>https://dev.to/intercode/rules-vs-goals-what-changes-in-your-code-when-marketing-automation-becomes-an-agent-17fo</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Marketing automation runs rules a human wrote in advance. An agent gets a goal plus guardrails and picks its own path through a perceive → reason → act → learn loop.&lt;/li&gt;
&lt;li&gt;In production, the model is rarely what breaks. Bad upstream data, mismatches between agents, brand-voice drift, and a team that doesn't trust the tool do.&lt;/li&gt;
&lt;li&gt;Guardrails, approval queues and audit logs aren't policy documents. They're features you have to build and test like any other.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The problem: decision trees don't scale to goals
&lt;/h2&gt;

&lt;p&gt;Classic marketing automation is a decision tree someone drew before launch:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Prospect views the pricing page → wait 24 hours → send email variant A → if opened, set lead score X.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every branch is a path a human anticipated and hard-coded. That works until the number of channels, audiences and creative variants outgrows what anyone can map by hand.&lt;/p&gt;

&lt;p&gt;An agentic system flips the contract. You don't write the branches. You define an &lt;strong&gt;objective&lt;/strong&gt; and &lt;strong&gt;hard boundaries&lt;/strong&gt; (budget, compliance, brand safety), and the system decides which segment to target, which creative to assemble, how to allocate bids and when to change pacing as live signals move.&lt;/p&gt;

&lt;p&gt;For engineers, that means the core of the system stops being a rules engine and becomes a loop plus a guardrail layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The loop
&lt;/h2&gt;

&lt;p&gt;Most goal-driven marketing agents reduce to four stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Perceive.&lt;/strong&gt; Continuously ingest behavioral signals, purchase history, inventory or catalog state, channel metrics and consent status. This is a live stream, not a nightly batch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reason.&lt;/strong&gt; Evaluate those signals against the goal and the active guardrails, and decide which intervention has the highest expected value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act.&lt;/strong&gt; Execute it in the right channel: launch a campaign shell, shift a bid allocation, send a personalized reply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn.&lt;/strong&gt; Capture the conversion or engagement feedback and update parameters before the next cycle.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The interesting engineering sits between &lt;em&gt;reason&lt;/em&gt; and &lt;em&gt;act&lt;/em&gt;: everything that decides whether the agent is &lt;em&gt;allowed&lt;/em&gt; to do what it thinks is best.&lt;/p&gt;

&lt;h2&gt;
  
  
  Guardrails are features, not a slide
&lt;/h2&gt;

&lt;p&gt;"We'll keep a human in the loop" sounds like a management decision. In practice it's a set of things engineers have to build. Any agent that takes public-facing actions or commits client media budget needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Staging queues&lt;/strong&gt; where proposed actions wait for review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based permissions&lt;/strong&gt; that define who can approve what&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-click overrides&lt;/strong&gt; for when a human disagrees&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An immutable audit trail&lt;/strong&gt; of every decision and action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building for an agency or a platform that serves many clients, this gets bigger. A single brand's internal agent works with one brand voice, one catalog and one privacy perimeter. A platform serving dozens or hundreds of competing clients needs tone, bidding guardrails and conversion goals that adapt per client, with each client's data kept apart. That's a materially larger build, and it's why this kind of work sits closer to &lt;a href="https://intercode.com/services/adtech-development" rel="noopener noreferrer"&gt;AdTech platform development&lt;/a&gt; than to a weekend prototype.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it actually breaks
&lt;/h2&gt;

&lt;p&gt;Across production deployments and industry post-mortems, four failure modes explain most stalled projects. Notably, "the LLM misunderstood the task" isn't one of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Upstream data quietly lies
&lt;/h3&gt;

&lt;p&gt;Agents make confident, mathematically sound and commercially wrong decisions when their inputs are broken. If an ad platform's conversion pixel double-counts purchases, a goal-driven agent will keep shifting budget into that broken channel until a guardrail stops it.&lt;/p&gt;

&lt;p&gt;Data access is also what drives the estimate. In our builds, the number of external integrations consistently set the engineering effort. One reputation agent had to aggregate reviews and messages from 10 sources (Google, Yelp, TripAdvisor, UberEats, DoorDash, Instagram, Facebook, OpenTable, Talabat and Deliveroo) before it could draft a single reply. If campaign telemetry, CRM records and catalogs live in unlinked silos without stable APIs, the project starts with data plumbing.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Handoffs fail before models do
&lt;/h3&gt;

&lt;p&gt;In a multi-agent workflow, say a research agent feeding a scoring agent feeding an outreach generator, failures rarely come from the model's comprehension. They happen in the handoffs: state management and schema mismatches between agents. Coordination, not individual intelligence, is the main engineering challenge.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Brand-voice drift is its own defect class
&lt;/h3&gt;

&lt;p&gt;In marketing, a reply or ad variation that's factually right but slightly off-brand is treated by the client as a critical bug. Catching tone violations across 1,200 hospitality locations isn't something you solve by tweaking a prompt. It takes automated evaluation that scores every generated output against a client-specific brand rubric before release.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The team routes around the tool
&lt;/h3&gt;

&lt;p&gt;This one isn't technical, but it kills projects. Staff who worry about being automated away, and who weren't involved in rollout, either bypass the agent or magnify its early mistakes to justify shutting it down. A gradual, phased rollout with hands-on training isn't optional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rollout: shadow mode first
&lt;/h2&gt;

&lt;p&gt;The release pattern that holds up in production:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shadow mode.&lt;/strong&gt; The agent runs silently against live traffic and publishes nothing. QA scores its output, for example on brand-tone accuracy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parallel runs.&lt;/strong&gt; For research-style agents, compare the agent's output with what senior analysts produce on the same inputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phased rollout.&lt;/strong&gt; Enable live actions for a first cohort of accounts or locations, monitor, then expand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then assign a named &lt;strong&gt;AgentOps&lt;/strong&gt; owner on the client side: one person who reviews overnight execution logs, audits edge-case escalations and refines guardrail parameters. An unmonitored agent will drift as ad platform rules and client offerings change.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this looked like in real builds
&lt;/h2&gt;

&lt;p&gt;Numbers from projects delivered for marketing businesses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Outdoor advertising booking (Billboards America).&lt;/strong&gt; A multi-agent chatbot that automates client consultations and campaign setup. Campaign creation went from 45 to 10 minutes, lead conversion from 15–20% to 35–45%, and consultation automation from 0% to 70%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-agent customer acquisition (Street Digital).&lt;/strong&gt; 10 weeks, about 4 FTEs. Manual prospect research dropped 73%, and outbound capacity grew 3.2x with zero new hires.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-location reputation agent (Localyser).&lt;/strong&gt; 6 weeks, 2.5 FTEs, 1,200 locations. Response time fell from 18 hours to 4 minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tenant leasing agent (Respage).&lt;/strong&gt; 14 weeks, 5 FTEs. It handles 62% of first-touch inquiries without a human.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern holds: integration count and architecture, not model choice, set the timeline. Production builds took 6–14 weeks with 3–5 specialists.&lt;/p&gt;

&lt;h2&gt;
  
  
  When not to build one
&lt;/h2&gt;

&lt;p&gt;If a single off-the-shelf tool solves an internal task and you aren't putting the capability into something you sell, buy it. Build when the agent becomes part of your &lt;a href="https://intercode.com/services/martech-software" rel="noopener noreferrer"&gt;marketing product&lt;/a&gt; and you have enough repeatable volume to pay it back.&lt;/p&gt;

&lt;p&gt;Before any of that, make sure someone can write down the rules the agent is supposed to follow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What counts as a qualified prospect&lt;/li&gt;
&lt;li&gt;What cost-per-lead variance triggers a budget reallocation&lt;/li&gt;
&lt;li&gt;Which conditions require immediate human escalation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If those rules only exist as a senior media buyer's intuition, the agent has nothing to learn from.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;The model is the easy part of a campaign agent. The work lives in the guardrail layer, the handoffs between agents, output evaluation and the rollout. Treat those as first-class engineering and the agent behaves. Skip them and it fails confidently.&lt;/p&gt;

&lt;p&gt;The business side (buy vs. build, the economics for agencies, and a week-by-week delivery plan) is covered in our full write-up on &lt;a href="https://intercode.com/blog/agentic-advertising" rel="noopener noreferrer"&gt;agentic advertising&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>How AI Agents Actually Work in Property Management: Workflows, Failure Modes, and Multi-Tenancy</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Wed, 28 Oct 2026 10:13:01 +0000</pubDate>
      <link>https://dev.to/intercode/how-ai-agents-actually-work-in-property-management-workflows-failure-modes-and-multi-tenancy-4glo</link>
      <guid>https://dev.to/intercode/how-ai-agents-actually-work-in-property-management-workflows-failure-modes-and-multi-tenancy-4glo</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI in property management has narrowed down to four jobs: leasing, maintenance triage, resident communication, and marketing/reputation.&lt;/li&gt;
&lt;li&gt;These agents don't work in isolation. They read from and write to the property management system (PMS), such as Yardi, RealPage, or AppFolio.&lt;/li&gt;
&lt;li&gt;Deployments usually fail for three reasons: untrained staff, outdated PMS data, and after-hours traffic without hard guardrails.&lt;/li&gt;
&lt;li&gt;A custom build only makes sense when &lt;strong&gt;all three&lt;/strong&gt; conditions hold: the agent is part of a product you sell, you need multi-tenant isolation, and your volume can pay back the engineering cost.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The problem: demand arrives after the office closes
&lt;/h2&gt;

&lt;p&gt;Data from Respage, a multifamily marketing platform, shows that most prospective renters send inquiries after 5:00 PM. Their questions are usually simple: pet policy, parking, move-in fees, tour times. But a reply the next morning often comes too late, because the renter has already booked a showing at another property.&lt;/p&gt;

&lt;p&gt;That timing gap is why AI agents in this space have moved from experiments into everyday operations. In the Yardi ecosystem, for example, operators already run agents that categorize vendor invoices, check utility charges against historical baselines, and generate lease renewal offers without a human in the loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four jobs, four workflows
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Leasing
&lt;/h3&gt;

&lt;p&gt;The leasing agent works across email, SMS, web chat, and voice, and pulls from the property's live availability feed in the PMS instead of following a fixed decision tree.&lt;/p&gt;

&lt;p&gt;Take a prospect asking whether a two-bedroom allows a large dog and whether there's a tour slot on Saturday. The agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;checks the lease rules for that specific unit&lt;/li&gt;
&lt;li&gt;confirms open slots in the live calendar&lt;/li&gt;
&lt;li&gt;answers the policy question&lt;/li&gt;
&lt;li&gt;pre-qualifies the prospect against income and credit thresholds&lt;/li&gt;
&lt;li&gt;books the tour in the leasing calendar&lt;/li&gt;
&lt;li&gt;sends follow-up reminders to cut no-shows&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Respage's AI leasing agent handles 62% of first-touch inquiries without a human and passes the other 38%, the complex or exception-based conversations, to leasing staff.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Maintenance triage
&lt;/h3&gt;

&lt;p&gt;The agent sits at work order intake. It asks diagnostic questions, asks the resident for photos or short videos, and classifies severity before anyone is dispatched.&lt;/p&gt;

&lt;p&gt;For minor issues such as a tripped breaker, a garbage disposal that needs resetting, or a dead thermostat battery, it walks the resident through a fix and avoids a billable vendor visit. When a real repair is needed, it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;creates a structured work order in the PMS&lt;/li&gt;
&lt;li&gt;matches the fault category to the operator's approved vendors&lt;/li&gt;
&lt;li&gt;checks contractor availability&lt;/li&gt;
&lt;li&gt;schedules the repair window with the resident&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3. Resident communication
&lt;/h3&gt;

&lt;p&gt;Because these agents read the resident ledger and the lease directly, they can explain things like a prorated water charge or move-out notice rules in seconds, through the portal, SMS, or email.&lt;/p&gt;

&lt;p&gt;On renewals, the agent tracks upcoming lease expirations, generates offers from approved rent matrices, sends follow-ups in sequence, and routes signed addenda back into the PMS.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Marketing and reputation
&lt;/h3&gt;

&lt;p&gt;Generative agents write listing descriptions for individual floor plans and push updates to syndication portals whenever vacancy changes. In larger operations, multi-agent systems also handle outbound prospect research and campaigns.&lt;/p&gt;

&lt;p&gt;Reputation agents monitor reviews on Google, Apartments.com, and Yelp across hundreds or thousands of locations, draft responses within minutes, and flag recurring complaints for regional managers.&lt;/p&gt;

&lt;p&gt;In all four cases, the agent is only as useful as its connection to the systems it reads from and writes to. That makes most of this work an exercise in &lt;a href="https://intercode.com/services/ai-integration" rel="noopener noreferrer"&gt;AI integration with existing business systems&lt;/a&gt;, not just model choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three failure modes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Staff don't understand or trust the agent
&lt;/h3&gt;

&lt;p&gt;A one-hour walkthrough at launch isn't enough. Each role works with the agent differently, and each breaks it differently when untrained:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Leasing consultants&lt;/strong&gt; override the calendar, double-book units, or send duplicate emails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accounts payable&lt;/strong&gt; re-audits every invoice the agent categorized, which wipes out the time savings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance supervisors&lt;/strong&gt; don't adjust dispatch rules, so technicians ignore the AI's troubleshooting notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Residents&lt;/strong&gt; never hear about the new channel and keep calling the office.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is shadow spreadsheets and manual workarounds. Training has to be role-specific and continuous. Baseline metrics should be set before launch and reviewed after the first month.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The PMS data is outdated
&lt;/h3&gt;

&lt;p&gt;The agent sits downstream of the system of record. If unit availability, concessions, pet weight limits, or vendor lists are outdated, or scattered across disconnected spreadsheets, the agent will give answers that are fluent, confident, and wrong. PMS data cleanup has to happen before the agent goes live.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. After-hours runs without supervision
&lt;/h3&gt;

&lt;p&gt;The evening window is where an agent wins tours that would otherwise be lost. It's also when no manager is watching. That's when an agent can misread a fair-housing question, quote a rent concession that has expired, or fail to escalate an emergency water leak.&lt;/p&gt;

&lt;p&gt;The article this is based on is explicit: hard guardrails, deterministic fallback rules, and strict escalation triggers must be in place before the agent handles evening traffic.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a platform needs that a single operator doesn't
&lt;/h2&gt;

&lt;p&gt;Most off-the-shelf tools are designed for one operator running its own portfolio. A proptech platform, franchise network, or management group serving many independent companies needs a different architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;behavioral rules defined per client&lt;/li&gt;
&lt;li&gt;escalation paths specific to each management company&lt;/li&gt;
&lt;li&gt;brand voice guardrails per property owner&lt;/li&gt;
&lt;li&gt;logical or cryptographic data isolation per client&lt;/li&gt;
&lt;li&gt;multi-tenant admin APIs&lt;/li&gt;
&lt;li&gt;token metering at the tenant level&lt;/li&gt;
&lt;li&gt;granular permission layers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools sold to individual operators rarely expose these. This gap is the main technical reason platforms choose to build.&lt;/p&gt;

&lt;h2&gt;
  
  
  What delivered builds looked like
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Team&lt;/th&gt;
&lt;th&gt;Timeline&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Outcome&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Respage&lt;/td&gt;
&lt;td&gt;Commercial AI leasing agent&lt;/td&gt;
&lt;td&gt;2 AI engineers, 1 full-stack developer, 1 MLOps engineer, 1 PM&lt;/td&gt;
&lt;td&gt;14 weeks&lt;/td&gt;
&lt;td&gt;$140K–275K&lt;/td&gt;
&lt;td&gt;62% of first-touch inquiries handled without a human&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Street Digital&lt;/td&gt;
&lt;td&gt;Multi-agent customer acquisition&lt;/td&gt;
&lt;td&gt;2 AI developers, 1 backend engineer, 0.5 PM, 0.5 QA&lt;/td&gt;
&lt;td&gt;10 weeks&lt;/td&gt;
&lt;td&gt;$115K&lt;/td&gt;
&lt;td&gt;Manual prospect research −73%; outbound capacity 3.2x with no new hires; $320K+ new pipeline in 5 months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Localyser&lt;/td&gt;
&lt;td&gt;Reputation agent across 1,200 locations&lt;/td&gt;
&lt;td&gt;1 AI specialist, 1 backend engineer, 0.5 QA&lt;/td&gt;
&lt;td&gt;6 weeks&lt;/td&gt;
&lt;td&gt;$45K&lt;/td&gt;
&lt;td&gt;Response time from 18 hours to 4 minutes; ~1,100 triage hours deflected monthly; payback within 3 months&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;a href="https://intercode.com/cases/respage-saas-platform" rel="noopener noreferrer"&gt;Respage AI leasing agent&lt;/a&gt; is a good example of the first build condition: the agent is a core feature Respage sells to its own property management clients, not an internal tool.&lt;/p&gt;

&lt;p&gt;Localyser shows the volume condition. It paid back in three months because the savings came from 1,200 locations. The same build across 20 locations wouldn't recover its cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build or buy
&lt;/h2&gt;

&lt;p&gt;Vendors spread the cost of research, voice-model tuning, and PMS maintenance across thousands of buildings. An operator with 200–500 units won't beat that by funding its own leasing chatbot.&lt;/p&gt;

&lt;p&gt;Build only when &lt;strong&gt;all three&lt;/strong&gt; conditions hold:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The agent is part of a commercial product&lt;/strong&gt; you sell to customers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need multi-tenancy&lt;/strong&gt; with per-client rules and data isolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your volume is high enough&lt;/strong&gt; to amortize the engineering investment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't build if an existing tool already covers your needs, if your portfolio is under a few hundred units, or if you can't name the metric the system has to move.&lt;/p&gt;

&lt;p&gt;For most operators, the practical path is to buy and invest in training:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EliseAI&lt;/strong&gt; for full-cycle multifamily leasing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AppFolio Realm-X&lt;/strong&gt; or &lt;strong&gt;Yardi Agents&lt;/strong&gt; for automation inside those PMS platforms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Showdigs&lt;/strong&gt; for scattered-site portfolios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A basic website chatbot can launch in a day. A deeply integrated leasing or maintenance agent takes several weeks to connect to the PMS and test against real vendor lists and escalation workflows.&lt;/p&gt;

&lt;p&gt;For proptech platforms and large operators that hit the ceiling of off-the-shelf tools, the multi-tenant architecture above is where the real engineering work starts. That's the focus of &lt;a href="https://intercode.com/services/proptech-development" rel="noopener noreferrer"&gt;proptech software development&lt;/a&gt; at InterCode.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>architecture</category>
    </item>
    <item>
      <title>The Hard Part of AI Agents for Marketing Platforms Isn’t the Model. It’s Everything Around It</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Fri, 16 Oct 2026 12:33:44 +0000</pubDate>
      <link>https://dev.to/intercode/the-hard-part-of-ai-agents-for-marketing-platforms-isnt-the-model-its-everything-around-it-3b0</link>
      <guid>https://dev.to/intercode/the-hard-part-of-ai-agents-for-marketing-platforms-isnt-the-model-its-everything-around-it-3b0</guid>
      <description>&lt;ul&gt;
&lt;li&gt;When you put AI agents inside a product that serves many marketing clients, most of the work goes into integrations, tenant isolation, and human approval, not prompts.&lt;/li&gt;
&lt;li&gt;We structure these systems in five layers: channels → agents with guardrails → approval queue → escalation routing → per-client data store.&lt;/li&gt;
&lt;li&gt;Results from production builds: review response time cut from 18 hours to 4 minutes across 1,200 locations (6-week build), and 62% of first-touch tenant enquiries handled without a human (14-week build).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The problem: agents that speak for someone else
&lt;/h2&gt;

&lt;p&gt;An internal chatbot answers your own team's questions. An agent inside an agency or marketing platform does something riskier: it writes review replies, ad variations, and lead messages &lt;strong&gt;on behalf of your clients&lt;/strong&gt;, in public.&lt;/p&gt;

&lt;p&gt;That changes the engineering requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Many tenants.&lt;/strong&gt; Every client has its own brand voice, banned phrases, channels, and escalation rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public output.&lt;/strong&gt; A bad reply sits under a client's Google listing, not in a Slack thread.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixed data sources.&lt;/strong&gt; Review sites, ad platforms, CRMs, property management systems, and inboxes, each with its own auth, limits, and quirks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Seven agent shapes, one pattern
&lt;/h2&gt;

&lt;p&gt;Across marketing products, we keep building the same seven shapes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agent&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Response&lt;/td&gt;
&lt;td&gt;Drafts on-brand replies, escalates sensitive ones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qualification&lt;/td&gt;
&lt;td&gt;Scores leads, answers first-touch questions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Research&lt;/td&gt;
&lt;td&gt;Gathers prospect context for sales&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Creative adaptation&lt;/td&gt;
&lt;td&gt;Reshapes assets per placement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Assembly&lt;/td&gt;
&lt;td&gt;Builds a draft campaign from a brief&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insight&lt;/td&gt;
&lt;td&gt;Answers performance questions in plain language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Orchestration&lt;/td&gt;
&lt;td&gt;Decides which agent runs and when a human steps in&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In code, the first six are mostly the same thing: a goal, a set of tools, and a policy for when to stop and ask a person. The seventh is the coordination layer. That's where &lt;a href="https://intercode.com/services/ai-agent-orchestration" rel="noopener noreferrer"&gt;AI agent orchestration&lt;/a&gt; does most of its work: routing, shared state, and handoffs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 layers
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Channel integrations.&lt;/strong&gt; Review platforms, ad networks, CRMs, PMS, email, SMS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent layer with guardrails.&lt;/strong&gt; Generation plus checks for tone, banned content, and confidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human approval queue.&lt;/strong&gt; Drafts waiting for a person.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalation routing.&lt;/strong&gt; Sensitive cases go to the right human, fast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client data store.&lt;/strong&gt; Per-tenant context, examples, and history.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Layer 1 is usually the biggest share of the effort. Webhooks versus polling, rate limits, token refresh, and normalizing ten different "review" objects into one schema is where weeks go. If you're scoping a project, scope the &lt;a href="https://intercode.com/services/api-development" rel="noopener noreferrer"&gt;API and integration work&lt;/a&gt; first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Per-tenant policy
&lt;/h3&gt;

&lt;p&gt;Every decision the agent makes should read from a tenant policy, never from hardcoded defaults.&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="c1"&gt;// Simplified illustration of the pattern, not production code&lt;/span&gt;
&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;TenantPolicy&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;tenantId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;brandVoice&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;tone&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;            &lt;span class="c1"&gt;// e.g. "warm, concise, no exclamation marks"&lt;/span&gt;
    &lt;span class="nl"&gt;bannedPhrases&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
    &lt;span class="nl"&gt;examples&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;      &lt;span class="c1"&gt;// approved past replies used as few-shot context&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="nl"&gt;channels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;google_reviews&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="s2"&gt;facebook&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="s2"&gt;email&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="s2"&gt;sms&lt;/span&gt;&lt;span class="dl"&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="nl"&gt;autoPublish&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;minConfidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// below this, a human approves&lt;/span&gt;
    &lt;span class="nl"&gt;minSourceRating&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// e.g. only auto-reply to 4–5 star reviews&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="nl"&gt;escalateOn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;      &lt;span class="c1"&gt;// e.g. ["legal_threat", "safety", "refund_request"]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The approval gate
&lt;/h3&gt;

&lt;p&gt;Every draft goes through one routing function, so "publish, approve, or escalate" is a single, testable decision:&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="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Draft&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;tenantId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flags&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;          &lt;span class="c1"&gt;// produced by classifiers/guardrails&lt;/span&gt;
  &lt;span class="nl"&gt;sourceRating&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&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;Route&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;publish&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="s2"&gt;approve&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="s2"&gt;escalate&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;routeDraft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;draft&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Draft&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;policy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;TenantPolicy&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;Route&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="nx"&gt;draft&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;flags&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;some&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;f&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;policy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;escalateOn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;escalate&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;enabled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;minConfidence&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;minSourceRating&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;policy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;autoPublish&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;enabled&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;approve&lt;/span&gt;&lt;span class="dl"&gt;"&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="nx"&gt;draft&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;confidence&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;minConfidence&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;approve&lt;/span&gt;&lt;span class="dl"&gt;"&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="nx"&gt;minSourceRating&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&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="nx"&gt;draft&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sourceRating&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;minSourceRating&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;approve&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="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;publish&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start every tenant with &lt;code&gt;autoPublish.enabled = false&lt;/code&gt;. Turn it on per channel once the approval data shows humans rarely edit the drafts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tenant isolation in retrieval
&lt;/h3&gt;

&lt;p&gt;The quickest way to lose a client is to quote another client's data in their reply. Scope every read by tenant at the data layer, not in the prompt:&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;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tenantId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// The tenant filter is enforced here, never left to the model&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;vectorStore&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tenantId&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="na"&gt;topK&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&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;h2&gt;
  
  
  What this delivered
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Review management, 1,200 locations.&lt;/strong&gt; Response time went from 18 hours to 4 minutes. It was a 6-week build with a team of about two and a half people, and it paid for itself within 3 months. This ran on top of the &lt;a href="https://intercode.com/cases/modernizing-a-high-scale-reputation-management-platform" rel="noopener noreferrer"&gt;reputation management platform we had modernized&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leasing assistant for apartment marketing.&lt;/strong&gt; It handles 62% of first-touch tenant enquiries without a human. It was a 14-week build with a team of five, multi-tenant, and integrated with property management systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Acquisition engine for a multifamily marketing agency.&lt;/strong&gt; It cut manual prospect research by 73% and raised outbound capacity 3.2x without new sales hires.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Trade-offs and gotchas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integrations dominate the estimate.&lt;/strong&gt; Count channels before you count agents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brand voice fidelity has a cost.&lt;/strong&gt; You need per-tenant examples and an evaluation set for each voice, not one global prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volume decides payback.&lt;/strong&gt; The review project worked because it replaced about 1,100 hours of monthly admin triage. Low-volume workflows may never pay back a custom build.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't automate an unstable workflow.&lt;/strong&gt; If the manual process changes every month, fix it first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decide on data and IP ownership up front.&lt;/strong&gt; That covers prompts, evaluation sets, logs, and any fine-tuning data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the metric before the model.&lt;/strong&gt; Response time, enquiries handled, research hours saved. Without one, you can't tell if it works.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How the delivery usually runs
&lt;/h2&gt;

&lt;p&gt;These projects take 6–14 weeks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Discovery and feasibility&lt;/li&gt;
&lt;li&gt;Architecture and data access&lt;/li&gt;
&lt;li&gt;Build with guardrails&lt;/li&gt;
&lt;li&gt;Validation and production&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;The model is the easy part. What makes these agents safe to ship is the plumbing around them: integrations, per-tenant policy, an approval gate, escalation, and strict data isolation.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was drafted with AI assistance and reviewed by the InterCode team.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>marketing</category>
      <category>llm</category>
    </item>
    <item>
      <title>Jev AI by TypeSafe: What a Decision Model Does Better Than an LLM, and What It Can't</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Fri, 09 Oct 2026 15:10:27 +0000</pubDate>
      <link>https://dev.to/intercode/jev-ai-by-typesafe-what-a-decision-model-does-better-than-an-llm-and-what-it-cant-4in4</link>
      <guid>https://dev.to/intercode/jev-ai-by-typesafe-what-a-decision-model-does-better-than-an-llm-and-what-it-cant-4in4</guid>
      <description>&lt;p&gt;Most "AI" calls in production aren't conversations. They're decisions: which queue should this ticket go to, is this action safe, how urgent is this lead. We still send them to generative LLMs and then parse JSON that sometimes arrives with a chatty preamble or an invented field.&lt;br&gt;
Jev, released by TypeSafe AI on September 15, 2026, takes a different route: it can't write text at all. It reads a state and a schema, and returns typed answers with calibrated probabilities in 70 to 500 ms. Here is how it works, where it saves money, and where it breaks. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why decisions don't need generation
&lt;/h2&gt;

&lt;p&gt;Even with constrained decoding, an LLM builds a structured answer one token at a time. A 60-token JSON routing decision means 60 sequential passes through the model. And the logprobs it exposes describe how likely the next token is, not how likely the decision is to be correct.&lt;br&gt;
Jev is a prefill-only model. The whole request goes through the transformer once, and specialized heads score the options in parallel. It is trained on synthetic data with a method TypeSafe calls RLCD, which penalizes miscalibrated probabilities instead of rewarding answers that humans like. As a result, asking ten questions about the same state costs barely more than asking one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three primitives
&lt;/h2&gt;

&lt;p&gt;• &lt;strong&gt;Choice&lt;/strong&gt;: pick one label from a set. Returns the winner, the full probability map and a confidence value.&lt;br&gt;
• &lt;strong&gt;Score&lt;/strong&gt;: place something on an ordered rubric, such as severity or frustration. Returns a score, probabilities and confidence.&lt;br&gt;
• &lt;strong&gt;Noul&lt;/strong&gt;: check whether a statement is true. Returns one probability between 0 and 1, with no separate confidence, because the probability is the certainty.&lt;/p&gt;

&lt;p&gt;Pricing is $0.042 per million input tokens, and output tokens are free. &lt;/p&gt;

&lt;h2&gt;
  
  
  Is it really 40-400x cheaper?
&lt;/h2&gt;

&lt;p&gt;TypeSafe markets that range, so let's test it. Take 1 million classifications a month, at about 400 input and 50 output tokens each. Jev costs roughly $16.80. A mini-class LLM costs about $90, and a frontier model about $1,950.&lt;br&gt;
That's 116x cheaper than a frontier model but only 5.4x cheaper than a small one. Most teams already route high-volume, low-context tasks to small models, so the realistic saving is closer to the second number. Note also that TypeSafe's speed claims come from internal benchmarks it admits may be biased. &lt;/p&gt;

&lt;h2&gt;
  
  
  Where it fits
&lt;/h2&gt;

&lt;p&gt;• &lt;strong&gt;Routing before an agent runs&lt;/strong&gt;. Send docs questions to search, numeric ones to SQL and creative ones to an LLM in under 150 ms. This keeps expensive models out of the loop and is a natural building block &lt;a href="https://intercode.com/services/ai-agent-orchestration" rel="noopener noreferrer"&gt;for AI agent orchestration&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Safety gates&lt;/strong&gt;. Ask Noul whether a proposed command could drop data or leak credentials, and block it above a threshold like 0.15. &lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Output guardrails&lt;/strong&gt;. Check generated text for PII, secrets and tone without a second LLM as judge.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Ticket triage&lt;/strong&gt;. Department, frustration level and executive urgency come from one call.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Lead scoring&lt;/strong&gt;. Score company size, buyer authority and urgency separately, then combine them in code with coefficients. Business priorities change without prompt rewrites, which makes this a good fit for &lt;a href="https://intercode.com/services/ai-automation" rel="noopener noreferrer"&gt;AI automation&lt;/a&gt; workflows.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;RAG filtering and reranking&lt;/strong&gt;. Screen 20 retrieved chunks in parallel. On TypeSafe's own legal retrieval benchmark, reranking lifted top-1 precision from 5% to 18% and top-10 from 38% to 62%.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it breaks
&lt;/h2&gt;

&lt;p&gt;TypeSafe documents 9 failure modes. The ones that matter most:&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Literal reading&lt;/strong&gt;. Unstated implications are invisible, so spell out edge cases in the criteria.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;No arithmetic, counting or date logic&lt;/strong&gt;. Do the math in code. To count, ask a yes/no question per item and tally in software.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Multi-hop relations&lt;/strong&gt;. Flatten nested permissions or relationships in code before sending them.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Diluted context&lt;/strong&gt;. A huge state full of irrelevant prose degrades decisions, so send only the relevant chunks.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Prompt injection&lt;/strong&gt;. Malicious text inside the state can override your instructions, so sanitize inputs.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Option order&lt;/strong&gt;. Probabilities can shift when you reorder choices. Sort options deterministically.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;No generation&lt;/strong&gt;. If you need an explanation, use an LLM.&lt;/p&gt;

&lt;p&gt;The pattern that works: deterministic prep in code, the decision model in the middle, and confidence thresholds on top. For example, execute at 0.85 or higher, fall back to a generative model between 0.50 and 0.85, and send anything lower to human review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alternatives that appeared within weeks
&lt;/h2&gt;

&lt;p&gt;• &lt;strong&gt;Cloudflare Clef and Clef-flash&lt;/strong&gt; (Oct 1): open weights under Apache 2.0, the same API shape as Jev, plus support for up to four images. Clef-flash reports a median of about 39 ms on Workers AI. Its benchmark wins over Jev are self-reported.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Convai Laya&lt;/strong&gt; (around Sept 22): open source, about 421M parameters, runs locally in roughly 1 GB of RAM without a GPU, with 9-33 ms latency.&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;OpenAI Decisions API&lt;/strong&gt; (announced Sept 29): no public docs or pricing as of early October. One independent test reported 403 errors on standard keys and about 1.46 s median when simulated with structured outputs, versus the 150 ms OpenAI claims.&lt;/p&gt;

&lt;p&gt;Critics point out that classifiers like DeBERTa and SetFit already existed, and for stable, high-volume tasks with fixed labels a fine-tuned small encoder is still cheaper and more accurate. What's new is a zero-shot, typed, calibrated API with no training pipeline. &lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;For classification, routing, scoring and policy checks at volume, a decision model can cut latency and spend. Keep an LLM for anything that needs text, multi-step reasoning or explanations. The real engineering work is the wiring around it: confidence gates, fallbacks and deterministic preprocessing. That's where solid &lt;a href="https://intercode.com/services/ai-integration" rel="noopener noreferrer"&gt;AI integration&lt;/a&gt; into your existing stack pays off.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>llm</category>
    </item>
    <item>
      <title>Real Costs of Building &amp; Scaling AI Systems in 2026</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Mon, 05 Oct 2026 11:59:35 +0000</pubDate>
      <link>https://dev.to/intercode/real-costs-of-building-scaling-ai-systems-in-2026-25h2</link>
      <guid>https://dev.to/intercode/real-costs-of-building-scaling-ai-systems-in-2026-25h2</guid>
      <description>&lt;p&gt;Building custom artificial intelligence costs between $5,000 for a rapid proof of concept (PoC) and upwards of $500,000 for enterprise automation platforms. For standard mid-tier commercial deployments, most projects land squarely between $40,000 and $150,000.&lt;/p&gt;

&lt;p&gt;However, software budgets often break apart when technical leaders treat machine learning like standard web app development. Traditional web apps have deterministic logic, while AI systems run on probabilistic outputs. Accurate AI development cost estimation requires budgeting heavily for testing, tuning, and ongoing token consumption.&lt;/p&gt;

&lt;p&gt;Here is an engineering breakdown of where the budget actually goes when building AI systems in 2026. &lt;/p&gt;

&lt;h2&gt;
  
  
  Where the Engineering Budget Actually Goes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data Preparation (30% to 50% of the Budget)&lt;/strong&gt;
Models do not fix messy corporate data. If your training inputs sit scattered across disjointed CSV files, legacy SQL tables, and messy PDF exports, data cleansing will consume up to half of your initial budget.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Structured Exports: Basic preparation requires roughly $6,000.&lt;/p&gt;

&lt;p&gt;Unstructured Ingestion: Parsing medical or legal documents frequently burns $35,000 to $70,000 just to clean and index raw documents before software development even begins.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;*&lt;em&gt;API Wiring &amp;amp; Custom Middleware
*&lt;/em&gt;
An isolated AI system is rarely useful; production value comes from connecting models to transactional databases, payment gateways, and ERPs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Basic Webhooks: $3,000 to $8,000.&lt;/p&gt;

&lt;p&gt;Bi-Directional High-Concurrency Wiring: Implementing role-based access control (RBAC), fallback retries, and strict rate-limiting costs $18,000 to $45,000.&lt;/p&gt;

&lt;p&gt;Legacy Middleware Adapters: Adding custom adapters for older REST APIs adds $12,000 to $25,000.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Model Selection: Fine-Tuning vs. Commercial APIs&lt;/strong&gt;
Commercial APIs: Calling closed-source foundational models through structured prompts costs as little as $1,500 to $4,000 in early setup fees.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Fine-Tuning Open Weights: Fine-tuning models like Llama or Mistral on proprietary text requires specialized data curation and compute clusters. Expect initial training runs to consume $10,000 to $45,000 before reaching target accuracy. Most teams evaluating this trade-off benefit from an outside &lt;a href="https://intercode.com/services/ai-development" rel="noopener noreferrer"&gt;custom AI development&lt;/a&gt; review before committing — the decision shapes every other line item downstream. &lt;/p&gt;

&lt;h2&gt;
  
  
  Cost Breakdown by Architecture Type
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Proof of Concept&lt;/strong&gt; (PoC) — $5,000 to $25,000: Bypasses scalable backend infrastructure; focuses purely on data validation, test scripts, and prompt tuning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Chatbot&lt;/strong&gt; (RAG) — $15,000 to $60,000: Requires document search pipelines, standard cloud search indices, and API integrations (e.g., Zendesk, Notion).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agentic System&lt;/strong&gt; — $30,000 to $180,000: Involves building tool connections, &lt;a href="https://intercode.com/services/ai-agent-orchestration" rel="noopener noreferrer"&gt;orchestration logic&lt;/a&gt;, short and long-term memory layers, and automated evaluation frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom AI Assistant&lt;/strong&gt; — $40,000 to $150,000: Demands rich custom web interfaces, browser extensions, real-time streaming responses, and tight role-based access control (RBAC).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom ML Data Model&lt;/strong&gt; — $80,000 to $350,000: Built on &lt;a href="https://intercode.com/services/machine-learning-development" rel="noopener noreferrer"&gt;XGBoost/LightGBM pipelines&lt;/a&gt;, requiring tabular feature engineering, automated retraining triggers, and drift detection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise AI Platform&lt;/strong&gt; — $300,000 to $1,500,000+: Multi-tenant infrastructure built for thousands of concurrent users, with zero-trust security postures, automated PII redaction, complete audit logging, and compliance coverage (SOC 2, HIPAA, GDPR) across multiple staging environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  The PoC-to-Production False Economy
&lt;/h2&gt;

&lt;p&gt;One of the biggest pitfalls in AI development is assuming that moving from a 3-week prototype to production will take just another couple of weeks and cost $10,000.&lt;/p&gt;

&lt;p&gt;This assumption is dangerously wrong. The prototype represents roughly 15% of the total engineering effort. Hardening the application requires building:&lt;/p&gt;

&lt;p&gt;Latency fallbacks&lt;/p&gt;

&lt;p&gt;Input validation&lt;/p&gt;

&lt;p&gt;Role security&lt;/p&gt;

&lt;p&gt;Telemetry logging&lt;/p&gt;

&lt;p&gt;Load balancing&lt;/p&gt;

&lt;p&gt;Failure retries&lt;/p&gt;

&lt;p&gt;Turning a $15,000 prototype into a production-ready application requires an extra $50,000 to $90,000 in foundational engineering. Furthermore, if inexperienced teams skip MLOps (automated evaluation pipelines, latency monitoring) to save $10,000 early on, they often face $15,000 to $30,000 in emergency technical refactoring when response quality degrades post-launch. &lt;/p&gt;

&lt;h2&gt;
  
  
  Post-Launch Operating Expenses (OpEx)
&lt;/h2&gt;

&lt;p&gt;Total post-launch AI implementation cost encompasses much more than code deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inference &amp;amp; Per-Token Billing&lt;/strong&gt;: A customer service assistant handling 40,000 conversations a month can consume roughly 100 million tokens, translating to $300 to $1,500 every month just in raw vendor API invoices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dedicated GPU Hosting&lt;/strong&gt;: Hosting open-source models on cloud GPUs (NVIDIA A100/H100) costs up to $1,800 to $3,200 per server monthly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vector Database Hosting&lt;/strong&gt;: Large enterprise installations indexing tens of millions of records run between $1,200 and $4,500 every month in cloud infrastructure fees alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continuous Retraining&lt;/strong&gt;: Setting up automated pipelines to ingest new data and validate distribution shifts costs $12,000 to $30,000 initially, followed by $1,000 to $3,000 monthly in compute and operational supervision. &lt;/p&gt;

&lt;h2&gt;
  
  
  How AI-Assisted Engineering Cuts Build Costs
&lt;/h2&gt;

&lt;p&gt;Modern technical delivery teams use AI coding assistants to dramatically lower final invoices. Based on verified delivery logs:&lt;/p&gt;

&lt;p&gt;Routine CRUD and Middleware Wiring: Reduced from roughly 120 billable hours down to 45 hours, cutting development costs for that phase by 62%.&lt;/p&gt;

&lt;p&gt;Synthetic Test Data Generation: Gathering and sanitizing edge-case records dropped from two full weeks to just two days using customized prompt scripts.&lt;/p&gt;

&lt;p&gt;Test Suite Authoring: Automated tools draft comprehensive test suites in 20 hours instead of 60 to 80 hours.&lt;/p&gt;

&lt;p&gt;By incorporating modern coding tools directly into the lifecycle, total hours on a mid-tier project drop from roughly 700 to 450 hours, shortening delivery cycles by 4 to 6 weeks.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>programming</category>
      <category>software</category>
    </item>
    <item>
      <title>What Building with Claude Actually Looks Like in Practice</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Thu, 24 Sep 2026 12:30:34 +0000</pubDate>
      <link>https://dev.to/intercode/what-building-with-claude-actually-looks-like-in-practice-2ih6</link>
      <guid>https://dev.to/intercode/what-building-with-claude-actually-looks-like-in-practice-2ih6</guid>
      <description>&lt;p&gt;There's a lot of talk right now about "AI-powered development." Most of it stays vague.&lt;/p&gt;

&lt;p&gt;A demo here. A chatbot widget there. A blog post about "the future of coding."&lt;/p&gt;

&lt;p&gt;We wanted to write something more concrete instead: what it actually looks like to build a production system with Claude, end to end, for a real paying client.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://intercode.com/" rel="noopener noreferrer"&gt;InterCode&lt;/a&gt;, we're an AI development studio. Our team is made up of CCAR-F Claude Certified Architects by Anthropic.&lt;/p&gt;

&lt;p&gt;That means Claude isn't a side experiment for us. It's part of how we architect systems from day one.&lt;/p&gt;

&lt;p&gt;In practice, that usually means Claude shows up at more than one layer of a project. Not just as a chatbot bolted onto a finished product afterward.&lt;/p&gt;

&lt;p&gt;It's part of how the system gets built. Part of how it makes decisions once it's live. Sometimes even part of how it looks.&lt;/p&gt;

&lt;p&gt;We've done this enough times now to have a pretty clear picture of where each layer actually earns its place. Here's a breakdown of one project where all three show up. &lt;/p&gt;

&lt;h2&gt;
  
  
  Where Claude fits into the stack
&lt;/h2&gt;

&lt;p&gt;We don't bolt on "an AI feature" as an afterthought. On this project, Claude runs through three distinct layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Claude Code — for building the thing itself&lt;/strong&gt; Our engineering team used Claude Code throughout development: designing the microservice architecture, working through the data pipeline design, and writing backend and frontend code. This is the layer most engineers reading this will recognize - an AI pair-programmer embedded in the actual dev workflow, not just an autocomplete suggestion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Claude API — for the product's own intelligence&lt;/strong&gt; This is where it gets more interesting. The Claude API powers several in-product features that the client's marketing team now relies on daily:&lt;/p&gt;

&lt;p&gt;Turning property specials into optimized ad copy automatically&lt;br&gt;
Classifying and excluding negative keywords, using property-level context instead of generic keyword lists&lt;br&gt;
Ingesting emailed reports and alerts to surface anomalies and recommended actions - without a human reading every report line by line&lt;br&gt;
Powering an internal natural-language chatbot so the marketing team can just ask the data questions instead of building a new dashboard filter every time&lt;/p&gt;

&lt;p&gt;**3. Claude for the UI/UX design work **Even the design side of the platform leaned on Claude — from early UI exploration to refining the actual dashboard experience users interact with daily.&lt;/p&gt;

&lt;p&gt;The point isn't "we used AI everywhere for the sake of it." Each layer solves a specific, boring, expensive problem: writing ad copy by hand doesn't scale, reviewing keyword lists by hand doesn't scale, reading every alert email by hand doesn't scale. Claude removes the manual step at each of those points, with engineers still supervising the output.&lt;/p&gt;

&lt;p&gt;This particular project is a BI and marketing-automation platform we built for &lt;a href="https://intercode.com/cases/street-digital-media-multifamily-apartments-digital-marketing-by-intercode" rel="noopener noreferrer"&gt;Street Digital&lt;/a&gt;, a digital marketing agency serving luxury apartment communities — replacing a no-code setup that worked fine early on but couldn't keep up once their client base grew.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters beyond one case study
&lt;/h2&gt;

&lt;p&gt;Most companies don't need "an AI feature" bolted onto an existing product.&lt;/p&gt;

&lt;p&gt;What they actually need is someone to look at the real bottlenecks. The manual ad copy. The manual keyword review. The manual report reading.&lt;/p&gt;

&lt;p&gt;Then figure out which of those a properly supervised AI agent can take off someone's plate entirely — and which ones still need a human in the loop.&lt;/p&gt;

&lt;p&gt;That part is genuinely hard to get right.&lt;/p&gt;

&lt;p&gt;It's where having architects who understand both the engineering side and Claude's actual capabilities makes the difference. Not treating Claude as a black-box API call. Treating it as part of the architecture.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why Modern Platforms Are Switching to AI Automation (And How to Do It Right)</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Thu, 24 Sep 2026 11:44:14 +0000</pubDate>
      <link>https://dev.to/intercode/why-modern-platforms-are-switching-to-ai-automation-and-how-to-do-it-right-3pdb</link>
      <guid>https://dev.to/intercode/why-modern-platforms-are-switching-to-ai-automation-and-how-to-do-it-right-3pdb</guid>
      <description>&lt;p&gt;Technology moves fast, and staying competitive today means one simple thing: speed. Customers no longer want to wait hours or days for an email reply just to check prices or campaign options. At the same time, forcing your sales and support teams to spend hours on repetitive, manual tasks is expensive and hard to scale. &lt;/p&gt;

&lt;p&gt;At &lt;a href="https://intercode.com/" rel="noopener noreferrer"&gt;InterCode&lt;/a&gt;, we regularly see how moving toward smart AI automation helps businesses take over repetitive tasks and free up human teams for strategic growth.&lt;/p&gt;

&lt;p&gt;Here is why AI automation matters, how it saves hours of work, and how it operates in practice. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. Freeing Teams from Monotonous Routine
&lt;/h2&gt;

&lt;p&gt;The biggest value of AI isn't just about using new tech - it is about removing everyday bottlenecks.&lt;/p&gt;

&lt;p&gt;In traditional setups, sales reps often spend nearly an hour on a single call just guiding a client through basic catalog options and schedules. Doing this manually for every customer makes scaling impossible. To make matters worse, any client browsing your site after work hours usually leaves without an answer because no one is online to help.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart AI agents fix this effortlessly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Instant self-service: Visitors get immediate answers 24/7, turning casual traffic into active leads while your team sleeps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Massive time savings: Routine tasks that used to take 45 minutes are wrapped up in under 10, letting your sales team focus on closing big deals instead of answering basic questions. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Beyond Simple Bots: How Multi-Agent Systems Work
&lt;/h2&gt;

&lt;p&gt;Standard chatbots usually break down during longer conversations - they lose context, give generic replies, or make things up.&lt;/p&gt;

&lt;p&gt;Modern AI works differently. Instead of one single bot, it relies on a team of specialized AI agents that work together in the background while keeping full track of the conversation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dispatcher Agent: Greets users, captures their contact details on the spot, and saves them to your database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Knowledge Provider Agent: Connects directly to your internal knowledge base to give accurate, up-to-date answers about products, inventory, and pricing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Smart Guardrails: Filters out irrelevant topics to keep the conversation strictly professional and focused.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, when we built our &lt;a href="https://intercode.com/cases/ai-booking-multi-agent-chatbot-for-usa-outdoor-advertising" rel="noopener noreferrer"&gt;AI Booking Multi-Agent Chatbot&lt;/a&gt; for the  advertising industry, this multi-agent structure allowed the platform to handle complex billboard searches and booking inquiries automatically without losing data along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Smooth Hand-offs to Human Teams
&lt;/h2&gt;

&lt;p&gt;AI isn't here to replace your team — it is here to make them faster and more effective.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Automatic Lead Routing: When a complex request comes in, the system instantly generates a high-priority ticket in your CRM (such as Zoho) and alerts your team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ready-to-Close Context: Instead of reading through long chat histories, your sales managers get a short, clear summary of what the customer needs so they can step in immediately and close the deal.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This always-on setup helps platforms respond instantly and double their conversion rates without increasing headcount. &lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaway
&lt;/h2&gt;

&lt;p&gt;Adding AI agents to your business isn't about replacing people; it's about eliminating boring, repetitive tasks. When AI handles initial inquiries and data checks around the clock, your business moves faster, saves money, and scales with ease.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>How We Built AI Agents to Eliminate Manual Copywriting and Ad Management at Scale</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Thu, 24 Sep 2026 11:07:18 +0000</pubDate>
      <link>https://dev.to/intercode/how-we-built-ai-agents-to-eliminate-manual-copywriting-and-ad-management-at-scale-23cd</link>
      <guid>https://dev.to/intercode/how-we-built-ai-agents-to-eliminate-manual-copywriting-and-ad-management-at-scale-23cd</guid>
      <description>&lt;p&gt;Managing high-volume ad campaigns across multiple platforms often feels like an endless loop of repetitive tasks. Team members spend hours writing similar ad variations, manually excluding negative keywords, and digging through scattered reports to figure out why a campaign's Cost Per Lead (CPL) suddenly spiked.&lt;/p&gt;

&lt;p&gt;When our team at &lt;a href="https://intercode.com/" rel="noopener noreferrer"&gt;InterCode&lt;/a&gt; took on the challenge of transforming a complex marketing platform, our goal was clear: eliminate repetitive manual workflows without sacrificing human oversight.&lt;/p&gt;

&lt;p&gt;Here is how we designed AI-driven automation workflows that handle copywriting, negative keyword classification, and natural-language data analysis at scale. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. Automated Ad Transformation (Goodbye, Manual Copywriting)
&lt;/h2&gt;

&lt;p&gt;One of the biggest time sinks in multi-campaign management is turning special offers, product updates, or local promotions into platform-ready ad copy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Challenge:&lt;/strong&gt;&lt;br&gt;
Marketing teams manually wrote and adapted ad variants for each channel (Search, Social, Display) whenever a new promo launched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI Solution:&lt;/strong&gt;&lt;br&gt;
We built an automated pipeline using LLM integrations that (which we implemented as part of our &lt;a href="https://intercode.com/cases/street-digital-media-multifamily-apartments-digital-marketing-by-intercode" rel="noopener noreferrer"&gt;Street Digital Media project&lt;/a&gt;) that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ingests structured offer data directly from internal management systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Transforms promos into optimized ad copy tailored to the specific character limits and formatting requirements of target platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pushes approved copy directly to campaign management systems, drastically reducing launch times from hours to seconds.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Context-Aware Negative Keyword Classification
&lt;/h2&gt;

&lt;p&gt;Broad negative keyword lists often block relevant traffic or fail to stop budget waste because they lack real-time context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Challenge:&lt;/strong&gt;&lt;br&gt;
Static negative keyword lists don't account for dynamic variables like changing inventory, localized pricing, or shifting service availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI Solution:&lt;/strong&gt;&lt;br&gt;
Instead of relying on rigid, pre-made keyword lists, we implemented contextual AI classification:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Real-time context checks: The system analyzes contextual parameters (e.g., current pricing, unit mix, geographic availability).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Smart exclusion: AI automatically flags and excludes negative search queries that don't match the active product state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Budget protection: By preventing irrelevant clicks before they happen, ad spend is automatically preserved for high-intent users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Conversational Data Analysis with Natural Language
&lt;/h2&gt;

&lt;p&gt;Data without quick accessibility creates bottlenecks. Marketers often wait on analysts to query databases or build custom dashboards just to answer basic performance questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Challenge:&lt;/strong&gt;&lt;br&gt;
Dashboards can be overwhelming, and finding specific insights (like root causes for performance drops) takes time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI Solution:&lt;/strong&gt;&lt;br&gt;
We integrated an internal LLM chatbot connected to unified reporting data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ask in plain English: Team members can ask direct questions like "Why did CPL spike last week?" or "Which channel brought the highest return this month?"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instant, data-backed answers: The system queries pre-processed data and returns clear, conversational explanations alongside actionable recommendations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>architecture</category>
      <category>marketing</category>
    </item>
    <item>
      <title>Need your feedback on my SaaS startup</title>
      <dc:creator>InterCode</dc:creator>
      <pubDate>Thu, 06 Mar 2025 01:17:37 +0000</pubDate>
      <link>https://dev.to/intercode/need-your-feedback-on-my-saas-startup-59bn</link>
      <guid>https://dev.to/intercode/need-your-feedback-on-my-saas-startup-59bn</guid>
      <description>&lt;p&gt;Guys, need your help!&lt;/p&gt;

&lt;p&gt;I'm a founder of Startup - &lt;strong&gt;&lt;a href="http://startsaas.com/" rel="noopener noreferrer"&gt;SaaS Starter Kit&lt;/a&gt;&lt;/strong&gt;. I launched 3 months ago and my goal of posting here is to get feedback, customers and user testers. Here we go - &lt;a href="http://startsaas.com/" rel="noopener noreferrer"&gt;http://startsaas.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is a development boilerplate custom solution aimed to save &lt;strong&gt;~$20'000&lt;/strong&gt; and &lt;strong&gt;2.5-3 months&lt;/strong&gt; of initial custom development of SaaS, CRM, HRM, and Project Management tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Functionality modules:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Dashboard&lt;/li&gt;
&lt;li&gt;User or Teams subscription model&lt;/li&gt;
&lt;li&gt;Admin mode support&lt;/li&gt;
&lt;li&gt;File storage management&lt;/li&gt;
&lt;li&gt;Internationalization&lt;/li&gt;
&lt;li&gt;Stripe integration&lt;/li&gt;
&lt;li&gt;Subscription management&lt;/li&gt;
&lt;li&gt;Responsive design&lt;/li&gt;
&lt;li&gt;DataGrid&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>saas</category>
      <category>starter</category>
      <category>kit</category>
      <category>boilerplate</category>
    </item>
  </channel>
</rss>
