<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SEO Brothers product updates</title><link>https://seobrothers.com/updates/</link><atom:link href="https://seobrothers.com/updates/rss.xml" rel="self" type="application/rss+xml"/><description>What changed on the Tideworthy platform, and what we learned building it.</description><language>en-us</language><item><title>Specialist agents pick their own tasks, and staff can correct an agent that gets stuck</title><link>https://seobrothers.com/updates/2026-09-19/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-19/</guid><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate><description>Each specialist agent now says which tasks it picks up, and when one gets stuck a strategist can answer it directly and it finishes the job. Hand-written tasks are read against the task standards before they are saved.</description><content:encoded><![CDATA[<p>A Saturday on the agent system: how specialist agents pick up work, and what happens when one gets stuck.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>The client portal domain field refuses www and the bare domain and says why. Pointing either at the portal would take the client’s website offline, and nothing on the screen said so until a partner nearly did it.</p>
<p><img src="/images/updates/2026-09-19/portal-domain-guard.png" alt="The portal domain field with www typed in, outlined in red, and the message explaining why www is refused"></p>
<p>On Asks &#x26; Approvals, answered questions read as one row each and withdrawn ones fold into a collapsed group instead of filling the page.</p>
<p><img src="/images/updates/2026-09-19/asks-answered-withdrawn.png" alt="The Asks tab: an Answered row showing the question, the chosen option and the answer, and a Withdrawn group"></p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Each specialist agent now says, on its own row, which tasks it picks up: what kind, which lane, what status, whether approved, when due. Seven specialists replaced three catch-all agents that treated every kind of task the same way.</li>
<li>When an agent gets stuck, a staff member replies to the escalation as a correction, their word outranks every rule and note the agent holds, and the agent fixes its notebook and finishes the job.</li>
<li>Tasks our team writes by hand are now read against the task standards before they are saved, the same two documents agents read every time they work.</li>
</ol>
<h3 id="1-specialists-pick-their-tasks">1. Specialists pick their tasks</h3>
<p>The task is assigned to the agent before it starts and it can work only that task, so nothing about which task is left to the agent and nothing about which agent is left to code. The situations they pick up are named and defined in one place, so a wrong definition is fixed once for every agent using it. One visible effect: approved content publishes on the specialist’s next scheduled pass rather than at the moment of approval. Each agent is also labelled for people as Process, Specialist or Feedback, with what starts it shown beside.</p>
<h3 id="2-correcting-a-stuck-agent">2. Correcting a stuck agent</h3>
<p>A guest post writer withheld an article because it read a rule naming six on-site surfaces as covering a link on another site, and nobody could tell it otherwise: the alert carried only a reference number and the conversation could not be replied to. The escalation now links straight to the agent’s work. A writer that declines never blocks the placement; it waits on the escalation. Every rules block now opens with the reading rule: a rule covers the surfaces it names and nothing else.</p>
<h3 id="3-checking-hand-written-tasks">3. Checking hand-written tasks</h3>
<p>We tried four AI reviewers on twelve tasks we had already judged and kept the one that read all twelve right.</p>]]></content:encoded></item><item><title>Choose which analytics events count as conversions in the report</title><link>https://seobrothers.com/updates/2026-09-18/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-18/</guid><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate><description>The client report can count the events you name as conversions instead of the property's key events. Every discovery gets a strategist's review before it is ready, and agents read facts but no longer write them.</description><content:encoded><![CDATA[<p>Friday brought one reporting change and a handful of smaller ones.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The report settings sheet has a Counted as conversions picker: pick one or more of the linked property’s events and every conversion number in the report uses that set. Nothing picked means key events, exactly as before.</li>
<li>Every email to a client can be paused, per client or for every client at once.</li>
<li>Every discovery now gets an agent’s draft followed by a strategist’s review before you are told it is ready.</li>
<li>Tasks are shaped by our team and read on your side; monitoring checks, content generation and campaign scope are set by our team.</li>
</ol>
<h3 id="1-counted-as-conversions">1. Counted as conversions</h3>
<p>Conversions in the Website section of the report have always been the property’s key events, and many partners never set those up, or have them tuned for Ads. The picker lists the events the property recorded over the last 90 days, busiest first, marked where they are already key events. The chosen set drives the KPI, the daily chart and the By type list in the partner view, the client portal, the CRM tab and the PDF.</p>
<p><img src="/images/updates/2026-09-18/counted-as-conversions.png" alt="The report settings sheet with the Counted as conversions picker under the Conversions row"></p>
<h3 id="2-pausing-client-emails">2. Pausing client emails</h3>
<p>The per-client switch sits in the Client notifications card on the client’s Client Portal tab, and Quick actions in the top bar pauses or resumes every client at once.</p>
<p><img src="/images/updates/2026-09-18/pause-client-emails.png" alt="The Client notifications card on a client&#x27;s Client Portal tab with a Pause all emails to this client switch"></p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Facts are written by people; agents read them and keep their notebooks.</li>
<li>An agent sent to one task now touches that task only.</li>
<li>Page reads got more literal: a 404 is the site’s own answer and counts as having read the page.</li>
<li>Domain monitoring stopped counting down to registration and certificate expiry, which flagged every live site once a year, and watches for a registration actually lapsing.</li>
<li>Link placements survive a paused writer agent, and a placement that fails for a passing reason is tried again on the next pass.</li>
</ol>
<h3 id="1-who-writes-facts">1. Who writes facts</h3>
<p>Agents were briefly able to write facts. Alongside real ones, such as the company’s history, came logs of what the agent had checked that day. An agent that must look at the site every time it works will always find something to write down, so the ability came out.</p>
<h3 id="2-one-task-at-a-time">2. One task at a time</h3>
<p>Approving one draft had set the agent working on all four of the month’s drafts at once, and it rewrote three it was never asked about.</p>
<h3 id="3-literal-page-reads">3. Literal page reads</h3>
<p>Redirects are named hop by hop with their status, and a redirecting link is repointed rather than called dead.</p>]]></content:encoded></item><item><title>Bulk client assignments from the Team page, and a rebuild of what agents remember</title><link>https://seobrothers.com/updates/2026-09-17/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-17/</guid><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate><description>Assign a teammate to clients in one dialog, see whether every client's data is flowing, and read logins and webhooks as tables. Underneath, what agents remember about a campaign is now typed: facts, notebooks and events.</description><content:encoded><![CDATA[<p>Thursday split between the settings pages partners live in and how campaign knowledge is stored.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Each member row on Settings > Team shows how many clients that person is assigned to; click it to move that teammate onto or off several clients at once.</li>
<li>Integrations opens with a connected-data table, one row per client, showing which Google data is flowing. The Vault and Webhooks are tables too.</li>
<li>Every rule is now a Rule, never broken, or Guidance, lean this way and say why when you do not.</li>
<li>Notes &#x26; feedback is open to every partner; a note the review finds nothing in closes itself, and one that changed nothing can be deleted.</li>
<li>Review threads show every comment in full.</li>
</ol>
<h3 id="1-client-assignments-from-the-team-page">1. Client assignments from the Team page</h3>
<p>The checklist is searchable and lists your active clients: one save instead of a visit to every client’s Team tab.</p>
<p><img src="/images/updates/2026-09-17/team-client-assignments.png" alt="The client assignments dialog opened from a member&#x27;s row on the Team page: a search field and a checklist of active clients"></p>
<h3 id="2-integrations-tables">2. Integrations tables</h3>
<p>Each row names the Search Console, Analytics, Business Profile and Ads property and the Google account each rides on. When the accounts were ours the page could not answer what a partner opens it for, is my clients’ data flowing; company access accounts now show read-only.</p>
<p><img src="/images/updates/2026-09-17/integrations-connected-data.png" alt="The Integrations page opening with a Connected data table, one row per client with Search Console, Analytics and Business Profile columns"></p>
<p>The Vault is one row per campaign with its CMS and access state (connected, login on file, connection broken, none), and Webhooks is one row per event, edited one at a time, with a status.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>What agents keep about a campaign is now typed: facts, notebooks and events.</li>
<li>Connected sites on a WordPress host that only allows plugin updates from inside its admin now take connector updates that way.</li>
<li>Agents can be scoped to run everywhere except named partners or campaigns.</li>
</ol>
<h3 id="1-facts-notebooks-and-events">1. Facts, notebooks and events</h3>
<p>A strategist’s comment had gone into a campaign’s shared memory with “keep flagging this every time until removed”, and every agent on that campaign obeyed it, including ones with no business acting on it. Memory was shared by every agent and never expired, and most of it had become instructions to whichever agent came next.</p>
<p>Facts are dated, sourced rows about the business and the site, and a fact a person states cannot be corrected by an agent. Each agent has its own notebook in place of a daily handoff log. Events record what changed and why. The existing memory was sorted into those three, the results read, and the rules corrected twice: strategy lifted from an old goal never becomes guidance, and a fact never restates something the platform already holds.</p>]]></content:encoded></item><item><title>Asks: an agent can now put a question to you</title><link>https://seobrothers.com/updates/2026-09-16/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-16/</guid><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate><description>Agents had two outputs, a task or silence. Asks are the third. Notes &amp; feedback replaces Comments and turns what you write into proposed changes, and the client workspace navigation was consolidated.</description><content:encoded><![CDATA[<p>A day for asks, notes, and a tidier client workspace.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Until today an agent had two outputs, a task or silence. An ask is the third: one question, optional proposed answers, and a follow-up as its own thread.</li>
<li>Notes &#x26; feedback replaces Comments in the sidebar, and each note you send becomes a short list of proposed changes. Nothing changes until someone accepts.</li>
<li>The client workspace menu is shorter: Planning &#x26; Tasks, Reporting &#x26; Activity, and Keywords &#x26; Mapping each hold tabs that used to be separate items.</li>
<li>Keywords added by hand now pull Google search volume, research needs a location, and the same term tracked in two locations is two keywords.</li>
<li>Alerts are handled by our team for now and no longer appear in the partner workspace.</li>
<li>The setting asking whether approved changes may be applied on a connected site is gone; connecting the site is the answer.</li>
<li>Discovery reports strike word-order and spelling variants Google reports at the same volume and count the demand once.</li>
</ol>
<h3 id="1-asks">1. Asks</h3>
<p>Neither a task nor silence fit a question like whether a client would move off a slow host. The sidebar entry is now Asks &#x26; Approvals, open asks lead your daily or weekly digest, a task waiting on an answer shows as exactly that on the client’s list, and answering brings back the agent that asked. Our team and the agents can both ask.</p>
<p><img src="/images/updates/2026-09-16/asks-and-approvals.png" alt="The Asks &#x26; Approvals page with two open questions waiting on an answer, one answered, and a collapsed Withdrawn group"></p>
<h3 id="2-notes--feedback">2. Notes &#x26; feedback</h3>
<p>Notes are read as soon as they land. The proposed changes are a rule to add, something to remember, campaign context, or work for the team, and managers can switch on applying automatically. You can upload a call transcript in place of a note, and a note that no longer applies can be withdrawn, with what it changed undone.</p>
<p><img src="/images/updates/2026-09-16/notes-and-feedback.png" alt="The Notes &#x26; feedback page with a switch to apply notes automatically, a note field and an Upload a transcript button"></p>
<h3 id="3-client-workspace-menu">3. Client workspace menu</h3>
<p>Configuration split into SEO Campaign and Client Configuration, and workspace settings have a grouped side nav.</p>
<p><img src="/images/updates/2026-09-16/client-workspace-nav.png" alt="The client workspace sidebar grouped into Communication and SEO Service, with the SEO Campaign tab strip above"></p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Agents now see every page at desktop and phone width before filing a visible change, and a page that refuses to load is recognised as blocked rather than mistaken for the page itself.</li>
<li>The monthly planners only run where their deliverable is in scope.</li>
<li>The note review was tuned over dozens of dry runs against real notes and invented scenarios before it read a single live note.</li>
<li>The team can send an email thread or a call to a client’s notes straight from our inbox.</li>
</ol>]]></content:encoded></item><item><title>Brands: group clients under a franchise or roll-up with shared rules and context</title><link>https://seobrothers.com/updates/2026-09-15/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-15/</guid><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate><description>A brand groups the clients that belong to one company and carries rules and context every member campaign inherits. Campaign context, citation notes and a daily digest also arrived, and the Google data sync was rebuilt to scale.</description><content:encoded><![CDATA[<p>A Tuesday for multi-location books and for the data agents read.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>A brand groups clients that belong to one company: a franchise system, a dental service organisation, a roll-up. It carries context every agent working a member campaign reads, and rules every member campaign inherits.</li>
<li>The campaign’s Rules &#x26; Context tab has a Campaign context card: lasting facts about a campaign, read by every agent and never shown to the client.</li>
<li>The Citations page shows notes per listing: what the listings service recorded (a directory login it created, a site it swapped for an alternative) alongside notes you or we add.</li>
<li>Notification settings offer Off, Weekly or Daily for the digest.</li>
<li>The send-back notice now says when the agent will pick it up, and review history shows comments in full, with long links wrapping inside the card.</li>
</ol>
<h3 id="1-brands">1. Brands</h3>
<p>A brand also carries the corporate website and an optional headquarters client. The Clients list has a Brand column, a filter, and a bulk action to add clients to a brand.</p>
<p><img src="/images/updates/2026-09-15/clients-brand-column.png" alt="The Clients list with a Brand column, a brand filter and a Brands button"></p>
<p>Rules now come in three scopes, campaign, brand and workspace-wide, and a rule repeated across several member campaigns can be promoted into one brand rule.</p>
<p><img src="/images/updates/2026-09-15/brand-page.png" alt="A brand page: details, brand context, the rules every member campaign follows, and its clients"></p>
<h3 id="2-campaign-context">2. Campaign context</h3>
<p>What the client’s website platform will and will not allow is the kind of fact that belongs there. Notes are for things that change; context is for things that do not.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>The daily refresh of Search Console, Analytics, Ads and call tracking data now works through the connected properties one at a time, so every property refreshes each day however many clients we add.</p>
<p>When an agent reads a page’s Search Console performance it now defaults to 90 days rather than 28. A quarter is what a strategist reads before moving a page; a month is a wobble. One agent had proposed retargeting a page away from its terms on two impressions in the 28-day window; the 90-day read showed hundreds.</p>]]></content:encoded></item><item><title>Rank tracking follows the client's website, and feedback always puts an agent on the rework</title><link>https://seobrothers.com/updates/2026-09-14/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-14/</guid><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><description>Tracked keywords now move with a client's website when it changes. Feedback you send back always puts an agent on the rework, the review page shows the full feedback, and agents read a page in full before they touch it.</description><content:encoded><![CDATA[<p>The first day of the week went to the approval loop and to what agents read before they act.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Rank tracking follows the client’s website: when the primary website changes, the tracked keywords retarget with their ranking history intact.</li>
<li>When you send a task or a draft back with feedback, an agent takes the rework whichever way the task was created, and the notification says so.</li>
<li>Requesting a discovery now includes picking the teammates on the prospect. They are assigned to the client on submit and are the people told when the report is ready.</li>
<li>Owners and admins can choose which clients their notifications cover.</li>
</ol>
<h3 id="1-rank-tracking">1. Rank tracking</h3>
<p>A move from a subdomain to the root domain is the usual case, and an hourly check catches any keywords that drifted.</p>
<h3 id="2-feedback-and-rework">2. Feedback and rework</h3>
<p>On the review page a send-back shows its full feedback in place, with an Actioned badge once a new version has been submitted and Waiting until then. The thread has become History and sits under the decision, and the notes panel is the one place to write. The approval policy pair reads Ask first or Proceed without asking.</p>
<p><img src="/images/updates/2026-09-14/approval-policy-labels.png" alt="Two approval rows, Content plans and Link building plans, reading Ask first and Proceed without asking"></p>
<h3 id="4-notification-audience">4. Notification audience</h3>
<p>The choice is per event, Assigned or All clients, beside the existing Off, Email, In-app and Both.</p>
<p><img src="/images/updates/2026-09-14/notification-audience.png" alt="Client notification settings, each event with an Assigned or All clients choice beside Off, Email, In-app and Both"></p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Agents now read a page’s full code the way a search engine does and look at it the way a visitor does before they may file an edit.</li>
<li>A campaign agent whose work runs long now carries on in a later sitting rather than stopping.</li>
<li>One partner’s own rank tracker keeps most of a client’s terms as history, never crawled. We stopped importing those and released them from the platform.</li>
</ol>
<h3 id="1-reading-before-editing">1. Reading before editing</h3>
<p>We reviewed the feedback on agent tasks and the transcripts behind it. The agent had been reading a cut-down text of the page it was about to edit, without looking at the page itself. A read also says when the host served a saved copy, because that saved copy is what visitors are seeing.</p>
<h3 id="3-history-only-terms">3. History-only terms</h3>
<p>The agent’s rank notes now say a term is kept as history instead of asking someone to escalate a registration problem.</p>]]></content:encoded></item><item><title>The WordPress connector reads and edits Divi 5 pages</title><link>https://seobrothers.com/updates/2026-09-13/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-13/</guid><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate><description>Pages built with the newest Divi builder can now be read and edited through our connector without corrupting the page. The comparison view on a review is read-only while it is open.</description><content:encoded><![CDATA[<p>A Sunday spent on one website builder and on the review page.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>While Show changes is on, the approve and request-changes controls and the notes box step aside, so a note is always written against the draft itself and never against a blend of two versions. Hide changes brings them back. The thread stays readable throughout.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>Divi 5 stores a page’s copy in a new way, and our WordPress connector was treating those pages as the older Divi. A read came back with no readable text, and an edit would have written code into the page where words should be. A member of the team found it while working a client’s site edits by hand.</p>
<p>The connector now recognises Divi 5 as its own builder, decodes the copy for reading, and writes edits back the way WordPress itself does, so the page is stored exactly as Divi stores it. A module that carries the same text for desktop and phone counts as one match and the edit lands in both places. Bench-tested on a copy of a live page: a page read and written back comes out identical, and an inserted link appears in the theme’s own styling. Structure edits on Divi 5 pages are refused for now rather than attempted.</p>
<p>While testing we also fixed one thing for every builder: a find and replace that is refused no longer overwrites the saved undo point, so a revert still undoes the last edit that actually landed.</p>]]></content:encoded></item><item><title>Show changes on a resubmitted draft</title><link>https://seobrothers.com/updates/2026-09-12/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-12/</guid><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><description>A content review that has come back for a second look now shows exactly what moved since the version you last read. The testing standard became scripts we run before every change.</description><content:encoded><![CDATA[<p>A quiet Saturday with one change for reviewers and a day of work on how we test.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>On a content review that has come back for a second look, the draft carries a Show changes button. It swaps the text for the same article with removed words struck through and added words highlighted, laid out as the article reads, against the version you last reviewed. Hide changes brings the plain draft back. The bar above it says only that the version was updated.</p>
<p>First attempts and decided reviews show nothing new. The button appears only when there is an earlier round to compare against and the text actually differs.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>Thursday’s testing standard became commands. One creates a throwaway user and test client for each piece of work, another drives a real browser through the login and the pages the way a person would, a third checks every main page as a partner and as staff, and the last removes only what was created for the test and refuses to touch anything real. Two people testing at once no longer share a login, so nothing one does can trip up the other.</p>]]></content:encoded></item><item><title>Communications settings and a Start Here page for new partners</title><link>https://seobrothers.com/updates/2026-09-11/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-11/</guid><pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate><description>Settings gained a Communications tab and partners without a plan land on Start Here. Staff got a record of every edit the team makes to agent work, and the one-off SEO audit became a project on the platform.</description><content:encoded><![CDATA[<p>A Friday with one long-running build landing in the evening and a cluster of smaller staff tools through the day.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Settings has a Communications tab beside Notifications, for what the platform sends you outside of campaign activity. The Notifications tab now lists campaign and account events only.</li>
<li>Partners who have not started a plan have a Start Here page: a setup checklist with a short video for each step, and the people on your account.</li>
<li>A new agency can create its own workspace from a form on our website and sign in with a one-time link.</li>
</ol>
<h3 id="1-communications">1. Communications</h3>
<p>It covers product updates, service notices, onboarding emails and our newsletters, each with its own preference.</p>
<p><img src="/images/updates/2026-09-11/communications-tab.png" alt="The Communications settings tab listing product updates, service notices, onboarding emails and newsletters, each with a switch"></p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Staff have a new page listing every agent task a person edited, left feedback on, or cancelled while it was held, with the before and after of each edit and the notes that went with it.</li>
<li>The one-off SEO audit we have been running by hand for one partner’s clients is now a project on the platform.</li>
<li>We wrote down what “tested” means before a change ships: a separate copy of the app, an automated check of the code, a throwaway user and client, and a real browser journey as that user. Until today it lived in one person’s head.</li>
</ol>
<h3 id="1-the-review-record">1. The review record</h3>
<p>Work released without a change is not a row, and a cancel with nothing said is not a row either, which cut the table to the rows worth reading. Each row can take notes and be marked actioned with a takeaway, so what we learn from one review is kept where the next reviewer sees it.</p>
<h3 id="2-the-audit-as-a-project">2. The audit as a project</h3>
<p>An agent does the first pass on the client’s campaign without touching it, a strategist reviews the findings tab by tab, and the deliverable spreadsheet is generated from one master template. Each audit starts from the client’s own campaign rather than from a copy of the last one.</p>]]></content:encoded></item><item><title>Every rank cell says what it knows</title><link>https://seobrothers.com/updates/2026-09-10/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-10/</guid><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><description>The Keywords page names each rank state instead of one catch-all, reports gain two more trend switches, and the branded WordPress plugin gets a share link. Agents read real server response time before recommending speed work and must open a page before writing a task about it.</description><content:encoded><![CDATA[<p>A Thursday split between the Sessions and Keywords pages and a long pass on how agents read a website.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>On the Keywords page, a rank cell names its state instead of collapsing everything into Not in top 100.</li>
<li>Reports gain two more switches under Website and Business Profile: hide the six-month trend chart itself, or hide only the dashed year-prior line on it.</li>
<li>The WordPress Plugin tab gains a share link that always serves your current branded build, and the plugin now updates from a neutral service address that carries no agency’s name.</li>
<li>Tasks our side cancelled as triage no longer appear in your task list or activity; a cancel made by your own team still does.</li>
</ol>
<h3 id="1-rank-states">1. Rank states</h3>
<p>The states are checked with a date, an older check with its date, awaiting first check, tracking not started, tracking paused.</p>
<p><img src="/images/updates/2026-09-10/keyword-rank-states.png" alt="The Keyword Rankings table with the Rank column reading Tracking not started on every row"></p>
<h3 id="2-trend-switches">2. Trend switches</h3>
<p>Both came from a partner who sent a screenshot while reviewing the report.</p>
<p><img src="/images/updates/2026-09-10/report-trend-switches.png" alt="Two report settings, Six-month trend and Year-prior line on the trend, each with its own switch"></p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Our site-wide optimization agent had been recommending caching and hosting work built on the wrong number. The crawler now records the server’s answer time only when it reached the server directly.</li>
<li>Agents read pages properly now: an outline first, and no task about a page they have not opened live in that sitting.</li>
<li>Agents know what a connected site actually runs: WordPress and PHP versions, theme, SEO plugin, caching.</li>
<li>Search Console auto-linking picks the property that covers exactly the campaign’s site, so franchise campaigns on a shared domain no longer land on another territory’s property.</li>
</ol>
<h3 id="1-server-answer-time">1. Server answer time</h3>
<p>The crawler’s response time was how long the whole page took to arrive, not how long the server took to answer. The speed check grades the server’s answer time in bands, and it no longer counts toward the technical score.</p>
<h3 id="2-reading-a-page">2. Reading a page</h3>
<p>The outline is the headings, every link with its text and where it sits on the page, images with their alt text, canonical, robots and schema types. The live-read rule came from one agent that had ordered links from two posts that already carried them, working from an earlier crawl.</p>]]></content:encoded></item><item><title>Your own branded WordPress plugin, and a fallback when a client never answers a review</title><link>https://seobrothers.com/updates/2026-09-09/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-09/</guid><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><description>Each partner gets their own branded build of the WordPress connector from a new Settings tab. Written Content approvals can fall back to approved after a set number of days. Reports gain a Website toggle and per-section comparison switches.</description><content:encoded><![CDATA[<p>A day for the white label: the plugin now looks like yours, and the approval flow gets a way to move on when a client does not answer.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Settings has a new WordPress Plugin tab: set the plugin’s name, author, website and support email, and download your own build of the connector. Every connected site runs your build.</li>
<li>Written Content approvals get an optional fallback: if a client does not answer inside a set number of days, the platform approves the piece as is and proceeds. Off everywhere by default.</li>
<li>Reports gain a Website toggle and per-section comparison switches, and anything hidden from the client’s report is now an amber banner listing everything hidden.</li>
<li>Every filtered table works at phone width: the search stays inline and the dropdowns open in a Filters sheet, with an active-filter count and a Clear button.</li>
<li>A content piece closed while its review was still out reads Pending approval on the planning page, not Published.</li>
</ol>
<h3 id="1-your-own-wordpress-plugin">1. Your own WordPress plugin</h3>
<p>The tab previews how the plugin reads on a site’s Plugins screen, and the account the plugin signs in with carries your team’s name.</p>
<p><img src="/images/updates/2026-09-09/wordpress-plugin-tab.png" alt="The WordPress Plugin settings tab: download your build, and a preview of how it reads on a site&#x27;s Plugins screen"></p>
<h3 id="2-approval-fallback">2. Approval fallback</h3>
<p>Partners who send content to clients for approval report that clients sit on reviews for months. Turn it on in Settings > Approvals with a number of days; a client can override or opt out on its own Approval rules. The platform asks first. The clock starts when the review was requested, a send-back resets it, only reviews opened after you turn it on qualify, and a reminder goes out two days before the window closes.</p>
<h3 id="3-report-switches">3. Report switches</h3>
<p>The Website toggle lets a client with Analytics linked get a keyword-only report, and each KPI section has its own switches for the previous-period and year-over-year comparisons. The banner came from a partner who toggled Conversions off and on during a client call and could not tell whether it worked.</p>
<p><img src="/images/updates/2026-09-09/hidden-from-report-banner.png" alt="A client&#x27;s Reporting page with an amber banner listing what is hidden from the client&#x27;s report"></p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>An agent raised an alarm that the rank tracker had returned no data two days after keywords were added. They had been added that morning; the agent had been started by hand four times within half an hour and treated each start as a new day. Every ranking an agent reads now carries the current time, when the keyword was registered, when it was last checked and how often it is checked, and every session opens with the time of day. Escalations name the agent that raised them.</p>]]></content:encoded></item><item><title>Workspace-wide defaults for the client portal and client reports</title><link>https://seobrothers.com/updates/2026-09-08/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-08/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><description>Set once which portal pages and report sections every client gets, and override per client. The portal can show the campaign goal, brief and competitors, and content due dates are now publish dates.</description><content:encoded><![CDATA[<p>Back from the long weekend with a day for the screens clients see.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Client Portal settings gain a Dashboard pages card: choose once which portal pages every client sees, and the per-client toggles on the Client Portal tab still win when set. Three new portal options and an All phases switch arrive with it.</li>
<li>Reporting Defaults is a new Workspace Settings tab, inherited by every client, and the per-client sheet stores only what differs.</li>
<li>Content plan items carry a real publish date, and the content plan table shows each item’s type.</li>
<li>Proposals are now built from two catalogs, a campaign process outline and minimum monthly deliverables, and a won discovery carries both onto the campaign as its process and scope. Wording you wrote for a deliverable prints verbatim on the client’s page.</li>
<li>Email Sending takes an optional reply-to address, applied to every client-facing send. A sending domain you have verified now goes live within the hour of its records landing, with no click.</li>
</ol>
<h3 id="1-dashboard-pages">1. Dashboard pages</h3>
<p>The new options are off by default. Campaign goal and Campaign brief show on the portal’s ongoing phase in the same card your client overview uses, and Competitors shows the competitor sites as chips. All phases, when off, drops the phase tabs from a client’s Overview so they see only the current phase. The portal’s ongoing phase also drops its planned-work list, so it matches your view.</p>
<p><img src="/images/updates/2026-09-08/portal-dashboard-pages.png" alt="The Dashboard pages card on Client Portal settings, a grid of portal pages with on and off switches"></p>
<h3 id="2-reporting-defaults">2. Reporting Defaults</h3>
<p>The tab carries the same section toggles and PDF contents as the per-client sheet. A client sheet that differs is marked Custom and has a Use workspace defaults button.</p>
<p><img src="/images/updates/2026-09-08/reporting-defaults.png" alt="The Reporting Defaults tab in Workspace Settings, with a switch for each report section"></p>
<h3 id="3-publish-dates">3. Publish dates</h3>
<p>Geo pages, service pages and page expansions land on the 15th of their month, and a plan’s blog posts spread evenly across it, interleaving with posts from other plans. Writing opens on the 1st.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Every action staff take on held agent work is now recorded: edited (with what changed), rejected, released.</li>
<li>The agent builder retired its always-on tool set; an agent’s tool list is exactly what it names.</li>
<li>More connector releases, this time from working the blog publishing lane by hand.</li>
</ol>
<h3 id="3-connector-releases">3. Connector releases</h3>
<p>Posts open without a duplicate title heading, a featured image can lead the body for themes that never show it, and each post can carry its own search-indexing override. Page addresses refresh, reading settings work for sites with no posts page, and new links are styled like the post’s own links so readers can see them.</p>]]></content:encoded></item><item><title>A Sunday of connector releases and a quieter task queue</title><link>https://seobrothers.com/updates/2026-09-06/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-06/</guid><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><description>Nothing changed on partner screens. The WordPress connector learned to clone blocks, change heading levels and move sections, and the staff task queue now lists only work that is ready to start.</description><content:encoded><![CDATA[<p>A Sunday. Nothing moved on partner screens; the work was all underneath.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>Nothing moved on the surface today; the work was all underneath.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Connector 2.2.0 and 2.3.0 were built inside real on-page tasks, one limitation at a time.</li>
<li>The connector installer now handles more of what real hosts throw at it, and refuses to install when the login on file points at a different site than the client’s (a staging copy).</li>
<li>The staff task queue no longer lists tasks with a pending approval request, in the open queue or on Upcoming. Pending Approvals is where those are followed up, and its plan rows now show how many pieces each plan carries.</li>
</ol>
<h3 id="1-connector-220-and-230">1. Connector 2.2.0 and 2.3.0</h3>
<p>Link insertion takes a context phrase, so when an anchor repeats on a page the agent names the sentence instead of widening the anchor. The page outline reports children counts, device visibility and background images, and every element can be named exactly, so a block can be cloned with its design, a heading’s level changed with its look pinned, and a top-level section moved, on Elementor, the block editor, classic pages, Divi and WPBakery. Bench-checked before release.</p>
<h3 id="2-the-installer">2. The installer</h3>
<p>It gets through security check pages that clear themselves in a browser, admin email prompts, custom two-factor screens, passwordless login switches, and maintenance mode after an upload. Installs now happen case by case as tasks need them.</p>]]></content:encoded></item><item><title>Automatic changes on a connected site are now something you turn on</title><link>https://seobrothers.com/updates/2026-09-04/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-04/</guid><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><description>A connected website no longer hands site edits or publishing to the agent by default; partners opt in per workspace or per client. The WordPress connector now reads pages whose copy lives in custom fields, searches a whole site and places links that know a copy link from a navigation link.</description><content:encoded><![CDATA[<p>A Friday with one decision for partners and a long stretch of plugin work underneath.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Connecting a client’s website no longer means the agent starts applying changes there. Site edits and content publishing route to a person by default, connection or not, and you turn automatic implementation on for the workspace or for one client.</li>
<li>Plans that empty out now end cleanly however the last item goes: cancelling it from the task list, the planning page or the API ends the plan and withdraws its approval request. A plan’s approval request can only be opened while the plan is still proposed, so an approved plan never shows as awaiting a decision again.</li>
<li>Through the API, one-off tasks are site edits or citation orders, and plans are content, links or Business Profile posts. Citation orders are checked on the way in the same way the agent’s are.</li>
</ol>
<h3 id="1-turning-automation-on">1. Turning automation on</h3>
<p>The switch is a new Connected sites card on Settings > Implementation, and a Connected site card on each client’s implementation page. Changing who implements resets automation to manual, and the page tells you when that happened.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>Each WordPress connector release today was built on something a live site taught us. Edits are saved with an administrator’s permissions, so a page builder no longer strips a map embed or accessibility details when one sentence changes. Every response tells the host not to keep a copy, so a site’s cached copy cannot hand back the page as it was before the edit. Elementor edits rebuild only the edited page’s styling, so a text edit never leaves the rest of the site waiting.</p>
<p>The 2.0.0 release: pages whose copy lives in custom fields are readable and editable, site-wide text search and scans, link placement that knows a copy link from a navigation link, a page outline, inserting a section next to a named one styled like its neighbour, removing a named block, adding menu items. The agent’s website tools no longer close tasks on their own; they record what they did and the agent decides. Bench-checked across five page builders before release, then refined against the first live site.</p>]]></content:encoded></item><item><title>Approval emails lead with the website, and campaign notifications follow client assignments</title><link>https://seobrothers.com/updates/2026-09-03/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-03/</guid><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><description>Approval requests arrive as new, named by the client's website, and land on the task. Campaign notifications reach only the team members assigned to that client. Approved plans merge into one month-by-month list.</description><content:encoded><![CDATA[<p>Thursday was about who hears what, and about the email that asks for a decision.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The approval request email is rewritten. The subject leads with the campaign’s website and says the piece is ready for your approval, or back for it after feedback, and the button lands on the task page.</li>
<li>Campaign notifications now reach only the team members assigned to that client. If nobody on your team is assigned to a client, nobody hears about it, so check assignments.</li>
<li>On the planning page, every approved plan of one kind merges into one list sorted by month, and only plans still waiting on a decision keep their own section on top. Approving a plan approves all of it: nothing added to an approved plan later sits pending, and the Approve additions button is gone.</li>
<li>Google connections granted without the matching permission ticked on the consent screen now read Needs permission with a Reauthorize button, instead of Connected with empty pickers.</li>
<li>The Integrations tab names the Google account holding each linked property.</li>
<li>A discovery for a franchise territory on a shared domain is its own prospect, and its crawl stays inside that folder.</li>
<li>The crawl audit now flags raw template codes and placeholder copy that visitors can see.</li>
</ol>
<h3 id="1-the-approval-email">1. The approval email</h3>
<p>Client record names are often the legal Business Profile name where the website is the thing you know. Approve and request changes already live on the task page.</p>
<h3 id="2-notifications-follow-assignments">2. Notifications follow assignments</h3>
<p>Your notification settings are grouped into Your clients and Your account, and a sheet lists which clients reach you.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>A new Pending Approvals page lists everything we are waiting on partners to approve, across every partner, grouped and filterable, defaulting to the partners you are assigned to. The all-partners view loads in about thirty milliseconds.</li>
<li>The content QA reviewer no longer decides whether a draft needs the partner’s review. The platform reads the campaign’s approval policy and opens a review only where one is required; a campaign set to approve written content automatically cannot be asked.</li>
<li>Notification email goes out with retries and pacing, so a burst of approvals across a large team arrives in full.</li>
<li>Every discovery now records the intake exactly as submitted.</li>
</ol>]]></content:encoded></item><item><title>The platform now knows what every client site is built on</title><link>https://seobrothers.com/updates/2026-09-02/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-02/</guid><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate><description>Every client site is classified by the CMS or builder it runs on and shown on Website Access and the client header. Citations stop ordering the big directories, and competitive gap reviews reach every workspace.</description><content:encoded><![CDATA[<p>A day about knowing the client’s website before touching it, plus a long pass over the staff inbox and the task view.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The platform now detects the CMS or site builder each client site runs on and shows it on the Website Access page and in the client header.</li>
<li>The citation scan now lists the Google, Apple Maps and Bing profiles it finds for a location, so a location whose only listing is its Google profile no longer reads as having none.</li>
<li>“Choose sites for me” is now the platform’s pick, ranked by directory authority, and it never orders Google, Apple Maps, Bing or Yelp listings; a hand pick naming one of those is refused with the reason.</li>
<li>Competitive gap reviews are on for every workspace, and the setup checklist folds the gap step into the monitoring step.</li>
<li>The draft checkpoint added yesterday is now called Newly published content on the approval rules and in the Approvals queue.</li>
<li>Activation start dates skip weekends.</li>
</ol>
<h3 id="1-site-detection">1. Site detection</h3>
<p>Managers can correct it or ask for a fresh detection, and the connect picker opens on the detected platform when it is one the platform pairs with.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Site detection no longer asks an AI model about the sites it cannot recognise on its own; unknown now means a human reads it.</li>
<li>The staff task view grew up: the campaign’s website in the header, the campaign’s rules in the rail, site logins on the task, and a CMS row.</li>
<li>My Inbox got category tabs, a Cleared tab with undo, and paging.</li>
<li>Team activity gained a list behind every count, a people picker, a columns picker and totals in the footer, and it now counts a task completed once however many times it was closed.</li>
</ol>
<h3 id="1-rules-written-by-hand">1. Rules written by hand</h3>
<p>Detection started the day asking the model about the sites it could not recognise, and the model kept naming platforms the evidence did not support. So the model is gone. We read every unresolved site by hand (response headers, cookies, where its files are served from, stored logins) and turned each into a rule: fifteen platforms detection had never heard of, sites hiding behind security plugins, parked domains behind redirects. Sites that are code rather than a CMS are named for what they are.</p>]]></content:encoded></item><item><title>The client overview becomes the campaign plan</title><link>https://seobrothers.com/updates/2026-09-01/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-09-01/</guid><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><description>The client page now opens on the campaign plan with goal, brief and competitors editable in place, the agent page becomes Sessions, and content can pause for a draft check on your own site before it goes live.</description><content:encoded><![CDATA[<p>A long Tuesday, most of it on the screens partners look at every day.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The client overview is now the campaign plan. Open a client and you land on the phase tabs, the setup checklist, and the goal, brief and competitors, all editable in place, with recent activity underneath.</li>
<li>Content can now pause for a second check: a draft on your own website.</li>
<li>The agent page is now called Sessions.</li>
<li>Removing the last item from a plan ends the plan and withdraws its approval request, instead of leaving a request that points at nothing.</li>
<li>Approval requests for paused clients carry a Paused badge.</li>
<li>The setup checklist stops flipping back to unfinished on campaigns past onboarding: a new alert or a newly added keyword no longer reopens a setup step.</li>
</ol>
<h3 id="1-the-campaign-plan">1. The campaign plan</h3>
<p>The separate campaign details page redirects here. The ongoing phase leads with goal, brief and competitors instead of a planned-work list.</p>
<h3 id="2-a-draft-on-your-site">2. A draft on your site</h3>
<p>Alongside the written review, a campaign can ask you to approve a piece once it is staged on the site, and the Approvals queue gets a section for these. Three answers: approve, approve because it is already live, or send feedback. Nothing goes live from the task until the draft is approved.</p>
<h3 id="3-sessions">3. Sessions</h3>
<p>What you are reading is the session, not the agent behind it, so the tabs, sidebar and table say Sessions, and the sidebar card lists only the scheduled ones. Sessions started by hand are labelled as such.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Hourly site monitoring now checks one campaign at a time, tries again when a check fails, and raises an alert when a round does not finish. The weekly digest works the same way.</li>
<li>The month-end AI visibility check now audits its own coverage: a campaign it under-sampled is checked again, and a month with no check raises an alert.</li>
<li>For the team, the task queue caps pick-ups at five held tasks.</li>
<li>Archiving a client withdraws every open approval on it.</li>
<li>A staff mail log shows every email the platform sent a partner and whether it arrived.</li>
<li>Partners who run their own rank-tracking account keep it; the platform mirrors the keyword list both ways once a day.</li>
</ol>]]></content:encoded></item><item><title>Any team member can decide task approvals</title><link>https://seobrothers.com/updates/2026-08-31/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-31/</guid><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate><description>Approving or sending back a task is open to every member of your team.</description><content:encoded><![CDATA[<p>The last day of August: one thing for partners, and a sweep of link building underneath.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>Approving a task, or sending it back with changes, is open to every member of your team. Plan approvals and content reviews already were; task decisions had been limited to owners and admins. Approval rules and workspace approval defaults stay with managers.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>Agents can now see the standalone technical check series the auditor runs (soft 404s, missing pages that redirect, www and https resolution, sitemap discovery, robots, safe browsing, indexed count), including what passes and past results, and can re-check a site on demand to verify their own fix rather than waiting for the next scheduled check.</p>
<p>A sweep tightened link planning. Starting it by hand once produces one plan, not several. The agents that write a guest post’s topic and article hand the task on, and it closes when the post publishes. A placement that names the same target URL twice is recorded once. And a campaign with no link network chosen is classified before anything is placed.</p>]]></content:encoded></item><item><title>Business Profile posts publish to the location they were written for</title><link>https://seobrothers.com/updates/2026-08-28/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-28/</guid><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate><description>Each Business Profile post carries its location and posts spread across the month, website edit approvals split into visible and technical, and the team's task queue reorders by urgency.</description><content:encoded><![CDATA[<p>A multi-location client with dozens of Business Profiles set the day’s agenda.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Every Business Profile post now carries the location it was written for and publishes to that profile, and due dates within a month spread evenly across it. Planning pages show a Location column on multi-location clients, and the post sheet names it.</li>
<li>Approval rules for website edits split in two: Visible page changes, which default to requiring your approval, and Technical changes, which default to automatic. Safe mode still requires everything, and any override you had set carries onto both.</li>
<li>A content task at the publishing stage now reads Publishing: Service page (or Blog post, Geo page) in your task lists, with a View the approved content button and Mark as published on the task itself.</li>
<li>New pages planned from now on need a target URL up front, so the publisher is never guessing where a piece goes.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Guest post topics and articles are written by agents now, the same way the content writers are.</li>
<li>Our team’s task queue reorders by urgency: overdue first, then due date, undated last.</li>
<li>Link, Business Profile post and content page tasks can only be born inside plans, so every one of them has a month and shows on the planning pages.</li>
<li>A delivered discovery’s website and local analysis can be refreshed in place with the campaign’s current competitors and Business Profile, instead of marking it lost and resubmitting.</li>
</ol>
<h3 id="1-guest-posts">1. Guest posts</h3>
<p>Higher-authority link placements, which had been hand-sourced, run through the same workflow drawing from any site that qualifies on authority alone, with hand-sourcing as the fallback when none does.</p>
<h3 id="2-the-task-queue">2. The task queue</h3>
<p>Tasks beyond the two-week work-ahead window wait on their own Upcoming page and join the queue when their day comes. Blocked tasks sit in their own section, a task with an approval outstanding cannot be picked up, a team roster shows who holds what, and the filters live in the address bar so a filtered queue is a link.</p>]]></content:encoded></item><item><title>Blog posts and geo pages are written by dedicated writer agents</title><link>https://seobrothers.com/updates/2026-08-27/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-27/</guid><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><description>Content drafts now come from brief-writer, writer and QA agents. Tasks hand between teams rather than people, published URLs can be recorded from the editor, and cancelling a client winds the campaign down properly.</description><content:encoded><![CDATA[<p>Content writing changed hands today, and a client’s exit got the same care as its entrance.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Written content on full campaigns now comes from agents rather than a single automated step: a brief-writer, a writer and a QA reviewer. You see the same review flow, with a brief you can read on the piece.</li>
<li>Leaving active is now either a pause or a cancellation, both schedulable, and cancelling winds the campaign down.</li>
<li>Tasks hand between sides, not people. The assignee options are your team or our team; individual names and avatars no longer appear in your task lists.</li>
<li>The New task form offers Website edit, Business Profile edit and Research, since content, links and citations are born from planning, and the Request task button is gone.</li>
<li>A task waiting on approval cannot change status for anyone; the decision is the only lever, and Request changes is how you say no to work you do not want.</li>
<li>The content editor’s Publishing card now carries Mark as published, so anyone on your team can record where a piece went live, whoever holds the task.</li>
</ol>
<h3 id="1-writer-agents">1. Writer agents</h3>
<p>Once a plan is approved, a brief-writer agent writes the brief onto each piece. When the piece is due, a writer agent writes the draft from that brief, never ahead of it. A QA reviewer agent checks the draft, saves its notes on the version, and submits it for your review.</p>
<h3 id="2-cancelling-a-client">2. Cancelling a client</h3>
<p>Keyword tracking is paused rather than deleted (history kept, resumes if the client comes back), open work due after the cancellation date is cancelled with a note, work owed before it is kept, monitoring and reporting switch off, and client logins are revoked.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>Operations grew by five tabs: Site Monitoring (crawl score and one dot per monitoring category, fleet-wide, worst first), Campaign Agents (on or off, and what would run), Platform Issues (one list of open and addressed alerts and agent escalations), Campaign Offboarding (a wind-down checklist per cancelled campaign) and Team Activity.</p>
<p>For the book of agencies moving onto the platform, document links our team attached to open tasks come across as comments on the task, and campaign start dates come from the original onboarding date rather than the day of the move.</p>]]></content:encoded></item><item><title>Sign in on your own domain, and a Rules tab for every campaign</title><link>https://seobrothers.com/updates/2026-08-26/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-26/</guid><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><description>Partners with a white-label domain use the whole platform there, every campaign gets a Rules tab, content pieces get a featured image, and approving over unread feedback asks first.</description><content:encoded><![CDATA[<p>Three changes today: the platform on your own domain, a Rules tab for every campaign, and featured images.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Partners with a live white-label domain can now sign in and use the whole platform there, not only their clients’ portal.</li>
<li>Every campaign has a Rules tab, beside Scope.</li>
<li>Content pieces now have a featured image.</li>
<li>Approving a content piece while your own comments or unsent notes are waiting on it asks whether to go back or approve as is. Our publishers also see the review thread on the task before they publish.</li>
<li>A Business Profile post that cannot publish because Google is not connected tells you, and publishes on its own once it is.</li>
<li>Guest posts and Business Profile posts no longer wait a fixed number of days between placements; the plan’s due dates set the pace.</li>
<li>Your approval rules now apply to work our own team files, not only the agents’.</li>
</ol>
<h3 id="1-your-own-domain">1. Your own domain</h3>
<p>Connecting Google or your CRM from your own domain works too: the connection is made under your brand, then returns you to your domain.</p>
<h3 id="2-rules">2. Rules</h3>
<p>A rule is a standing directive for the campaign (never change the pricing page, always link to the booking form), added and edited by your managers. Agents read the rules and can propose one, never edit or delete one.</p>
<h3 id="3-featured-images">3. Featured images</h3>
<p>Drop a file or paste a URL in the editor’s sidebar, write the alt text, and it shows above the piece on review pages and publishes as the featured image on WordPress, Ghost and Shopify.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Feedback on a written piece has a reacting agent: it reads the draft, folds your notes into the brief, rewrites and resubmits, and answers a question in the thread. Briefs for approved pieces now come from dedicated brief-writer agents before the writing starts.</li>
<li>Agents can read a whole crawl: the page table, broken links with every page linking to them, the sitemap reconciled against the crawl, and live Search Console. Every arbitrary cap on what an agent can read is gone.</li>
<li>Two more Operations views for admins: Data Feeds, which flags a campaign whose connections need attention before any work depends on them, and one queue of every item across the book waiting on a person, instead of hunting campaign by campaign.</li>
</ol>]]></content:encoded></item><item><title>Website edits split into technical and on-page lanes</title><link>https://seobrothers.com/updates/2026-08-25/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-25/</guid><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><description>Website edit tasks carry a lane, Business Profile edit becomes a task type, work still under our review stays out of your approvals until we release it, and admins get an Operations section.</description><content:encoded><![CDATA[<p>Task lanes landed, and the admin side got its first fleet-wide views.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Website edit tasks now carry a lane, technical or on-page. The New task form asks which; the agent and our team say which when they file one.</li>
<li>Business Profile edit is a task type of its own, labelled that way in your task list and approvals.</li>
<li>Work our team is still reviewing before it reaches you stays out of sight until we release it. The approvals queue, the sidebar badge and the client portal show it once, when it is released, and you are notified once, then.</li>
</ol>
<h3 id="1-technical-and-on-page-lanes">1. Technical and on-page lanes</h3>
<p>A technical edit can cover up to five pages at once and never has to wait behind another edit on the same page. An on-page edit is one page of visible content, and it holds that page briefly so two content changes never collide.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Admins have an Operations section: Campaign Onboarding and Campaign Fulfillment, across every partner.</li>
<li>Agents gained a view of a crawl’s noindexed pages, with sitemap contradictions first and a note that a noindex is normally deliberate. The auditor stopped scoring noindex as a critical issue at the same time.</li>
<li>Staff who follow a deep link into a client’s workspace get a confirm-and-enter page instead of being turned away.</li>
<li>A page audit now evaluates only the page that changed.</li>
</ol>
<h3 id="1-operations">1. Operations</h3>
<p>Campaign Onboarding lists every campaign whose setup checklist is not finished, filtered by phase, with the actual checklist items in a popover and a click into the workspace. Campaign Fulfillment shows one month at a time, one row per campaign, one column per delivery stream, each cell reading planned, done and scoped; gaps only by default. The checklist is built once and shared by the client portal, campaign details and this page, so the three can never disagree.</p>]]></content:encoded></item><item><title>Quarterly reports and a Work Delivered section</title><link>https://seobrothers.com/updates/2026-08-24/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-24/</guid><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate><description>The client report can be viewed and downloaded by quarter, gains a Work Delivered section, and competitive gap reviews move into Monitoring and Audits.</description><content:encoded><![CDATA[<p>Monday was a reporting day, with a run of campaign-details follow-ups alongside.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The client report can now be viewed and downloaded for a calendar quarter as well as a month.</li>
<li>The report has a Work Delivered section: the content pieces and link placements completed in the period, each linking to its live URL where we hold the publish receipt.</li>
<li>Competitive gap reviews now live where the rest of monitoring does, and the standalone page is retired.</li>
<li>On campaign details, a Define campaign profile step joins the checklist, with a Detect from website button that classifies the client for you, and any phase tab offers a Move to this phase button that asks before it moves.</li>
<li>Content pieces cleared by your trust settings without a review now read Approved instead of Draft. Submit for approval hides on approved and pending pieces and returns as Resubmit only when a newer version has been saved.</li>
<li>Page monitoring gains an alert for a monitored page whose page size balloons between audits, critical when it nears the size at which Google stops indexing.</li>
</ol>
<h3 id="1-quarterly-reports">1. Quarterly reports</h3>
<p>The period picker has a Months and Quarters toggle with a year stepper; only finished quarters are offered. Comparisons follow the period: quarter over quarter and against the same quarter last year, keyword movement from the start of the quarter to its end. It works everywhere the report appears, including the client portal, the public share link and the PDF. Scheduled monthly sends are unchanged.</p>
<h3 id="2-work-delivered">2. Work Delivered</h3>
<p>On by default, it can be hidden in the report settings, and drops out on its own when a period had neither.</p>
<h3 id="3-competitive-gap-reviews">3. Competitive gap reviews</h3>
<p>Settings and a Run review now button sit on the Monitoring page, results under a Competitive Gap tab on Audits. New reviews no longer include the AI visibility comparison, since the monthly AI visibility snapshot already measures the client against competitors across all four assistants.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Long agent sessions on big campaigns now run to completion however large the campaign.</li>
<li>Agents can start when a crawl completes, and only when the crawl’s numbers warrant it.</li>
<li>Agents arrive with the keyword map and their own open tasks already in front of them.</li>
<li>When someone on the team starts an agent by hand, it records who.</li>
</ol>]]></content:encoded></item><item><title>Speed checks say when a page cannot be measured</title><link>https://seobrothers.com/updates/2026-08-21/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-21/</guid><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><description>Page speed monitoring opens one alert when the site itself stops a page being measured, audits that cannot complete wait for their regular slot, and task text reads the same wherever your team sees it.</description><content:encoded><![CDATA[<p>One monitoring change worth knowing about on Friday.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>When a page speed check cannot measure a page because of the site itself (the page hangs, never paints, or its domain does not resolve), the campaign now gets one warning alert saying so. Repeat failures bump the same alert quietly rather than opening a new one, and the alert closes itself on the next successful check. A slow day on the measurement side alone never alerts; only a site-side cause does.</p>
<p>Task titles and descriptions now read the same wherever your team meets them, including the digest email.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>A monitoring audit that fails three times in a row waits for its regular slot: two fast retries, then back to its usual schedule.</p>
<p>Tasks our team files without naming an assignee now go to whoever implements for that client, rather than defaulting to the partner’s team.</p>]]></content:encoded></item><item><title>Discovery reports download as a PDF</title><link>https://seobrothers.com/updates/2026-08-20/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-20/</guid><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><description>The discovery report gets a Download PDF button and real competitor heatmaps, and the team can read live Search Console and Analytics data for any campaign from their own tools.</description><content:encoded><![CDATA[<p>A day on the discovery report, mostly on what it looks like printed.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The discovery report share page has a Download PDF button. The PDF is built from exactly what the prospect sees, on letter paper, with the same geometry as the monthly report PDFs.</li>
<li>Competitor comparison cards show each competitor’s own heatmap where they used to show a placeholder.</li>
<li>Two rows left the report: the Brand row in the competitive matrix and the keyword table’s total row.</li>
</ol>
<h3 id="1-download-pdf">1. Download PDF</h3>
<p>We went through it page by page: sections pack pages instead of forcing breaks (a sample report went from 23 pages to 20, with the site audit dropping from four sparse pages to two full ones), table rows never split, table headers repeat on continuation pages, the four AI assistant cards print as an even two by two, and the sources section starts on its own page.</p>
<h3 id="2-competitor-heatmaps">2. Competitor heatmaps</h3>
<p>A local scan only produces one heatmap image and it belongs to the client, which is why the cards had a placeholder. The report now draws each competitor’s heatmap itself, from the scan’s own rank grid, on a real map of the scanned area: green for top three, amber for four to ten, red beyond. The framing matches the client’s scan image so the cards read side by side, and three cards fill the row instead of huddling in half of it.</p>
<h3 id="3-two-rows-gone">3. Two rows gone</h3>
<p>Brand search only runs against the client’s own site and we should not guess competitors’ brand names. The total row only summed the starred keywords and read as a wrong total.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Our team can now pull live Search Console data (top queries, page by query, URL inspection, sitemaps) and Analytics data (per-page sessions split into organic and AI assistant traffic, with a prior-window comparison) for any linked campaign from their own tools, without opening the app.</li>
<li>Mentions in the staff inbox stay until cleared and open on the exact comment, highlighted, mid-thread.</li>
<li>A link campaign with no network chosen picks its networks on the first placement.</li>
</ol>]]></content:encoded></item><item><title>Pause a client on a date, and see when it was paused</title><link>https://seobrothers.com/updates/2026-08-18/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-18/</guid><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate><description>Pausing a client now leaves a record, can be scheduled, and keeps delivering work that was owed. Locations suggest Business Profiles you already manage, and Google data links minutes after activation.</description><content:encoded><![CDATA[<p>Two threads today: what happens when a client pauses, and how fast Google data arrives when one starts.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Inactive is the paused state, and it is now visible and recallable. Every pause, reactivation, archive and restore writes a line in the client’s activity, and a pause can be set for a date.</li>
<li>Work you were owed keeps coming: a task due before the pause date still gets delivered, everything after it freezes with the client, and tasks on a paused client say so when you open them.</li>
<li>The Locations page now suggests Business Profiles that a connected Google account already manages and that match the client’s website, with a one-click add.</li>
<li>Analytics and Search Console now link within minutes of activation rather than waiting for the overnight refresh.</li>
</ol>
<h3 id="1-pausing-a-client">1. Pausing a client</h3>
<p>“When did this pause, for how long, and who did it” has an answer. The Deactivate dialog offers Now or On a date; a dated pause happens on its own that day, exactly as if someone had clicked it. Every page of a paused client carries a banner with the date and a Reactivate button, and a scheduled pause shows with a Cancel.</p>
<h3 id="3-suggested-business-profiles">3. Suggested Business Profiles</h3>
<p>Suggestions only, never automatic: one website can front locations the client did not hire you for.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Every client gets a business profile classification (service area, ecommerce, and so on) at discovery submission and again at activation if it is still missing. That profile decides which setup steps appear, including the Business Profile steps.</li>
<li>The overnight Google linking now connects accounts first and syncs Business Profiles after, and a profile whose data keeps failing is set aside for a week.</li>
<li>New campaigns are matched to link networks at activation, so the first link placement has its network from day one.</li>
<li>Team members who were added but never signed in can be sent a branded set-your-password email, once.</li>
<li>We wrote down how we test agents: run against a real campaign, read the whole transcript, fix between reps.</li>
</ol>]]></content:encoded></item><item><title>Monitoring and citation scans start the moment a client is activated</title><link>https://seobrothers.com/updates/2026-08-17/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-17/</guid><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate><description>Activation now switches on the standard monitoring set and starts citation scans for every location, team assignments get their own tab, and the onboarding agent starts taking shape.</description><content:encoded><![CDATA[<p>Most of today was about the first hour after a client goes active.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Activation now turns on monitoring, with the first checks inside the hour.</li>
<li>Citation scans start at activation too, one per location on the campaign.</li>
<li>Assigning your team to a client has its own Team tab under the client’s configuration, next to Client Portal, so the two people surfaces sit together: your side and theirs.</li>
<li>The Work sessions list now shows each agent session once, so a session in progress no longer appears twice.</li>
</ol>
<h3 id="1-monitoring-at-activation">1. Monitoring at activation</h3>
<p>The standard set (site health, technical, domain health, content changes, page speed, Business Profile, brand search, backlink authority, keyword rankings) switches on with the campaign. Competitive gap reviews stay a deliberate opt-in. A check whose prerequisite is missing, like the Business Profile check on a campaign with no location yet, waits quietly and can be turned on from the Monitoring page once it applies.</p>
<h3 id="2-citation-scans">2. Citation scans</h3>
<p>That used to be a decision the agent made during its strategy work; it is a routine job, so it now just happens.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>The onboarding agent started to take shape. It now starts with the state of every onboarding objective already in front of it (tracked keywords, keyword mapping coverage, which plans are approved or waiting, citation scans per location, open alerts by severity) instead of spending its first minutes working that out. Its list of objectives matches the playbook exactly: alert triage is in, and citation setup is out because it is no longer the agent’s job.</p>
<p>Switching an agent on never replays history. Alerts that were already open before the agent was enabled are not treated as new work the minute it turns on.</p>
<p>Each campaign in onboarding gets a thread in the team’s chat, and the agent can nudge the team once a day about inputs only a person can supply (goal, brief, connections), in a header and bullets rather than prose.</p>
<p>A campaign that arrives already under way is not onboarding, so when staff enable the agent on one, they choose which phase it starts in.</p>]]></content:encoded></item><item><title>Activation takes a start date</title><link>https://seobrothers.com/updates/2026-08-16/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-16/</guid><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate><description>Activating a client now asks for a start date. Today starts now, a future date schedules the flip, and every locked page offers the same flow.</description><content:encoded><![CDATA[<p>Sunday, and the activation flow got the one field it was missing.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>Activating a client now asks for a start date. Leave it on today and the client activates immediately, as before. Pick a future date and the activation is scheduled: the client stays a prospect until that morning, then flips on its own, and the toast says so when you save.</p>
<p>The same picker appears wherever activation is offered. The Activate dialog on the client page has it, and so does the activation prompt you see on any page that is locked for a prospect (Tasks, Reporting, Scope). Marking a discovery as won now carries you straight into that dialog rather than leaving you to find it.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>When one of our team opens a partner’s workspace to help, they now land on that partner’s own branded address rather than ours. On a screenshare with a partner’s client the URL bar shows the partner, not us. Small, and the kind of thing white label is made of.</p>]]></content:encoded></item><item><title>Discoveries finish on very large sites</title><link>https://seobrothers.com/updates/2026-08-15/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-15/</guid><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate><description>A discovery on a site with tens of thousands of pages now waits for the crawl to finish, and checks a site blocked us from running read as unchecked rather than failed.</description><content:encoded><![CDATA[<p>A Saturday spent on the discovery report, prompted by one prospect’s site that did two things most sites do not: it had a twenty-thousand-page catalog, and it blocked every automated visitor.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>A discovery on a very large site now waits as long as the crawl can possibly take, so a big catalog site gets a complete report.</p>
<p>Some hosts refuse every automated visitor we have. Checks we could not verify on those sites (robots, sitemap, redirect consistency, soft 404s) show as an unchecked row with a muted dash rather than a failure, so a prospect is never told a file is missing when we were simply not allowed to look.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>When an agent links a campaign to Analytics or Search Console through one of our shared accounts, it now only sees properties whose website matches the campaign, and it can only link what it was shown. Same outcome as before on a clean match; far less noise in the agent’s view on an account that holds hundreds of properties.</p>]]></content:encoded></item><item><title>Dashboard cards that agree with each other</title><link>https://seobrothers.com/updates/2026-08-14/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-14/</guid><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><description>The dashboard opens on Active clients, Prospects and Team members, and the Prospects card opens a filtered client list.</description><content:encoded><![CDATA[<p>One visible change on Friday, and a change in how every change after it reaches you.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>The top of the dashboard now reads Active clients, Prospects and Team members, and the section below no longer repeats the client counts, so the two halves of the page describe the same book.</p>
<p>The Prospects card is a link. It opens the clients list already filtered to prospects, and the clients list now reads that filter from the address, so a filtered view can be bookmarked or passed to a teammate.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>From today every change to the platform is reviewed and checked automatically before it ships. Database changes travel with the code that needs them, and each one is rehearsed against a copy of the database before it reaches the real one. It sounds like housekeeping. It is what lets a small team ship in parallel without stepping on each other.</p>]]></content:encoded></item><item><title>The client portal opens on the campaign plan</title><link>https://seobrothers.com/updates/2026-08-10-week/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-10-week/</guid><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate><description>The client portal's home became the campaign plan with phases and a checklist, monitoring copy was rewritten in plain language, brief-only campaigns arrived for partners who write their own content, and on Thursday every change started going through review and automated checks before it ships.</description><content:encoded><![CDATA[<p>Four days, Monday to Thursday, and then the way we ship changed. The client portal’s home became the campaign plan, monitoring copy was rewritten in plain language, and on Thursday every change started going through a review with automated checks before it ships.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The client portal opens on the campaign plan. A monthly process strip runs along the top with deliverable tiles and this month’s progress, then one section per phase with a checklist of what is done, in progress and pending.</li>
<li>The process itself is a catalog of cards layered platform to partner to campaign, so a partner’s standard process applies everywhere and a single campaign can differ, edited beside Scope.</li>
<li>Monitoring reads differently. Check descriptions lead with the change they catch, in plain language, without internal policy detail.</li>
<li>Partners who write their own content can run a campaign in brief-only mode: we plan and brief, their writers produce the pieces, and the plan reflects that honestly instead of stamping our work as done.</li>
<li>Content reviews can cancel an open approval request to keep editing.</li>
<li>A Mentions tab joined the inbox.</li>
<li>Portal deliverables read as counted lines, and the plan view dropped its done counters and summary paragraph.</li>
</ol>
<h3 id="1-the-plan-as-the-portal-home">1. The plan as the portal home</h3>
<p>The checklist covers the brief, competitors, the goal, Google accounts, keyword research and tracking, gap analysis, keyword mapping and work plans. Phases are clickable tabs, and the ongoing view is one work list. The public share portal mirrors the same view.</p>
<h3 id="3-monitoring-copy">3. Monitoring copy</h3>
<p>Websites display as their full address, host and folder, everywhere. Monitored pages match on URL regardless of a trailing slash. The noindex alert names the pages. Alert emails arrive grouped per check instead of one at a time.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>On Thursday the way we ship changed: every change is reviewed and checked automatically before it lands, the database changes it needs land with it, and anything touching data structure, money or sign-in waits for a second person’s review.</li>
<li>Agent probation: an agent under review has its tasks and plans held until staff release them, invisible to partner and client until then.</li>
<li>Website edits follow one rule per page: one active edit at a time, and a short wait after one finishes before the next, whether the agent or a person created the task.</li>
<li>A big job can pause and carry on knowing everything it already knew, so it is never cut off for running long, and staff release it if it grows expensive.</li>
<li>A campaign’s phase starts at activation rather than when the agent first works it.</li>
<li>Page expansions are tasks now, not plan items; plans hold new content. The experiments concept was retired.</li>
</ol>]]></content:encoded></item><item><title>The first partners arrive, and a Monday digest of what is waiting on you</title><link>https://seobrothers.com/updates/2026-08-03-week/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-08-03-week/</guid><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate><description>The first partners were on the platform this week, a Monday digest started listing everything waiting on a partner, alerts learned to wait and see, and the agent editor was rebuilt for daily use.</description><content:encoded><![CDATA[<p>The week real agencies arrived on the platform. Around them, the agent editor was rebuilt for the people who would now run it daily, and the task queue got the filters a full book demands.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>A weekly digest lands every Monday morning: a snapshot of everything waiting on you, pending approvals and team tasks due within the week, one line each linking straight to the item, sent even when the answer is all clear. It is on by default and each person can turn it off.</li>
<li>Keyword ranking alerts wait and see before speaking: a keyword that disappears is confirmed missing after three days, the same for every keyword, and day-to-day movement is reporting, not alerts.</li>
<li>Notification channels are per person now, off, email, in-app or both, from an Account page with Profile and Notifications tabs.</li>
<li>Alerts got plainer. Monitoring emails say where the change happened and link to the exact alert, content-changed alerts appear only when there is a change you can read, and misspelling alerts show the correction and the surrounding context for each word.</li>
<li>Weekly checks run on assigned weekdays rather than all at once.</li>
<li>Task lists show “In revisions” after a send-back instead of “Waiting on approval”.</li>
<li>Discovery reports carry real Google positions for their keywords and real dofollow referring domains.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The agent editor became a working surface: every change saves itself, the documents an agent reads are picked in order, each set of data it is handed is one compact row, and what starts it is labelled in plain words with a tooltip. The agent page shows a roster of active agents and a table of their work.</li>
<li>Changes collect. When a partner removes three plan items and then sends feedback, the agent sits down once with all four rather than four times, and an agent interrupted mid-work picks up where it left off, knowing what it already did, so nothing is done twice.</li>
<li>Switching an agent on never replays the past: anything it would have done before it was switched on is skipped, so enabling something old does not set off a month of catch-up.</li>
<li>The campaign review itself is now a plain scheduled agent, no different from any other, and a client comment can start an agent too.</li>
<li>The scripts that move our book of agencies onto the platform learned the shape of a real book, a matching script removes a partner the platform created cleanly, and the written procedure gained its last chapter.</li>
<li>Briefs became something the agent writes and reads, and two new tools arrived: everything one page ranks for, and anchor text profiles drawn from the search results a link plan targets.</li>
<li>Google Business posts are written by the agent, and the plan is assembled from them.</li>
<li>Who publishes a piece of content follows from the site connection first and the implementation setting second; there is no separate switch.</li>
<li>Our support inbox shows the client’s campaign beside the thread and can hand an email to the client’s agent with a staff steer.</li>
</ol>
<h3 id="5-moving-the-book">5. Moving the book</h3>
<p>A connection already made on the platform wins over an older one, the newest active agreement wins per campaign, deleted tasks are never resurrected, placeholder tasks stay out, and open link tasks for the current and future months land with the agent, each with its own due day.</p>]]></content:encoded></item><item><title>Live billing switches on, and every agent becomes a row you can edit</title><link>https://seobrothers.com/updates/2026-07-27-week/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-07-27-week/</guid><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate><description>Real billing went live on Monday, screenshots became task evidence, task requests and direct messages to the agent arrived, and Agent Builder v2 rebuilt the agent system so no agent lives in code.</description><content:encoded><![CDATA[<p>The week the platform stopped being a prototype. Real billing switched on Monday, and the agent system was rebuilt so that every agent is something staff can see and edit rather than something written into code.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Live billing switched on July 27. The platform also got a new mark, The Swell, a wave waterline, across the app.</li>
<li>Screenshots became evidence: every capture the agent takes is kept and can be pinned to a task, at capture time or later, and the client portal shows them on the task. Partners and staff can add and remove them too.</li>
<li>Partners can message the agent directly from the requests table, and the messages are kept as history.</li>
<li>Approved content is final: no new versions and no re-asks.</li>
<li>Task decisions reach the agent for team and provider tasks, and the task page shows the approval history and notes thread.</li>
<li>Google Business post items carry their published truth: the live Google link, or the moderation rejection if there was one.</li>
<li>Page monitoring shows checks rather than grades; the score gauge is gone.</li>
<li>Anything our team can see that a partner cannot wears an obvious amber Staff pill.</li>
<li>Team admins can change a member’s role after the fact, and members can be granted edit access to the agent’s guidance.</li>
<li>Website map became Keyword Mapping everywhere a client sees it, and discovery keyword tables tag each row with its market.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Agent Builder v2 landed between Thursday and Saturday. Every agent is now a row the team can edit: who it is, the documents it reads, the data it is handed, what starts it (a schedule, an event such as a matched meeting, or a task becoming ready), who can see it, and its history.</li>
<li>Staff can chat with an agent about work it has finished: ask what it was thinking, and optionally let it act, with a second AI model for a second opinion.</li>
<li>We wrote down the Copy Gate: four tests every new sentence of interface copy must pass before it ships, the default being silence. It is the reason the app says less than you might expect.</li>
<li>Approval requests work for every task kind, not only content.</li>
<li>Campaign requests notify the assigned staff, and no assigned staff raises an ops alert. Failures in profiling a new client, or in the crawler’s account, raise an alert too.</li>
<li>The agent learned to read the local map picture for a competitive review.</li>
</ol>
<h3 id="1-agent-builder-v2">1. Agent Builder v2</h3>
<p>What an agent knows going in is assembled per agent rather than from one fixed profile. Schedules are written per agent with per-campaign exceptions, and campaigns are reviewed daily while onboarding, then settle into weekly, monthly or twice-monthly rhythms. By Sunday no agent lived in code: if no row describes an agent, nothing happens, and staff can become any agent by name.</p>]]></content:encoded></item><item><title>The client portal goes anywhere, as one embeddable page and inside HighLevel</title><link>https://seobrothers.com/updates/2026-07-20-week/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-07-20-week/</guid><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate><description>The whole client portal became a single no-login page a partner can embed, arrived inside HighLevel, and reviewing work settled into one shape with explicit decisions and batched feedback.</description><content:encoded><![CDATA[<p>The theme this week was the client side: where the client portal can live, and how approving and reviewing work feels.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The whole client portal can now be embedded anywhere as one no-login page: overview and approvals, keyword mapping, plans, tasks, activity and reports, reached by a private per-client link the partner manages from the client’s Client Portal tab. Approvals and feedback work there exactly as they do for a logged-in client, with an optional email check for visitors.</li>
<li>The same portal is available inside HighLevel: agencies connect their HighLevel account, map sub-accounts to clients, and clients see their campaign (performance, plans, work feed, approvals, and a way to request a discovery) inside the CRM they already use.</li>
<li>Reviewing work got one shape: approve, request changes and decline are explicit choices, and feedback is a batch (highlight-to-comment on the piece, a notes list, one send-back). The decision lives in the sidebar, and approved content locks.</li>
<li>The approvals queue became a filterable table, grouped by section, with type and client filters on the all-clients view, and Google Business post items open as a full post: image, words, link and schedule.</li>
<li>The portal home became Overview, with a campaign intro the partner writes in their own words, and approvals got their own page.</li>
<li>Activity became the client’s work log, written in the partner’s voice (“your strategist”, never a robot), with plan approvals reading as alignment.</li>
<li>Campaign scope got a Configuration tab where each line’s client-facing wording can be overridden, and competitors moved onto the client’s Setup page.</li>
<li>Share pages wear the partner’s sidebar accent, discoveries and audits moved onto the shared data table, and team assignment on a client became a multi-select.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Which AI model an agent uses is chosen by our team, set per kind of task with a platform default behind it, so partners never pick or see one.</li>
<li>Staff can become the strategist for a campaign from the API: pull the same briefing the agent would get and work it by hand. Website tools joined the rest of the staff API, and the AI tools on a staff member’s own desktop can work the platform as them.</li>
<li>The scripts that move our book of agencies onto the platform learned its quirks: a live guest post lands as a closed link item, placeholder tasks are skipped, and everything brought across is attributed to our team rather than the partner’s.</li>
<li>Citations resolve a business’s category from its own data.</li>
<li>A platform-wide pause for rank alerts sits behind a staff switch for days when a data provider misbehaves.</li>
</ol>]]></content:encoded></item><item><title>Tideworthy gets its name, and the client portal gets its pages</title><link>https://seobrothers.com/updates/2026-07-13-week/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-07-13-week/</guid><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><description>The platform became Tideworthy, the client portal grew into a set of real pages with approvals inside it, reports learned to chart, and AI Visibility arrived.</description><content:encoded><![CDATA[<p>The product got its name this week, the client portal became a set of real pages, and reports learned to chart.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The platform became Tideworthy on Monday: new name across the app, a new mark, one official address, and email that sends from a Tideworthy account domain.</li>
<li>The client portal went from one plan page to a set of pages: Content, Link building, Google Business posts, Website map, Activity, Approvals and Reports.</li>
<li>Reporting grew charts, and Configure Report saves on every change.</li>
<li>On Saturday, AI Visibility arrived for discoveries and reporting: sampled mention rates for a client and its competitors across the major AI assistants, on location-pinned buyer prompts, reported as rates rather than a single day’s check.</li>
<li>A shield in the top bar holds two account-wide trust controls, pause all client communication and force safe mode across every campaign, with per-client safe mode underneath.</li>
<li>Partners choose per client who implements website changes, their own team or ours.</li>
<li>Google Business posts moved to a model where the plan is the written posts and the partner approves finished units, and citations became something the agent sets up and runs as recurring rounds.</li>
<li>Elsewhere: tasks got a page of their own with comments and inline editing, keyword mapping got a page-first view, planning stacks the soonest months on top, alerts read “All clear” when quiet, and a Help Center opened.</li>
</ol>
<h3 id="1-tideworthy">1. Tideworthy</h3>
<p>Partners send client email from a subdomain of their own domain, managed for them, instead of setting up their own email service. Branding settings split into Client Portal and Email Sending tabs, and a partner’s own logo replaces ours at the top of their sidebar.</p>
<h3 id="2-the-client-portal">2. The client portal</h3>
<p>Each page shows only when the partner turns it on and there is something to show. Clients approve plans and content from the portal itself, not only from an emailed link, and pending decisions lead their dashboard. Client comments with mentions arrived, with an inbox on the client workspace.</p>
<h3 id="3-reporting-charts">3. Reporting charts</h3>
<p>The charts are six-month monthly trends with the year prior overlaid, stat cards with sparklines, a crawl score gauge, crawl history as a stacked bar by severity, keyword tables split into Priority and Other, and a Link Profile section.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>What sets an agent going is now something the team edits rather than code: each agent has a written list of what starts it (a critical alert, a finished gap review, a partner message, a schedule), each with its own instructions and background, editable from an admin page. Its skills are documents too.</li>
<li>Agent Labs keeps a replayable record of everything an agent did and lets staff fix an instruction side by side with the work that exposed the problem.</li>
<li>An agent working a task can now pause, wait for rankings to arrive, and pick up where it left off knowing everything it already knew, so research, waiting and mapping happen in one head.</li>
<li>Moving our book of agencies onto the platform began on Wednesday: a partner-by-partner script carries clients, keywords with rank history, tasks, notes, locations, Business Profiles, competitors, Google connections and past discoveries, then each agreement onto the new scope model. A written procedure lets anyone on the team move a partner.</li>
<li>A Monday retrospective reviews shipped work on two horizons, a two-week pulse for harm and a month for verdicts, so the week’s plan acts on findings the same morning.</li>
<li>A shared Task Queue pools implementation work for specialists, and a task can only ever be picked up by one person.</li>
<li>A public API opened for staff.</li>
</ol>]]></content:encoded></item><item><title>The first line of the platform's code is written</title><link>https://seobrothers.com/updates/2026-07-06-week/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-07-06-week/</guid><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><description>The platform began on July 6. Its first week put accounts, clients, monitoring, keyword tracking, reporting, planning, approvals and a daily campaign agent in place, carrying over tooling already built in Workbench and the Portal.</description><content:encoded><![CDATA[<p>On Monday, July 6, the first line of the platform’s code was written. The week that followed laid down accounts, clients, campaigns, monitoring, keyword tracking, reporting, planning, approvals and an agent that worked each campaign every day, much of it carried over from tooling we had already built in Workbench and the Portal. Nobody outside the team had logged in yet.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Planning arrived on Friday: a plan is a container of work items by month, and a partner can approve it, remove items, and leave feedback that travels with the plan’s history. Saturday added a top-level approvals queue with shareable review pages, a My Work view, and per-type controls over what clients are asked to approve.</li>
<li>Reporting started as a first view on Tuesday, gained Google Ads and call tracking connections with their own reporting sections on Thursday, and by Friday had PDF export, a saved history, scheduled monthly delivery with a per-campaign day of month and recipient list, and a configurable cover page. Clients could download delivered reports from their portal.</li>
<li>Clients and campaigns, locations, and keyword tracking with a keyword research page landed on Tuesday. On Wednesday clients got their own logins, with a roster of who receives notifications, and a business lookup that identifies a client from its name and address.</li>
<li>The shell went up on Monday: sign-up with email verification, a workspace layout, a notification bell, and the first monitoring and prospects screens. Over Tuesday and Wednesday it gained an onboarding flow and checklist, branding and organization settings, and white-label domains so the app could sit on an agency’s own address.</li>
<li>Competitive Gap Analysis arrived on Thursday: a head-to-head review of a client against up to three competitors, on full crawls.</li>
<li>Saturday added Discoveries, a sales deliverable for prospects with a branded share page.</li>
<li>Website connections widened beyond WordPress to Webflow and Shopify.</li>
<li>The week closed with a decision about launch focus: monitoring, reporting and the SEO agent first, everything else held back as beta.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The campaign agent appeared on Wednesday and had its shape by Friday. Each campaign is assigned a profile (local business, multi-location, ecommerce) with an ordered set of phases, and each phase has a playbook.</li>
<li>Two guardrails landed early. Safe mode covers every plan, not only website-touching work, and the agent never works on client sites on a Saturday or Sunday: no agent should touch a site when no human is around to help.</li>
<li>Approvals were centralized into one policy and one list of requests, so anything that asks a partner for a decision works the same way.</li>
<li>The WordPress connector learned to insert internal links and list a page’s links, the first building block for internal-linking work. Citations tooling started the same day.</li>
</ol>
<h3 id="1-the-campaign-agent">1. The campaign agent</h3>
<p>The agent’s identity, skills and playbooks live as editable documents rather than code, so the team can sharpen how it works without a release. When the agent hands a task to a helper, the instructions for it travel with the task, so nothing depends on anyone remembering to attach them. Plan history follows the full chain of revisions, and skills got version history on Sunday.</p>]]></content:encoded></item><item><title>Campaign reports, monitoring, and notifications you can tune</title><link>https://seobrothers.com/updates/2026-06-reports-monitoring-and-notifications-you-can-tune/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-06-reports-monitoring-and-notifications-you-can-tune/</guid><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><description>June 2026 into the first days of July. Campaign reporting and monitoring arrived, tasks and initiatives became visible to partners, blog posts learned to link, and citations were reorganised around locations.</description><content:encoded><![CDATA[<p>June closed the Workbench era. Before the first line of the platform’s code was written on July 6, Workbench gained the two things a campaign had never had in one place: a report on what happened and a watch on what might go wrong.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Tasks appeared in the Portal on the 9th: each campaign has an SEO task list, and task approvals sit with the rest. A task’s share page was redesigned with the month it belongs to, a link to the campaign, a deliverables tab, and comments that reach the manager and the people assigned.</li>
<li>Initiatives followed on the 11th: a campaign’s work grouped by the thing it is trying to achieve, each with its own shared page, notes and reactions, and approvals grouped the same way.</li>
<li>A reporting page arrived per campaign on the 30th, drawing on the same data the team sees.</li>
<li>From the 23rd an agency chooses its notifications: which kinds, by email or to a webhook, with a test send. On July 2 communication settings gained a campaign-level fallback and show who at the agency is assigned to what.</li>
<li>Content plan rows show status indicators and a note count, and approving a content idea is a cleaner step.</li>
<li>Offboarding campaigns stay visible under their own tab rather than disappearing, and organisation settings got their own page.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Reporting arrived on the 29th and 30th: a report per campaign with period comparison across keywords, Business Profile, website analytics, crawl health and work delivered. Analytics connected once verification cleared.</li>
<li>Monitoring went live over the same days into July 3: checks on the homepage, the domain, the Business Profile and the crawl, raising alerts with an owner into a work queue.</li>
<li>Blog posts learned to link on the 9th. Before this, a person added the links.</li>
<li>Citations were reorganised around locations. Every citation now belongs to a specific location.</li>
<li>Three tools went up: an AI rank checker that tracks where a client appears in AI answers across several domains, a site auditor with a technical audit that does not need a full crawl, and a Business Profile auditor with reviews.</li>
<li>Initiatives arrived internally on the 5th with time tracking and reviews attached. Keyword mapping followed from the 18th, keywords mapped to the pages that should rank for them and linked to the content that targets them, with the crawl folded in, and campaign keyword research came on the 23rd.</li>
<li>Business Profile posts were tightened after a sweep of every post written so far: they had been landing at the bottom of the length band, so the target moved up, and images the platform rejects are filtered before upload.</li>
<li>One notification service took over sending from the 23rd: every notice goes through it, grouped, slowed when the email provider asks, and each email is built from the record of what happened.</li>
</ol>
<h3 id="3-blog-posts-learn-to-link">3. Blog posts learn to link</h3>
<p>The writer is handed an inventory of the client’s live pages and previously published pieces, ranked by relevance to the post with a preference for the pages that make money, and scales how many it links to the length of the piece. External links are checked live and dropped if dead. Anything the writer invents, or that points at a staging copy of the site, is stripped before the draft is saved.</p>
<h3 id="4-citations-by-location">4. Citations by location</h3>
<p>The provider’s pre-order scan is imported and each listing scored field by field against the source of truth. Walled directories get a manual verification. Multi-location campaigns see the table grouped by location. Service-area businesses with no public address can be ordered too.</p>]]></content:encoded></item><item><title>Geo pages learn to use local data</title><link>https://seobrothers.com/updates/2026-05-geo-pages-learn-to-use-local-data/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-05-geo-pages-learn-to-use-local-data/</guid><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate><description>May 2026. The writing agents were tuned on partner feedback (shorter commercial pages, no bolded keywords, no filler sections), geo pages gained researched local data blocks, and campaigns got monitoring and search data connections.</description><content:encoded><![CDATA[<p>May was the month the writers got edited. The agents built in April had been producing pages for a few weeks, partners had read them, and the feedback was specific enough to act on.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Approvals moved onto the dashboard on the 4th, so what is waiting for you is the first thing you see.</li>
<li>On the 11th the approvals page and the plan pages were made to agree: an idea counts as approved when you approved it, not when the team happened to move it forward, and a post without a planned month no longer appears as if it needs a decision.</li>
<li>The shared plan page reads your branding live, so a logo change shows the next time the link is opened.</li>
<li>Webhooks can be tested with a sample message from the settings page.</li>
<li>Discovery filters remember themselves, and text areas grow as you type.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Geo pages, the city-by-city pages a local business needs, started using researched local data at the end of the month: demographics, housing, market segments, competitor density, each figure cited to a source and never invented.</li>
<li>On the 1st we lowered the length floors. A partner pointed out that their April geo pages ran well past the length of the rest of their site, which does not fit the site and reads as stuffing.</li>
<li>On the 12th, three more rules across all seven writers: no bolding the keyword (optimisation should be invisible to the reader), no closing section that names cities or services the page does not target, and nothing carried over from the client’s site that is not prose (no embeds, forms, images or widgets scraped from the homepage). Each rule got a matching check in the review step.</li>
<li>Campaign monitoring started running on the 19th. Search Console joined Business Profile as a connection a campaign can make on the 22nd; Analytics followed once verification cleared in June.</li>
<li>Business Profile posts fall back to a stock image when the client’s site has none we can use. A sitemap and robots review became a workflow on the 11th, and a Business Profile review on the 14th.</li>
<li>Each campaign got a work page, the dashboard was redone, and tasks and campaigns became usable on a phone.</li>
<li>The ops dashboard gained a campaign planning page and started showing content pieces, not tasks, in its bottleneck views.</li>
</ol>
<h3 id="1-local-data-in-geo-pages">1. Local data in geo pages</h3>
<p>The first attempt on the 26th added a data block to a finished page, and it read as bolted on because the prose had not been written knowing the data was coming. On the 28th we rebuilt it so the research happens first and the writer gets a small library of blocks (a comparison chart, a stat row, a callout) to place inside the narrative, with a setup paragraph before each and a bridge after. The palette takes its anchor from the client’s own brand colour, read from their site. Pages in the same campaign also stopped converging on each other: the writer now reads what the prior pages covered, commits to distinct angles before drafting, and keeps the heading pattern consistent while the body diverges.</p>
<h3 id="2-length-floors">2. Length floors</h3>
<p>The geo page writer had carried a floor meant for blog posts. It now matches the length of the client’s existing pages and falls back to roughly eight hundred words, and the service, location and ecommerce category writers got the same treatment. An explicit instruction against padding went into all four.</p>]]></content:encoded></item><item><title>An agent for every page type</title><link>https://seobrothers.com/updates/2026-04-an-agent-for-every-page-type/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-04-an-agent-for-every-page-type/</guid><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><description>Late April 2026. Writing agents for geo, blog, service, location, expanded and ecommerce pages, a Business Profile post writer, citation ordering end to end, and a personal assistant with shared memory for every member of the team.</description><content:encoded><![CDATA[<p>If the first half of April was about what partners see, the second half was about who does the writing. By the 30th there was a writing agent for every kind of page we produce, and every person on the team had an assistant of their own.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The approvals page in the Portal was rebuilt and went live on the 30th. Approvals are grouped by campaign, each carries a due date, and a row opens where you would expect it to.</li>
<li>Business Profile posts got their own page in the Portal on the 23rd, with the same approve and reject as content ideas.</li>
<li>The shared plan page shows scope against planned month by month, and carries your branding.</li>
<li>The plan pages show how many notes a row has, and a monthly plan can be configured per campaign.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The content-writing agent split into specialists. Geo pages and blog posts on the 22nd; service pages, location pages, expansions of existing pages, and ecommerce product and category pages on the 27th.</li>
<li>The team got assistants. From the 20th every member of the team had a personal assistant, with their own instructions, an “about me” section they maintain, and shared memory they can add to and recall from.</li>
<li>Citation ordering went end to end on the 27th.</li>
<li>A Business Profile post writer followed on the 30th, and a page speed audit that runs as a workflow on the 28th.</li>
<li>An ops dashboard went up alongside Workbench between the 20th and the 30th, reading the same data. An HR directory with document storage sits beside it.</li>
<li>Keyword rankings began refreshing on a schedule, and project management tasks are created on their own. Content got an approved status distinct from published, a copy-share-link button, and a publisher assigned automatically.</li>
</ol>
<h3 id="1-specialist-writers">1. Specialist writers</h3>
<p>Each reads the client’s own site for voice and structure, reads the prior approved pages in the campaign so a new one fits alongside them, drafts, reviews its own draft against a checklist, scores it against optimisation targets, and saves a version for the team to read. The distinction matters because a service page and a blog post fail in different ways, and one prompt had been trying to avoid both.</p>
<h3 id="2-team-assistants">2. Team assistants</h3>
<p>Each comes with a set of team tools: place search for finding a business’s Google presence, site scraping and mapping, web search, spreadsheets, and historical keyword metrics. A knowledge base joined on the 23rd, and admins got the same assistant in the Workbench sidebar. Bulk task creation and task tools followed. This is the ancestor of the staff-side agents in the platform.</p>
<h3 id="3-citation-ordering">3. Citation ordering</h3>
<p>Locations are linked from the campaign, the business category is matched from the client’s Business Profile, a description is written when the profile has none, the aggregators nobody wants are off by default, and confirming an order starts submissions immediately. The scan the provider runs before an order is imported so we know what already exists.</p>
<h3 id="5-the-ops-dashboard">5. The ops dashboard</h3>
<p>It has a resourcing view with task previews and threaded comments, carry-over of overdue tasks so they do not vanish at month end, a monthly pace that counts weekdays rather than days, planning grouped by partner with on-track campaigns collapsed, a content view, and drill-downs that match the numbers on the bars.</p>]]></content:encoded></item><item><title>A shared plan page replaces the spreadsheet</title><link>https://seobrothers.com/updates/2026-04-a-shared-plan-page-replaces-the-spreadsheet/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-04-a-shared-plan-page-replaces-the-spreadsheet/</guid><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><description>The first half of April 2026. The campaign plan a partner sees became a live page on a link, on the agency's own domain if they wanted, and the Portal's monthly grid, focus pages and task views followed.</description><content:encoded><![CDATA[<p>Workbench and the Portal had been the beginning of the end for bulk spreadsheets. The end itself came in the first two weeks of April 2026. The monthly plan an agency received had been a Google Sheet. On the 14th the link that used to open that sheet opened a page.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The campaign plan became a shared page. One link, no login, generated live from Workbench, showing the plan by month with what is in scope against what is planned, and the client’s locations on cards.</li>
<li>Inside the Portal, planning was rebuilt around the same model on the 16th: a monthly plan grid, location focus and page focus plans, Business Profile and SEO tasks, citations, content recommendations, and an approval banner where something needs a decision.</li>
<li>Onboarding a campaign became a three-tab form, and a campaign can be onboarded straight from a package.</li>
<li>Webhooks appeared on the 7th, so an agency’s other systems can be told when something happens rather than someone checking.</li>
<li>A pending scope change now shows in the first full month after onboarding, where before it only showed the button to request it.</li>
</ol>
<h3 id="1-the-shared-plan-page">1. The shared plan page</h3>
<p>On the 2nd the Portal’s own plan management screens, the tabs, status cells and reject buttons built over the winter, were removed in favour of that link. Agencies who wanted the page on their own domain could have it there from the 7th.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The page optimisation work, where a specialist decides which of a client’s pages get attention in which month, became a rolling twelve-month grid on the 13th.</li>
<li>Citations were rebuilt around our citation provider between the 7th and 8th.</li>
<li>Content assets gained a published URL you can set from the table, a card for the images that go with a post, and a card for content instructions. Publishers stopped seeing a piece in My Tasks until it was approved, and reviewers got an internal review step before a draft goes to the partner.</li>
<li>A campaign got a work log, an SEO report, and a planning route that classifies every task by type. Onboarding and discovery became workflows in their own right on the 14th.</li>
<li>Workbench got a company documents section with a viewer role for people who should read but not edit, and the leadership meeting moved into Workbench too: issues and opportunities with categories and owners, follow-up tasks, and a schedule.</li>
<li>The agent in the sidebar became a conversation you can pick up on any page, and its history is kept.</li>
<li>A location can be marked inactive without deleting it, so its history stays.</li>
</ol>
<h3 id="1-the-page-optimisation-grid">1. The page optimisation grid</h3>
<p>Pages are rows, months are columns, a checkbox assigns a page to a month and the task behind it is created or updated without anyone opening it. Completed months show a check that cannot be undone.</p>
<h3 id="2-citations-rebuilt">2. Citations rebuilt</h3>
<p>There is a single card for connection, scan and orders, locations are created from the client’s Business Profile so the name, phone and category are right first time, and the status says plainly when nothing is connected yet.</p>
<h3 id="4-work-log-report-and-workflows">4. Work log, report and workflows</h3>
<p>Some deliverables were still landing in spreadsheets in early April, and for those Workbench wrote the sheet directly. Portal events started reaching the team on their own: the first tells the sales channel when an agency onboards.</p>]]></content:encoded></item><item><title>Plans become tasks</title><link>https://seobrothers.com/updates/2026-03-plans-become-tasks/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-03-plans-become-tasks/</guid><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><description>March 2026. The separate plan record was folded into tasks, content-writing agents could be launched across many campaigns at once, and every partner got an agent of its own inside Workbench.</description><content:encoded><![CDATA[<p>March was a month of structure more than surface. The plan item, a separate record since Workbench began, stopped existing. And the agents stopped being ours alone.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The Portal gained an active conversations list, with actions available from it, so an agency with several threads open can work them from one place.</li>
<li>When requesting a discovery you are asked which of your team should be involved.</li>
<li>Discoveries no longer clutter the campaign list unless you ask for them.</li>
<li>Meetings can be recorded against a partner.</li>
<li>Files attached to a campaign are stored properly and open where you expect.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The largest change of the month was partner-scoped agents. On the 21st each partner got an agent of its own inside Workbench, reading only that partner’s campaigns.</li>
<li>On March 9 plan items became tasks. A task carries a planned status and a planned month, and the plan is a view of tasks.</li>
<li>The content-writing agent could now be launched in bulk: pick a partner, a planned month and a content type, and the agent drafts for every matching campaign.</li>
<li>Link planning got sharper instructions that only mention the months that need planning, delivery filtering, automatic planning, and a delivery rollup showing what was delivered against what was planned. Content planning and Business Profile planning got the same treatment on the 25th and 26th, and a content writing pass on the 27th.</li>
<li>Content tasks were consolidated into three views, Active, Publishing and Completed, and “due this week” started meaning the calendar week, which is what people meant when they said it.</li>
<li>Delegation arrived: a task can be handed to someone else with the context intact. An all-tasks view with custom saved views, a specialist tab, and clearer overdue indication rounded out the task work.</li>
<li>In the Portal’s shared inbox, conversations now suggest which partner they belong to by matching the email addresses, so linking a thread became a confirmation rather than a search.</li>
<li>The campaign links page gained a draft status and a comparison against scope, and page speed results can be pulled into the audit from a button.</li>
</ol>
<h3 id="1-partner-scoped-agents">1. Partner-scoped agents</h3>
<p>Each has its own instructions, its own tools, its own memory and history. By the 24th they were in the sidebar on the partner pages and the team could prompt several at once. The earlier agents had known everything about every client; these know one agency well.</p>
<h3 id="2-plan-items-become-tasks">2. Plan items become tasks</h3>
<p>A plan item had been a row a partner approved, and a task had been the work that followed; keeping them in sync had been a job of its own. The Portal’s plan pages were rewired underneath to read from tasks rather than plan items, deliberately so that a partner would not notice. The edit dialogs in the plan views became slide-out sheets: instructions, planning notes, content details, link pairs. On the 20th the old plans route was removed. An unplanned task, we decided, is not a task at all.</p>
<h3 id="3-bulk-content-writing">3. Bulk content writing</h3>
<p>Each campaign row shows whether its last draft is under way, done or failed. Two more content agents joined on the 16th. Business Profile posts moved onto the same task model as content and links, with hover previews of the post, the offer dates and the call to action, and by the 22nd they no longer needed a planning step of their own.</p>]]></content:encoded></item><item><title>One catalogue for packages and scope</title><link>https://seobrothers.com/updates/2026-02-one-catalogue-for-packages-and-scope/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-02-one-catalogue-for-packages-and-scope/</guid><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate><description>Late February 2026. Packages and scope items were rebuilt as one catalogue that Workbench and the Portal both read from, a campaign strategist agent arrived, and discoveries got a proper workspace.</description><content:encoded><![CDATA[<p>The back half of February was about definitions. What is in a package, what a partner’s version of it looks like, and what the client sees written on the line. Until now those three had three answers.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Packages became something you could see and choose in the Portal. Each package can be shown or hidden per partner, and a one-time project can be bought as a package, creating the campaign on submission.</li>
<li>Conversations in the Portal were reworked to be readable: closed threads hidden by default, priority shown in the list and in the thread, the last participant named, email addresses on hover. You can set a conversation’s urgency yourself.</li>
<li>The content table shows the published URL once a piece is live, campaign lists only show current assignments, and plans are organised by the month they are planned for rather than by start and end dates, which is how the team had been thinking about them anyway.</li>
</ol>
<h3 id="1-packages-and-scope">1. Packages and scope</h3>
<p>Your scope shows an included column, and where your agreement differs from the standard package, the difference is recorded against you rather than edited into the catalogue. From the 28th you can edit the wording of a scope item as your client sees it, so the line reads in your language.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The catalogue was rebuilt on the 20th and 21st. Packages, scope items, roles, frequency (ongoing or one-time), meeting tasks and partner overrides all ended up in one structure.</li>
<li>A campaign strategist agent arrived on the 17th, with new rules for when agents start work. Where the planner drafts a month, the strategist reads the whole campaign.</li>
<li>Discoveries were broken out of one long page into sections, with a partner preview link and a client view link. The discovery is the first thing a prospect’s agency sees from us and it now looked like it.</li>
<li>Content writing moved into a dedicated workflow on the 25th and 26th: a brief first, then the draft, then time for optimisation scoring before it comes back.</li>
<li>Tasks got estimated time, inline creation from a campaign’s task page, and a way to be marked as excluded from the work log when they should not count against a client’s month.</li>
<li>Onboarding got a view of its own and an action to send a task back for realignment when the intake and the scope disagree. A change log appeared in Workbench so the team could see what changed in the tool that week without asking.</li>
<li>Notifications became real links that open the task in a new window, and a campaign plan report went into ops so a manager can see every campaign’s plan state on one page.</li>
</ol>
<h3 id="1-the-catalogue">1. The catalogue</h3>
<p>The SEO plan’s task types were cut down to three that mean something to a client: local, on-page and technical. Planned start and end dates went; a planned month replaced them. The unused version history on task templates was removed while we were in there.</p>
<h3 id="3-discoveries-in-sections">3. Discoveries in sections</h3>
<p>The sections are details, summary, keywords, audit, local, competitive, supporting data and proposal, with the keyword research agent sitting in the sidebar.</p>
<h3 id="5-tasks">5. Tasks</h3>
<p>Estimated time comes with an optional upper limit when work is pushed to fulfilment, an estimate on SEO tasks, and a column for the content publishing schedule. Everyone shows up in the assignee picker, campaign members first.</p>]]></content:encoded></item><item><title>Content review moves to a shared link</title><link>https://seobrothers.com/updates/2026-02-content-review-moves-to-a-shared-link/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-02-content-review-moves-to-a-shared-link/</guid><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate><description>Early February 2026. Written content got a feedback loop that partners used from a link, Workbench gained a library of playbooks, and the first content-writing agent drafted its first pages.</description><content:encoded><![CDATA[<p>February opened with content. Drafts had been documents passed around by link and email, and feedback lived wherever the reply happened to land. By the 15th a draft had one page, one feedback thread, and one approve button.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>A piece of content now has a share page. Open the link, read the draft, leave feedback inline, and approve it there when it is right.</li>
<li>The campaign plan gained a share link from the Portal on the 12th, so an agency could forward the plan to a client without giving them a login.</li>
<li>Smaller things: the Portal works on a phone now, with a proper sidebar menu, and a loading bar shows when a page is slow to arrive. The dashboard shows discoveries from the last thirty days rather than all of them, and new team members are no longer added to every campaign by default; you add them to the ones they need.</li>
</ol>
<h3 id="1-the-content-share-page">1. The content share page</h3>
<p>Every note is counted and kept with the draft. From the 12th the Portal’s plan pages pointed content approvals at that page instead of asking for approval in the plan table, and each plan row gained a notes column that opens the activity around it. Rejecting a plan item became a status you choose rather than a click you cannot take back. Completed deliverables got their own pages, and when a piece was ready for review the row linked straight to the document.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The share page was the visible end of a rebuild of content assets, and two people editing the same draft can no longer overwrite each other.</li>
<li>The first content-writing agent ran on February 6. Given a planned piece and a campaign, it drafts the content.</li>
<li>Workbench got a library. Standard operating procedures and playbooks that had been scattered documents moved into it on the 9th and 10th.</li>
<li>Spreadsheets did not die this month. On the 12th we built the opposite: Workbench could push a campaign’s plan into the deliverable spreadsheet template a partner already received, filling the tab a person used to fill.</li>
<li>Notifications were overhauled: they open where the work is, mark themselves read when you act, and clearing them no longer loses the ones underneath. My Tasks split by type, and a manager can see another person’s task list.</li>
<li>A discovery keyword research agent arrived on the 12th, analysing the search results for a prospect’s terms as a step in the discovery.</li>
</ol>
<h3 id="1-content-assets-rebuilt">1. Content assets rebuilt</h3>
<p>Drafts got revisions, drag-and-drop uploads, images pasted straight into comments, and PDFs and other attachments inline. Screen recordings embed in a draft’s notes. A draft can be published from the same page it was written on.</p>
<h3 id="2-the-first-content-writing-agent">2. The first content-writing agent</h3>
<p>The prompts it works from were rewritten that week as the team read the output. It reads the client’s own homepage before it writes, so the voice starts from theirs rather than ours.</p>
<h3 id="3-a-library">3. A library</h3>
<p>It has at-mentions, image uploads, labels, and pages per business function that can be reordered by hand. The point was less the documents than where the team looks when a question comes up.</p>
<h3 id="4-plans-into-spreadsheets">4. Plans into spreadsheets</h3>
<p>The spreadsheet was still the delivery format; the work of producing it stopped being a person’s job. The replacement came in April.</p>]]></content:encoded></item><item><title>Link building comes inside Workbench</title><link>https://seobrothers.com/updates/2026-01-link-building-comes-inside/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-01-link-building-comes-inside/</guid><pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate><description>Late January 2026. The link building tooling moved into Workbench, every campaign got a scope catalogue, and the first shareable campaign plan pages went out.</description><content:encoded><![CDATA[<p>The second half of January had two threads. One was pulling the last outside tool, our link building system, into Workbench. The other was deciding, in data rather than in someone’s head, what a campaign actually includes.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>The first shareable campaign plan pages appeared on the 29th: a link, no login, showing a campaign’s plan the way the team saw it.</li>
<li>Discoveries changed hands faster. When the team finished an audit, the delivery email went out from the Portal itself and the campaign’s status updated in the same motion, rather than someone writing the email and someone else updating the record.</li>
<li>The Portal gained a Team page listing the people at the agency who have access to the account, and new agencies were asked to complete their profile before going further.</li>
<li>Partners with billing access could settle their own invoices from the Portal at the end of the month.</li>
<li>Campaign lists could be filtered by the client’s URL, and buttons that do something irreversible now ask first.</li>
</ol>
<h3 id="1-shareable-plan-pages">1. Shareable plan pages</h3>
<p>They were rough and they were mostly sent by hand. They were also the start of the thing that would replace the spreadsheet in April.</p>
<h3 id="2-discoveries-change-hands">2. Discoveries change hands</h3>
<p>The packages page and the launch form, the place a partner starts a campaign from a discovery, were tidied: a start date, a proper confirmation, and no launch without a selection.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The link building tool had lived in its own application since 2025. By the end of the month it had come inside Workbench: the sites, the servers, the plugins, the networks, the issues list.</li>
<li>Scope items arrived on the 28th. Until then, what a campaign included was a package name and whatever the manager remembered.</li>
<li>On the 23rd campaigns got onboarding and offboarding workflows: when a campaign starts, the first month’s tasks are created; when it ends, the close-out tasks are. Routine tasks started being added to the queue without anyone creating them.</li>
<li>Assignments were reworked so a manager could assign specialists to campaigns in bulk, with notifications going out on assignment, and content got its own views in Workbench.</li>
<li>The page for walking campaigns out of ClickUp saw its last real use in the final week of the month, sorted by what was not yet complete until nothing was.</li>
</ol>
<h3 id="1-link-building-comes-inside">1. Link building comes inside</h3>
<p>Managing the servers moved inside with it, so a specialist could fix a site without leaving the page they were on. Link tasks started running as an automated workflow on the 23rd, and link reporting followed on the 25th. Terminated sites dropped out of the lists so nobody would build on one by mistake.</p>
<h3 id="2-scope-items">2. Scope items</h3>
<p>Now each campaign carries a catalogue of items with quantities, packages are built from the same items, and a partner’s own variations are recorded against it. Tasks were classified by type at the same time, and the SEO work split into on-site, on-page and technical queues. This is dry work and it is the foundation for everything that compares planned against delivered later in the year.</p>
<h3 id="4-assignments-and-content-views">4. Assignments and content views</h3>
<p>The content views are content tasks, content campaigns, a team resourcing page, a new-content task route, editable content types and templates, and a proper rich text editor. Content optimisation scoring was integrated on the 28th. Discoveries could be downloaded as a CSV.</p>]]></content:encoded></item><item><title>Workbench takes over from ClickUp</title><link>https://seobrothers.com/updates/2026-01-workbench-takes-over-from-clickup/</link><guid isPermaLink="true">https://seobrothers.com/updates/2026-01-workbench-takes-over-from-clickup/</guid><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate><description>The first half of January 2026. The last of the campaign record left ClickUp for Workbench, and the first internal agents started working on it.</description><content:encoded><![CDATA[<p>January 2026 was the month the team stopped living in two places. Campaigns had been moving into Workbench since November; in the first two weeks of the year the rest of the record followed, and the first agents went to work on it.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>Little moved on the surface of the Portal in the first half of January. The discovery lists, where a partner watches a requested audit go from requested to delivered, gained sorting that held across pages and a status filter, so an agency with several in flight could find the one they wanted.</p>
<p>Everything else that month was underneath.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The end of ClickUp came in two steps. A first group of campaigns had moved into Workbench in November; what remained in January was the history, years of task comments, attachments and notes that the team still opened ClickUp to read.</li>
<li>The agents went to work. On January 6 the three agents Workbench had held since late December became something the team could actually run.</li>
<li>On the 9th the agents got their first real tools: they could read a client website’s page inventory and update it, setting a page’s type, its anchor keyword and whether we monitor it. That sounds small; it is the difference between an agent that talks about a plan and one that can act on the record.</li>
<li>Underneath the agents, the plan itself changed shape. A plan item, the unit of work a partner approves, now turned into a task with steps on its own, and finishing the task marked the plan item done without anyone touching it.</li>
</ol>
<h3 id="1-the-end-of-clickup">1. The end of ClickUp</h3>
<p>We moved the comments across on the 13th, the rest of the data on the 16th, and put a page in Workbench the same day so each remaining campaign could be walked across and its notes synced by hand, one at a time, with a checklist. That page stayed busy until the last week of the month. After that there was no reason to open the old tool.</p>
<h3 id="2-the-agents-go-to-work">2. The agents go to work</h3>
<p>The three were a campaign chat you could ask about any client, an SEO planner that drafted the month’s on-site work, and a link planner. Every agent run got a name and a manager, a person responsible for reading what it produced. Feedback on a run could be filed against that run or against the agent as a whole, so a correction made once applied to every campaign. The team got push notifications, on their phones if they wanted, when an agent finished or a task was assigned.</p>
<h3 id="4-the-plan-changes-shape">4. The plan changes shape</h3>
<p>Bulk planning let a manager lay out several months of items for a campaign at once. Locations became a first-class part of a campaign, which matters most for multi-location clients. And a discovery, the audit we run when an agency brings us a prospect, started running as a sequence of automated steps rather than a checklist someone remembered.</p>
<p>None of this was polished. But by the 18th a campaign lived in one place, its history came with it, and three agents could read it.</p>]]></content:encoded></item><item><title>The first agents run inside Workbench</title><link>https://seobrothers.com/updates/2025-12-first-agents/</link><guid isPermaLink="true">https://seobrothers.com/updates/2025-12-first-agents/</guid><pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate><description>December 2025 in Workbench: the discovery report became a Workbench deliverable with its own crawler and local scans, the first agents were defined and run under a staff member's eye, planning agents began writing plan items, and a plugin connected client sites.</description><content:encoded><![CDATA[<p>December 2025 is the month the discovery report became a thing Workbench produces end to end, and the month the first agents ran. The work that later became visible to partners started here, out of sight.</p>
<h2 id="for-our-partners">For our partners</h2>
<p>Two things reached partners. From December 7 a discovery produced in Workbench is sent back to the Portal and shared as a report, with a slide deck and a presentation view built from the same data, and from December 18 the report includes a competitive matrix. From December 2 a proposal can be shared by link, so a partner reads the current version rather than an attachment.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The first agents were defined on December 4 and 5. Two to begin with: a campaign planner, which reads what we know about a partner’s client and drafts a campaign plan, and a content planner, which turns keyword research and campaign goals into a content plan.</li>
<li>The discovery deliverable was built end to end. By December 11 a discovery could be worked start to finish in Workbench: request in from the Portal, crawl, keywords, local scan, competitive review, summary, proposal, share link out.</li>
<li>On December 23 two planning agents, one for links and one for SEO work, were given the ability to create, update and schedule plan items directly. A plan item is what becomes a task, so this was the first time an agent’s output went into the same queue our specialists work from, with the same lifecycle and the same notes.</li>
<li>On December 20 Workbench got real-time notifications and an internal chat, and on December 22 you could see who else was looking at the same page.</li>
<li>On December 24 a small plugin for client sites let a site be linked to its campaign in Workbench, and keywords, competitors and locations per campaign followed between December 27 and 31. Both were groundwork for agents that act on a site rather than only write about it.</li>
</ol>
<h3 id="1-the-first-agents">1. The first agents</h3>
<p>Each agent has a description of its job, a fixed set of things it is allowed to do, and a chat where a staff member watches the run, reads the output and sends it back with feedback. Agents keep their own run history and can read the feedback on earlier runs, so a correction is not lost the next time.</p>
<p>A content researcher followed on December 9, and a discovery agent on December 11 and 14 that reads the crawl, keywords and scan data and writes the summary and proposal sections a person then edits. On December 13 agents became instances: one per partner, campaign or employee, each with a record of its runs, first-time approvals and rounds of feedback. We wanted the agents measurable from the start, not after.</p>
<p>The agents in December 2025 were watched constantly, corrected often, and used by a handful of people. The pattern we still use was set then: an agent drafts, a person reviews, the review feeds the next run, and the results are counted.</p>
<h3 id="2-the-discovery-deliverable">2. The discovery deliverable</h3>
<p>On December 3 Workbench got its own site crawler, and the discovery gained an audit built from the crawl, a local section built from the prospect’s Business Profile and local rank scans, and a competitive section built from nearby businesses in the same category. A proposal editor with a live document view had arrived on December 1.</p>]]></content:encoded></item><item><title>Billing arrives in the Portal</title><link>https://seobrothers.com/updates/2025-12-billing-arrives/</link><guid isPermaLink="true">https://seobrothers.com/updates/2025-12-billing-arrives/</guid><pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate><description>On December 4, 2025 the billing build that started in September landed: invoices, statements, receipts, payment methods and autopay in the Portal. In the same weeks discovery editing and tasks left the Portal for Workbench, and campaign scope became a timeline.</description><content:encoded><![CDATA[<p>December 2025 in the Portal is two stories. The first is billing, which had been under construction since September 19 and landed on December 4. The second is the Portal shedding work that belonged in Workbench, so that by the end of the month the Portal was the partner’s window and Workbench was the workshop.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Billing. From December 4 a partner with billing access has a Billing section in the Portal: invoices with their status, a statement, receipts, payment methods on file with a default card, and autopay.</li>
<li>Scope became a timeline on December 19: a campaign’s details page shows what the campaign includes quarter by quarter, and a proposed change appears as proposed, without moving anything, until it is approved. Campaign rules, the standing instructions our team follows for a campaign, got their own form the same day.</li>
<li>Approval requirements replaced the old permission settings on December 11. For each campaign a partner can say which kinds of work need their sign-off before it goes out and which do not.</li>
<li>Campaigns show their agreement. From December 10 a campaign’s page shows the billing agreement behind it, and from December 11 a partner can see all of their agreements in one place.</li>
<li>The discovery request form improved on December 9: a partner picks the prospect’s Business Profile from a search and chooses competitors from a list rather than typing either.</li>
</ol>
<h3 id="1-billing">1. Billing</h3>
<p>Organization settings gained the partner’s contact details, address and team on the same day. Over the next day the details were tightened: invoices due today no longer show as past due, a failed payment says so plainly, and every page got a proper title.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Billing was built in stages: scaffolding on September 19, the first real code merged on October 28 with the menu link kept out of the partner menu, invoice, payment and autopay work through November, and the whole thing merged on December 4. The date it shipped owes a lot to the temporary agreement entry page from November that let us load the existing book before the switch was turned on.</li>
<li>The Portal got smaller in December, deliberately. Every removal was a place where two systems could have disagreed, gone.</li>
<li>A team-only offboarding form arrived on December 9, so ending a campaign is a recorded process rather than a series of edits.</li>
</ol>
<h3 id="2-the-portal-gets-smaller">2. The Portal gets smaller</h3>
<p>On December 9 all discovery editing, the audit, keyword, local and proposal editors, left the Portal; that work is done in Workbench now and the result is shared back. On December 10 the Portal’s own task and procedure tables were dropped, because Workbench had owned tasks since November.</p>]]></content:encoded></item><item><title>Workbench goes to work and the Portal starts talking to it</title><link>https://seobrothers.com/updates/2025-11-workbench-goes-to-work/</link><guid isPermaLink="true">https://seobrothers.com/updates/2025-11-workbench-goes-to-work/</guid><pubDate>Sun, 30 Nov 2025 00:00:00 GMT</pubDate><description>November 2025: Workbench was deployed to the team with tasks, plans, a work log and time, the existing campaign book was imported, and a discovery or onboarding requested in the Portal began creating the work on our side without anyone copying it.</description><content:encoded><![CDATA[<p>November 2025 is the month Workbench became a place people worked rather than a plan, and the month the Portal and Workbench started handing things to each other. Almost none of it was visible to a partner, and almost all of it changed what happened after a partner clicked.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>A discovery requested in the Portal began creating the work on our side automatically on November 3, where before someone read the request and set up the job by hand. From November 24 the same was true of a new campaign: onboarding it in the Portal set up the campaign in Workbench, with the partner’s own discovery template attached.</li>
<li>Approvals closed the loop the other way. From November 22, when a partner approved a deliverable in the Portal, the deliverable was marked approved where our team was working on it, and no one had to tell anyone.</li>
<li>Conversations got quieter improvements: threads linked to their campaign automatically from November 7, replies from our support address shown as coming from us, and from November 18 a conversation shows its status wherever it is linked.</li>
</ol>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>Workbench went to the team on November 14 with tasks, quick tasks, task templates, employee skills and roles, support requests and time entries, and over the rest of the month it grew the pieces a campaign actually needs.</li>
<li>The book came across on November 5. A CSV importer brought the existing campaigns into the Portal, and both systems ran side by side, on purpose.</li>
<li>Discoveries worked the same way from November 24: a request Workbench received was set up in Workbench and in the old systems both, so whichever a specialist opened, the work was there.</li>
<li>A temporary team-only page on November 4 for entering billing agreements let us bring the existing book’s agreements across before billing shipped. It was scaffolding for December.</li>
</ol>
<h3 id="1-workbench-goes-to-the-team">1. Workbench goes to the team</h3>
<p>Plans landed on November 18, where a campaign’s monthly scope becomes a list of plan items by type, and a work log the same day, so every piece of work done on a campaign is recorded against it. Keyword tracking tables landed alongside. Task templates gained rich text procedures on November 26, so the how-to lives inside the task. Meeting transcripts were attached to partner records from November 27. A new sidebar with an issues view came on November 28.</p>
<h3 id="2-the-book-comes-across">2. The book comes across</h3>
<p>The import included each campaign’s service frequency and, tellingly, the id of its card on our task board. On November 20 that card got a link on the campaign edit form.</p>
<h3 id="3-discoveries-in-both-systems">3. Discoveries in both systems</h3>
<p>Workbench created the Workbench task and deliverable, and it also forwarded the request to the task board and duplicated the research spreadsheet. This is what the beginning of the end of the old systems looked like in practice: the new tool did everything the old ones did, in parallel, until it was safe to stop.</p>]]></content:encoded></item><item><title>Campaign scope, approvals and packages come to the Portal</title><link>https://seobrothers.com/updates/2025-10-scope-approvals-and-packages/</link><guid isPermaLink="true">https://seobrothers.com/updates/2025-10-scope-approvals-and-packages/</guid><pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate><description>October 2025: a campaign in the Portal became a list of scope items built from packages, a change to it became an approval the partner signs off on, and Workbench got its data model, tasks and time tracking while three side experiments were tried and set aside.</description><content:encoded><![CDATA[<p>October 2025 was the month the Portal learned what a campaign is made of. In the same month Workbench went from an empty shell to a designed system, and three other experiments were started and stopped.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>A campaign became a list of items. From October 13 every campaign in the Portal is built from sellable items grouped into packages, with campaign rules, guidelines and access details alongside, and that structure is what made everything else this month possible.</li>
<li>Approvals arrived on October 15. When our team proposes a change to a campaign’s scope, or needs a partner’s sign-off on anything else, the partner gets an email and an approval in the Portal to accept or decline.</li>
<li>Smaller things a partner would notice: notes on a campaign for reporting and publishing preferences, a reporting note on the partner record, files attached to a campaign from October 17, and a new onboarding form on October 29 for starting a campaign.</li>
<li>The first billing code was merged on October 28 with the billing link kept out of the partner menu; billing shipped in December.</li>
</ol>
<h3 id="2-approvals">2. Approvals</h3>
<p>The conversation about an approval stays attached to it. On October 30 scope changes were rebuilt so a partner sees exactly which items change, for one period or several, before agreeing to anything.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<ol>
<li>The package and catalog work was for the operations team as much as for partners: a service catalog, sellable items, packages and campaign profiles gave the team one vocabulary for what a campaign contains. By October 27 the campaign tables were pre-filtered with cancelled campaigns moved to their own page so a campaign manager’s day-to-day view stayed short.</li>
<li>Workbench got its skeleton. On October 18 we wrote down the design decisions, and the underlying structure and the first task view followed over the next three days.</li>
<li>October also had experiments that did not continue. Between October 11 and October 30 three separate experiments were started: an agent framework with a chat interface and a prompt tester, and two further starts on the internal tool.</li>
</ol>
<h3 id="2-workbench-gets-its-skeleton">2. Workbench gets its skeleton</h3>
<p>On October 20 the underlying structure landed: tasks, task templates, task types, assignments, deliverables, approvals, artifacts, content assets and time tracking. On October 21 the task view was built out with notes, attachments and deliverables, and time entries, time off, timesheets and a schedule view arrived with it. Time tracking on day one was deliberate. Our specialists already logged time, and a work tool that ignored that would have been a second place to look.</p>
<h3 id="3-experiments">3. Experiments</h3>
<p>All three stopped before November. Workbench is the one that continued, and the agent ideas from the first experiment came back inside Workbench in December, with a better home.</p>]]></content:encoded></item><item><title>Conversations in the Portal, and a repository called Workbench</title><link>https://seobrothers.com/updates/2025-09-conversations-and-a-repository-called-workbench/</link><guid isPermaLink="true">https://seobrothers.com/updates/2025-09-conversations-and-a-repository-called-workbench/</guid><pubDate>Tue, 30 Sep 2025 00:00:00 GMT</pubDate><description>August and September 2025: partner email threads showed up inside the Portal against the campaign, discoveries got structured research tables, and on September 20 the Workbench repository was opened.</description><content:encoded><![CDATA[<p>August and September 2025 were two months of the Portal getting more useful to the people who talk to partners every day, and one weekend in September when a new repository was opened for the tool our own team would work in. This is the point where the two-app design became real rather than drawn.</p>
<h2 id="for-our-partners">For our partners</h2>
<ol>
<li>Conversations. From August 7 the email threads between a partner and our team appeared inside the Portal, attached to the campaign they were about.</li>
<li>Discoveries got more substance. From September 3 a discovery in the Portal held the research, not a link to a document that held the research.</li>
<li>Each campaign got a named campaign manager and account manager from August 4, visible on the campaign.</li>
</ol>
<h3 id="1-conversations">1. Conversations</h3>
<p>The most recent message opened by default from August 14. From September 2 our team could send a message from the Portal itself, so a reply and the record of the reply were the same thing. On September 8 a campaign gained its own contacts, so it was clear which people at a partner belonged to which client’s work, and email links opened straight into the thread.</p>
<h3 id="2-discoveries">2. Discoveries</h3>
<p>On September 3 the discovery record was split into proper fields, and over the next two days the team side gained a keyword opportunities table, a supporting data table and inline editing. By September 18 that work was called done.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>The Workbench repository was created on Saturday, September 20, 2025. It began with the plain necessities: production sign-in, a stable database connection, the app shell and sidebar. Nothing in it did anything yet. But its README said what it was for, an internal tool for our specialists to do their work, paired with the partner-facing Portal, and that sentence is still accurate.</p>
<p>Two details show the design was already joined up. On September 5 the Portal’s discovery table gained fields for crawl data that would come from Workbench, before Workbench existed. And the link tool, whose sidebar had promised a Workbench in June, saw its last change on July 23. Its ideas moved; the repository did not.</p>
<p>On September 19, the day before Workbench began, the Portal got scaffolding for billing and organization settings: a billing page, an invoice list, an invoice detail view, and empty pages for payment methods, profile and team. None of it was visible to a partner and none of it worked yet. It marks the start of the billing build, which shipped in December.</p>]]></content:encoded></item></channel></rss>