<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Keith Azodeh</title>
    <description>The latest articles on DEV Community by Keith Azodeh (@keith_azodeh).</description>
    <link>https://dev.to/keith_azodeh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3902575%2Fada94ceb-dc2f-47e8-b77a-1a3f1f9deadf.jpeg</url>
      <title>DEV Community: Keith Azodeh</title>
      <link>https://dev.to/keith_azodeh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keith_azodeh"/>
    <language>en</language>
    <item>
      <title>What to Record Before a Remote Publishing Job Starts</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Thu, 15 Oct 2026 23:05:24 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/what-to-record-before-a-remote-publishing-job-starts-2cp9</link>
      <guid>https://dev.to/keith_azodeh/what-to-record-before-a-remote-publishing-job-starts-2cp9</guid>
      <description>&lt;p&gt;A remote machine finishes uploading a video, then loses its connection before reporting the result. The dashboard still shows an unfinished task. Starting the worker again might recover the workflow. It might also publish the same video twice. The missing information is what happened between the command leaving the dashboard and the result reaching the operator.&lt;/p&gt;

&lt;p&gt;Disclosure: This article was researched and drafted by an AI agent using my public project documentation and the linked technical sources.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/projects/cloud-media-distribution" rel="noopener noreferrer"&gt;Cloud Media Distribution case study&lt;/a&gt; describes a historical system built in 2024: a Flask control panel, an S3 media library, and Windows EC2 workers coordinated through AWS Systems Manager. Remote commands updated local controls and launched scripts that operated platform sessions. The project connected those components; it did not establish a measured publication success rate or an immutable job queue.&lt;/p&gt;

&lt;p&gt;The opening scenario is hypothetical. It is a useful way to think through a redesign: what would the next operator need to decide whether to retry, investigate, or leave the job alone?&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the intended work a stable identity
&lt;/h2&gt;

&lt;p&gt;For a comparable system today, I would create a durable job record before dispatch. Give the intended publication its own identifier, then record each execution attempt separately. A retry belongs to the existing job; it should not silently create a new intended publication.&lt;/p&gt;

&lt;p&gt;The record needs enough information to identify the work: destination account, media version, caption version, requested timing, and relevant configuration. A path named “current-video” is convenient for an interface, but it is a poor explanation of what an earlier attempt was supposed to publish if that path now points somewhere else.&lt;/p&gt;

&lt;p&gt;Changing the approved caption or asset should create a deliberate revision. Reusing the same identity for different payloads makes later reconciliation harder. An operator looking at two attempts needs to know whether they attempted the same work.&lt;/p&gt;

&lt;p&gt;That does not require a complex scheduling product on day one. Start with a record you can query after a process crashes. It becomes the place to attach dispatch history, observations, and the eventual result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preserve what a retry will execute
&lt;/h2&gt;

&lt;p&gt;GitHub's &lt;a href="https://github.blog/changelog/2026-10-14-github-actions-workflow-lockfiles-in-public-preview/" rel="noopener noreferrer"&gt;October 14, 2026 workflow-lockfile public preview&lt;/a&gt; addresses a related problem in CI. A tag or branch referenced by a workflow can move after review. Lockfiles allow an onboarded workflow to execute recorded dependency commits while retaining those references in its configuration. GitHub also notes that locking a dependency does not establish that it is safe.&lt;/p&gt;

&lt;p&gt;This is not a feature of my historical publishing system. The connection is an engineering principle: preserve the version you intended to execute. In a remote-worker redesign, I would record the worker release alongside the media and configuration versions. Otherwise, a later retry can differ from the original attempt even when its visible request looks unchanged.&lt;/p&gt;

&lt;p&gt;There is a maintenance cost. Pinned versions need intentional updates, and old workers eventually need replacing. The benefit is that “retry this job” has a more precise meaning, and an operator can distinguish a content change from a software change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate dispatch, execution, and publication evidence
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://asaday.co/projects/cloud-media-distribution" rel="noopener noreferrer"&gt;historical case study&lt;/a&gt; makes an important distinction: Systems Manager command success meant the remote command ran, not that a social post was independently verified. Its stop mechanism was also cooperative, checked at an iteration boundary rather than guaranteeing cancellation of an upload already underway.&lt;/p&gt;

&lt;p&gt;For a redesign, I would retain those distinctions in the job's history. Record when dispatch was accepted, which worker started the attempt, what the worker observed, and what evidence supports completion. A platform-issued post identifier or a verified destination URL is different from a script reaching its last line.&lt;/p&gt;

&lt;p&gt;An uncertain result deserves an explicit state. Before another publication attempt, reconcile against the destination through a supported interface where possible. If that check cannot establish what happened, route the job for review instead of translating a timeout into permission to publish again.&lt;/p&gt;

&lt;p&gt;The same applies to stopping. A stop request, a worker acknowledging that request, and confirmation that no further publication will start are separate observations. Keeping them separate helps an operator understand what remains in flight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conditional storage writes solve a narrower problem
&lt;/h2&gt;

&lt;p&gt;AWS's &lt;a href="https://aws.amazon.com/blogs/storage/building-multi-writer-applications-on-amazon-s3-using-native-controls/" rel="noopener noreferrer"&gt;June 17, 2025 discussion of multi-writer S3 applications&lt;/a&gt; illustrates using conditional writes for object creation and shared metadata updates. This is established storage guidance, not an October release.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-writes.html" rel="noopener noreferrer"&gt;S3 conditional-write reference&lt;/a&gt; describes &lt;code&gt;If-None-Match&lt;/code&gt; for preventing an overwrite of an existing key, and &lt;code&gt;If-Match&lt;/code&gt; for updating only when the supplied ETag matches. Those controls can help protect a shared record from a competing or stale writer.&lt;/p&gt;

&lt;p&gt;They do not make an external publishing action and a storage update one transaction. A worker can still publish and then fail before saving the receipt. Protecting a job record is useful; it does not establish exactly-once publication across independent systems. Destination-side idempotency, when available, and reconciliation still matter.&lt;/p&gt;

&lt;p&gt;For a small operations team, the practical consequence is a more useful dashboard. Show unresolved outcomes, the age of the last worker observation, and which version each attempt used. A green machine-status indicator alone cannot answer whether the intended work reached its destination.&lt;/p&gt;

&lt;p&gt;Adding workers can increase the amount of work in flight. A durable job history improves the team's ability to explain and recover that work. Before expanding a remote automation system, make one interrupted attempt understandable to the person who has to pick it up.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>automation</category>
    </item>
    <item>
      <title>Fast AI Prototypes Need Two Questions: Strategy and Optimization</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Thu, 15 Oct 2026 19:20:32 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/fast-ai-prototypes-need-two-questions-strategy-and-optimization-5827</link>
      <guid>https://dev.to/keith_azodeh/fast-ai-prototypes-need-two-questions-strategy-and-optimization-5827</guid>
      <description>&lt;p&gt;AI changes how quickly a small team can put an idea in front of someone. A pair of builders can sometimes produce a bounded prototype in days that would once have waited through weeks of departmental handoffs. That is an opportunity to shorten the distance to useful feedback. It is not a universal productivity benchmark or a promise about production readiness.&lt;/p&gt;

&lt;p&gt;Disclosure: An AI agent drafted this article from my direction, personal background, public project documentation, and the linked technical sources.&lt;/p&gt;

&lt;p&gt;In my consulting conversations with small-business owners and executives at large technology companies, I keep returning to two questions. Strategy: are we building the right thing? Optimization: can we make it work better with the time, money, and infrastructure available? A team can write code very quickly while leaving both questions unanswered.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strategy decides which uncertainty to resolve
&lt;/h2&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/projects" rel="noopener noreferrer"&gt;public projects&lt;/a&gt; include supplier-price workflows, a voice operations product, a community guide, application tools, church operations, healthcare software, and forecasting research. They are not interchangeable success stories. Some are delivered work; others are ongoing products, staged migrations, or research prototypes.&lt;/p&gt;

&lt;p&gt;Across professional projects and conversations spanning technology, real estate, insurance, healthcare, education, finance, and crypto, the domain changes what counts as a useful result. My experience across those settings is why I start with the workflow and the person using it. A faster interface does little if it accelerates the wrong decision.&lt;/p&gt;

&lt;p&gt;For a first version, I would write down a person, a recurring task, and an observable improvement. “Help staff review an incoming record” is something you can test. “Transform the entire business with AI” leaves the team guessing what to build and the reviewer guessing what success means.&lt;/p&gt;

&lt;p&gt;Then choose an experiment that could change your mind. If the real difficulty is inconsistent source information, an attractive dashboard will not settle it. If the difficulty is that nobody knows who should act next, another generated summary may add to the queue.&lt;/p&gt;

&lt;p&gt;This is where making mistakes early is productive. An inexpensive prototype can reveal that a proposed workflow is confusing or that a feature is unnecessary. Retain the observation, revise the assumption, and try again before expanding the implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Optimization follows evidence
&lt;/h2&gt;

&lt;p&gt;Once a useful path exists, optimization becomes concrete. You can inspect repeated work, slow integrations, unnecessary model calls, oversized context, and the steps that still require someone to intervene. Pick the constraint that affects the outcome rather than optimizing whichever metric is easiest to display.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://asaday.co/projects/tmc-price-intelligence" rel="noopener noreferrer"&gt;TMC Price Intelligence&lt;/a&gt;, the documented work connects supplier emails and attachments to structured pricing and subsequent quote and invoice workflows. In &lt;a href="https://asaday.co/projects/smartvoicex" rel="noopener noreferrer"&gt;SmartVoiceX&lt;/a&gt;, calling connects to scheduling, follow-up, and human handoff. The relevant unit of improvement is the useful workflow, not just an isolated model response.&lt;/p&gt;

&lt;p&gt;For a new pricing tool, I would first check whether two offers are comparable. Only then would I spend time reducing the model work needed to process the next batch. Making an unreliable comparison cheaper does not make it useful.&lt;/p&gt;

&lt;p&gt;Anthropic's &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;December 19, 2024 guidance on effective agents&lt;/a&gt; recommends beginning with simple solutions and increasing complexity when warranted. It also recognizes the cost and latency tradeoffs of agentic systems. That older architectural advice remains relevant to a current temptation: adding another agent or reasoning step before identifying the problem it solves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Leave room for discovery, and keep the lesson
&lt;/h2&gt;

&lt;p&gt;A rigid demand for a perfect first attempt can encourage long instructions built around imagined failures. Unbounded retries create a different expense. I prefer a bounded experiment with a clear question, a reviewable result, and a decision about the next attempt.&lt;/p&gt;

&lt;p&gt;When an experiment fails, record what it taught you. A confusing screen might lead to a changed interaction. A recurring extraction error might become an example or a test. An unnecessary generation step might disappear entirely. Fewer repeated investigations and smaller, relevant inputs can reduce token use, but the saving needs to be measured across the completed workflow.&lt;/p&gt;

&lt;p&gt;That kind of improvement combines technical and creative work. Technical judgment helps you understand the constraints and verify behavior. Creative judgment helps you question whether the current design is the best way to meet the need. Speed becomes useful when it gives both kinds of judgment more opportunities to act.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ownership is part of the product
&lt;/h2&gt;

&lt;p&gt;My aim is to help people build their product and understand how to own it. Continued support can be a deliberate choice after handoff. It should not be necessary because the owner cannot find the source, understand the configuration, or make a routine change.&lt;/p&gt;

&lt;p&gt;For a handoff, I would expect the owner to be able to locate the code and deployment process, understand recurring costs, change a key configuration, inspect a failed run, and recover a previous version. Growth then has a practical meaning: someone knows which parts must change when usage, data, or team size increases. A generated codebase alone does not establish that an implementation will scale.&lt;/p&gt;

&lt;p&gt;Teaching is part of how I approach that problem. My &lt;a href="https://asaday.co/events" rel="noopener noreferrer"&gt;seminars and events&lt;/a&gt; create space to discuss practical workflows. At AFROTECH, &lt;a href="https://afrotechconference.com/speakers/keith-azodeh" rel="noopener noreferrer"&gt;Building AfroTech.guide&lt;/a&gt; will use a specific build to explain the process and give attendees steps for starting their own AI-powered project.&lt;/p&gt;

&lt;p&gt;Small teams now have more opportunities to test an idea before committing to a large build. Use that opportunity to resolve the strategy question, improve the working path, and transfer the knowledge. The owner should finish with a product they can operate and a better understanding of how to improve it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Give Your AI Workflow Room to Make Useful Mistakes</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Thu, 15 Oct 2026 19:18:29 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/give-your-ai-workflow-room-to-make-useful-mistakes-2lbj</link>
      <guid>https://dev.to/keith_azodeh/give-your-ai-workflow-room-to-make-useful-mistakes-2lbj</guid>
      <description>&lt;p&gt;“Make no mistakes” sounds like a serious instruction. As a development process, it leaves out the most useful part: what happens when an assumption turns out to be wrong. A working prototype can expose that assumption in minutes. A longer prompt demanding perfection can keep it hidden behind a more confident answer.&lt;/p&gt;

&lt;p&gt;Disclosure: An AI agent drafted this article from my direction, personal background, public project documentation, and the linked technical sources.&lt;/p&gt;

&lt;p&gt;I started building AI-powered tools in 2019, before ChatGPT's public launch. The habit I want to carry into today's tools is simple: try something concrete, inspect what happened, and let the next attempt benefit from the mistake. Humans improve that way. An AI workflow needs a deliberate mechanism for carrying the lesson forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the experiment a question
&lt;/h2&gt;

&lt;p&gt;There is a difference between asking for “a complete, flawless application” and asking whether a person can find one useful record and understand it. The second request creates something you can evaluate. It also leaves room to discover that the search box, the record structure, or your original idea needs to change.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/projects" rel="noopener noreferrer"&gt;project archive&lt;/a&gt; spans application tools, voice workflows, supplier pricing, archive retrieval, community platforms, and computer-vision experiments. These are different kinds of work, with different maturity levels. I do not expect one enormous instruction to settle all their product and engineering questions in advance.&lt;/p&gt;

&lt;p&gt;For a new idea, I would start with one uncertainty: Can the input be interpreted? Can the proposed interaction be understood? Can the output survive the next step? Then build the smallest attempt that produces evidence about it. A result that disproves the idea can be valuable if it prevents a week of polishing the wrong thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the mistake cheap to recover from
&lt;/h2&gt;

&lt;p&gt;Room to experiment works best when the attempt has a boundary. Use a branch, a recoverable draft, sample records, or a practice environment. Set a concrete check before the experiment begins. A failed layout in a preview is a different situation from silently publishing that layout to customers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://asaday.co/projects/okeike-web-editor" rel="noopener noreferrer"&gt;Okeike's public case study&lt;/a&gt; describes recoverable drafts, inspectable AI-proposed edits, and publishing through versioned source control. &lt;a href="https://asaday.co/projects/exempliphai" rel="noopener noreferrer"&gt;Exempliph.ai's case study&lt;/a&gt; describes a practice workspace and a distinction between prepared applications and confirmed submissions. Those are documented design choices, not evidence that either product makes mistakes impossible.&lt;/p&gt;

&lt;p&gt;For a comparable editing experiment, I would ask for a few navigation alternatives in a draft, try them against an actual page, and keep the one that makes the next action clearer. The discovery work can be flexible while publication remains a separate decision.&lt;/p&gt;

&lt;p&gt;That balance gives creativity somewhere to operate. The model can suggest an unexpected structure without also receiving permission to overwrite every page. You can explore widely without making every experiment expensive to undo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turn the failed attempt into a reusable lesson
&lt;/h2&gt;

&lt;p&gt;“It did not work” is too vague to improve the next run. Keep the input that exposed the issue, the expected behavior, the observed result, and the change that fixed it. When appropriate, turn that example into a regression check.&lt;/p&gt;

&lt;p&gt;For example, a form mapper might confuse an employer's name with a job title. The useful correction is a specific mapping example and a check that preserves an existing answer. Adding “never misunderstand any form” to the prompt does not capture the distinction the failure revealed.&lt;/p&gt;

&lt;p&gt;This is also where the human analogy has a limit. An ordinary inference session does not automatically retrain a model when you correct it. The workflow learns operationally when you retain the evidence in examples, tests, instructions, or retrievable notes. If the next run never receives that lesson, you may pay to rediscover it.&lt;/p&gt;

&lt;p&gt;Anthropic's &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;September 29, 2025 context-engineering article&lt;/a&gt; recommends starting with a minimal useful prompt, adding guidance from observed failures, and keeping context informative. It also describes persistent notes for long tasks. This is established engineering guidance, not a new October release.&lt;/p&gt;

&lt;h2&gt;
  
  
  Measure the whole attempt, not the length of the prompt
&lt;/h2&gt;

&lt;p&gt;Allowing iteration can reduce token use when it replaces repeated broad rewrites, bloated instructions, or the same investigation performed again. It can also increase token use if the agent wanders, repeats failures, or generates ten alternatives when one would answer the question. Exploration is not a guaranteed discount.&lt;/p&gt;

&lt;p&gt;Compare completed outcomes. Record model usage across the initial attempt, inspection, repairs, and final verification. Keep an eye on the human review time too. A short prompt with endless retries can be worse than a longer prompt containing the right example.&lt;/p&gt;

&lt;p&gt;My preferred next instruction is specific: keep the working parts, change the failed behavior, and explain which evidence shows the correction worked. Once an approach is understood, ordinary code or a focused check may handle it more economically than asking a model to reconsider it every time.&lt;/p&gt;

&lt;p&gt;I bring this attitude into the &lt;a href="https://asaday.co/events" rel="noopener noreferrer"&gt;seminars and practical sessions I host&lt;/a&gt;. At AFROTECH 2026, my &lt;a href="https://afrotechconference.com/speakers/keith-azodeh" rel="noopener noreferrer"&gt;Building AfroTech.guide session&lt;/a&gt; will walk through a particular project and offer practical steps people can use in their own builds. The point is to make the process understandable, including the decisions that need another attempt.&lt;/p&gt;

&lt;p&gt;A useful mistake changes the next experiment. Give the system a clear question, a recoverable place to try, and a way to retain the result. That creates more room for original ideas while keeping progress grounded in something you can inspect.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>When a Caller Interrupts, Update the Voice Agent's Memory</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Thu, 15 Oct 2026 18:01:41 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/when-a-caller-interrupts-update-the-voice-agents-memory-2iip</link>
      <guid>https://dev.to/keith_azodeh/when-a-caller-interrupts-update-the-voice-agents-memory-2iip</guid>
      <description>&lt;p&gt;Imagine an appointment assistant offering two times: “I can offer Tuesday at ten, or Thursday at two.” The caller cuts in after “Tuesday at ten” to ask about parking. If the model later asks “Which of those two times works?”, it is relying on an option the caller never received. The audio stopped correctly. The conversation state did not catch up.&lt;/p&gt;

&lt;p&gt;Disclosure: This article was researched and drafted by an AI agent using my public project documentation and the linked technical sources.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/projects/smartvoicex" rel="noopener noreferrer"&gt;SmartVoiceX case study&lt;/a&gt; documents a built phone operations product with ongoing development: calling flows, calendar and API integrations, human transfer, and call records. Those features make conversation state consequential. A booking flow needs to know more than what the assistant intended to say.&lt;/p&gt;

&lt;p&gt;The example above is hypothetical. The implementation pattern below is a proposed approach, not a claim that SmartVoiceX uses Twilio ConversationRelay or already implements these exact mechanisms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generated text is not a delivery receipt
&lt;/h2&gt;

&lt;p&gt;Twilio's &lt;a href="https://www.twilio.com/en-us/blog/insights/ai-voice-agent-interruption-handling" rel="noopener noreferrer"&gt;September 25, 2026 interruption-handling guidance&lt;/a&gt; describes a useful division of responsibility. ConversationRelay handles speech playback and interruption detection. The application still owns the model's conversation history. Twilio specifically advises updating that history to reflect the speech played before an interruption.&lt;/p&gt;

&lt;p&gt;This is an ongoing voice-agent engineering concern, rather than a newly launched October feature. It matters as teams connect streamed speech to actual workflows: a model can finish generating a sentence well before playback finishes delivering it.&lt;/p&gt;

&lt;p&gt;For the appointment example, I would keep distinct records of the complete generated response and the portion reported as played. The former is useful for debugging. The latter should shape the next conversational turn. Neither proves that the caller understood or accepted an offer.&lt;/p&gt;

&lt;p&gt;That distinction changes the recovery response. The assistant can answer the parking question, then introduce the remaining option. It should not assume that two choices are already part of the shared conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use the interruption event without overreading it
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.twilio.com/docs/voice/conversationrelay/websocket-messages" rel="noopener noreferrer"&gt;ConversationRelay WebSocket reference&lt;/a&gt; documents an interrupt message with &lt;code&gt;utteranceUntilInterrupt&lt;/code&gt; and &lt;code&gt;durationUntilInterruptMs&lt;/code&gt;. The first reports the utterance played before the cutoff; the second provides the elapsed duration. These are useful application inputs, not evidence of comprehension or confirmation.&lt;/p&gt;

&lt;p&gt;In a comparable integration, I would reconcile the interrupted assistant turn before requesting the next model response. I would retain the generated text in an audit record, mark that turn as interrupted, and give the model the reported spoken portion with its interruption context. Simply deleting the entire turn could also lose something the caller actually received.&lt;/p&gt;

&lt;p&gt;I would also stop forwarding obsolete output from that response. Cancellation alone needs scrutiny: an already scheduled callback may still deliver tokens. An application-owned response identifier can help reject output belonging to a superseded response. This is a proposed concurrency safeguard, not a field promised by Twilio's interrupt message.&lt;/p&gt;

&lt;p&gt;The important invariant is practical: once a response has been superseded, its remaining speech should not reappear after the caller's new request. Test that property at the boundary where text leaves the application, including delayed output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep calendar state separate from spoken state
&lt;/h2&gt;

&lt;p&gt;Interrupting a sentence does not undo an external operation.&lt;/p&gt;

&lt;p&gt;Suppose a calendar write succeeds, but the caller interrupts the confirmation. The application now has two facts: the appointment exists, and the confirmation was only partly delivered. Trimming the assistant's words must not erase the successful write or trigger a second booking when the conversation resumes.&lt;/p&gt;

&lt;p&gt;For that situation, I would have the next response consult the recorded operation result and clarify the existing appointment. If the caller wants a different time, that is a new workflow decision. If the write is still pending, the application should preserve that uncertainty instead of improvising a result from the assistant's wording.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/blog/keith-azodeh-building-ai-voice-agents-with-twilio" rel="noopener noreferrer"&gt;Twilio field notes&lt;/a&gt; describe telephony as an integration boundary while the application owns business state and outcomes. Interruption handling is a specific reason to maintain that separation. Spoken text can describe an operation, but it is not the operation's source of truth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tune turn-taking around the kind of interruption
&lt;/h2&gt;

&lt;p&gt;There is another distinction before history reconciliation even begins: did the caller intend to take a turn?&lt;/p&gt;

&lt;p&gt;Twilio's September guidance separates deliberate barge-in, brief acknowledgments such as “uh-huh,” and background noise. Its discussion of sensitivity and backchannel controls illustrates why a single “stop when sound appears” rule can produce an awkward agent. But suppressing too much can make it difficult for someone to correct a mistaken date or stop an unwanted explanation.&lt;/p&gt;

&lt;p&gt;For a booking assistant, I would test an explicit correction, a brief acknowledgment during an explanation, and a caller beginning a new question. Those scenarios need different observations. Count whether the agent yielded when appropriate, whether it resumed with an accurate history, and whether the underlying booking remained correct. Fewer interruptions alone would be a misleading success measure.&lt;/p&gt;

&lt;p&gt;This affects how teams evaluate voice products. A smooth greeting and low response latency leave important behavior untested. The caller can change direction halfway through a sentence, while generation, playback, and an API operation are each at different stages.&lt;/p&gt;

&lt;p&gt;A useful call record should let an operator reconstruct those stages without guessing which words reached playback or which action completed. That is where interruption handling becomes an operational feature: the next response, and the person reviewing the call afterward, need a truthful account of what has happened so far.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
    </item>
    <item>
      <title>A Good Depth Map Can Still Make Bad Stereo Video</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Thu, 15 Oct 2026 13:05:35 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/a-good-depth-map-can-still-make-bad-stereo-video-fh1</link>
      <guid>https://dev.to/keith_azodeh/a-good-depth-map-can-still-make-bad-stereo-video-fh1</guid>
      <description>&lt;p&gt;Pause a depth-based stereo video and the foreground may look convincing. Press play and the same object can seem to breathe, its outline wobbling as it moves. A frame-by-frame comparison can miss the defect that dominates the viewing experience: the geometry will not stay put.&lt;/p&gt;

&lt;p&gt;Disclosure: This article was researched and drafted by an AI agent using my public project documentation and the linked technical sources.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/projects/stereography" rel="noopener noreferrer"&gt;Stereo Depth Lab case study&lt;/a&gt; describes a working local prototype for turning images and short clips into stereo pairs. It uses relative depth, with Depth Anything V2 Small as the default estimator. Its lightweight Gaussian rendering path carries depth-seeded points across frames with optical flow, confidence, decay, and resets at scene cuts. That is an experiment in continuity, not a calibrated, trained 4D Gaussian reconstruction.&lt;/p&gt;

&lt;p&gt;The implementation question is useful beyond this prototype: what should a developer test when the product is a sequence, but the easiest result to inspect is a single image?&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate depth estimation from temporal behavior
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2501.12375" rel="noopener noreferrer"&gt;Video Depth Anything&lt;/a&gt;, originally submitted on January 21, 2025 and revised on October 14, 2026, addresses this distinction directly. The authors build on Depth Anything V2 with a spatial-temporal head, a temporal consistency loss, and a strategy for long videos. Yesterday's revision date does not make the underlying method a new October launch. It is a current reference for an ongoing engineering problem.&lt;/p&gt;

&lt;p&gt;The important architectural point is that temporal behavior is part of the model and inference design. Running an image estimator repeatedly does not, by itself, give that estimator a representation of what persisted between frames. The paper's approach and a lightweight renderer that reuses points operate at different parts of the pipeline. I have not established that swapping in the former would improve my prototype.&lt;/p&gt;

&lt;p&gt;Consider a chair in a short clip. Its depth estimate can be plausible in each frame while its apparent separation from the wall varies. In a stereo conversion, that variation can become unwanted motion. A test needs to follow the chair through time, rather than approve several attractive stills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Carrying state creates a second failure mode
&lt;/h2&gt;

&lt;p&gt;Keeping information from previous frames can suppress instability. It also gives a mistake somewhere to survive.&lt;/p&gt;

&lt;p&gt;Imagine a person walking behind a doorframe. A persistent point may help retain a stable surface until the person disappears. Once the surface is occluded, carrying that point forward without a reliable correspondence can produce a trail. Strong smoothing can also make a moving boundary lag behind the source footage.&lt;/p&gt;

&lt;p&gt;Those are illustrative failure cases to test, not measured results from Stereo Depth Lab. The public case study documents the prototype's confidence, decay, and scene-cut reset mechanisms; it does not provide benchmark evidence that they resolve every case.&lt;/p&gt;

&lt;p&gt;For an implementation review, I would ask how state enters, how it loses confidence, and when it is discarded. A hard cut is a particularly clear boundary: correspondence with the preceding shot should not be assumed. Gradual camera motion is harder because some surfaces persist, some leave the view, and others become visible for the first time.&lt;/p&gt;

&lt;p&gt;This is why a single smoothing slider cannot explain every artifact. An unstable estimate, an incorrect motion correspondence, and an overlong state lifetime can all produce different kinds of trouble in the same clip.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build a small test reel before choosing a larger model
&lt;/h2&gt;

&lt;p&gt;For the next comparison, I would use a fixed set of clips with distinct failure opportunities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A stationary scene, to expose unwanted changes without much real motion.&lt;/li&gt;
&lt;li&gt;A slow camera pan past a nearby object, to expose newly visible background and edge behavior.&lt;/li&gt;
&lt;li&gt;A moving subject crossing another object, to inspect occlusion and trailing state.&lt;/li&gt;
&lt;li&gt;A hard cut between unrelated shots, to check reset behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep the source clips and rendering settings fixed between runs. Save the model version, input size, eye separation, convergence, and temporal settings with each export. Otherwise, an apparently better result may come from a gentler stereo effect rather than a better depth pipeline.&lt;/p&gt;

&lt;p&gt;Inspect the source, the depth sequence, and the rendered stereo output separately. If an edge is already unstable in depth, renderer tuning may only hide it. If depth looks stable but the output trails, inspect the correspondence and state handling. When ground truth is absent, these checks are diagnostics; they do not establish geometric accuracy.&lt;/p&gt;

&lt;p&gt;Record processing time and peak memory alongside the visual observations. The &lt;a href="https://github.com/DepthAnything/Video-Depth-Anything" rel="noopener noreferrer"&gt;official Video Depth Anything repository&lt;/a&gt; distinguishes offline inference from an experimental streaming mode and explicitly reports a performance drop for that streaming configuration. That is a useful reminder to evaluate the execution mode the product would actually use. An offline result should not silently become a claim about an interactive workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Budget for the sequence people will watch
&lt;/h2&gt;

&lt;p&gt;For teams building creative conversion tools, the practical consequence is a different acceptance process. A hero image can demonstrate depth separation. It cannot demonstrate that a clip remains watchable through movement, occlusion, and cuts.&lt;/p&gt;

&lt;p&gt;A larger estimator may be worth its compute cost. A smaller model with a restrained effect may be sufficient for another use. That decision needs representative footage and repeatable comparisons. It should also include the time someone spends rejecting or repairing an export; a fast render that requires extensive cleanup may be a poor workflow choice.&lt;/p&gt;

&lt;p&gt;Stereo Depth Lab remains a local research prototype. Its documented separation between a lightweight renderer and a possible future reconstruction backend is a useful discipline: define what the present system estimates, then test the behavior that viewers actually receive. For video, that behavior lasts longer than one frame.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
    </item>
    <item>
      <title>The Hard Part of an AI Event Guide Is Keeping It Current</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Wed, 14 Oct 2026 23:09:42 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/the-hard-part-of-an-ai-event-guide-is-keeping-it-current-130c</link>
      <guid>https://dev.to/keith_azodeh/the-hard-part-of-an-ai-event-guide-is-keeping-it-current-130c</guid>
      <description>&lt;p&gt;Consider a simple event listing: the time is correct on Monday, the venue changes on Thursday, and someone searches for it on Friday. A searchable copy of Monday's announcement can still send that person to the wrong place. Making information easier to find also makes its maintenance more consequential.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: This article was researched and drafted by an AI agent using my public project documentation and the linked technical sources.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://asaday.co/projects/afrotech-directory" rel="noopener noreferrer"&gt;AfroTech Guide&lt;/a&gt; to make scattered community information easier to navigate. Its public experience includes approved people and events, correction flows, and curated Houston dining recommendations. A connected AI experience adds conversational discovery and planning, with a different release scope from the public website. Not every underlying module is exposed publicly.&lt;/p&gt;

&lt;p&gt;The project gives me a useful context for a broader product question: when discovery gets easier, who keeps the information worth discovering?&lt;/p&gt;

&lt;h2&gt;
  
  
  Discovery and contributions are converging
&lt;/h2&gt;

&lt;p&gt;Google's &lt;a href="https://blog.google/products-and-platforms/products/maps/order-food-in-ask-maps/" rel="noopener noreferrer"&gt;August 6, 2026 Ask Maps update&lt;/a&gt; is an example of this ongoing shift. Alongside richer discovery and planning features, Google described conversational contributions: users can suggest changes, including business hours extracted from a storefront photo. The user confirms the suggestion, and Google's systems review submitted edits.&lt;/p&gt;

&lt;p&gt;The contribution flow matters to the discovery experience. A helpful interface needs a way for information about the world to catch up when the world changes. Google's announcement does not establish how a smaller directory should implement that process, but it makes the maintenance problem visible alongside the AI features.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/blog/keith-azodeh-afrotech-directory-data-to-product" rel="noopener noreferrer"&gt;directory field notes&lt;/a&gt; describe a staged pipeline: capture information with provenance, normalize a useful set of fields, curate it, then make it searchable. Those stages provide a place to ask what happens after a record's first publication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the identity; update the facts
&lt;/h2&gt;

&lt;p&gt;For a comparable event directory, I would give each listing a stable identity independent of its current description. A changed time should update the event people already saved, rather than create a second listing that competes with the first.&lt;/p&gt;

&lt;p&gt;Status deserves its own field. Google's &lt;a href="https://developers.google.com/search/docs/appearance/structured-data/event" rel="noopener noreferrer"&gt;event structured-data guidance&lt;/a&gt; distinguishes canceled, postponed, and rescheduled events. For canceled events, it advises preserving identifying properties while changing the status. A postponed event with no new date is different from one with a confirmed replacement date.&lt;/p&gt;

&lt;p&gt;That guidance concerns Google's search representation. I would use the underlying distinction in an application's own model too: "still exists" and "still happening as originally announced" are separate facts.&lt;/p&gt;

&lt;p&gt;A lightweight maintenance record could include the source URL, the current status, when the relevant facts were checked, and when they need another review. These are proposed fields, not a claim about AfroTech Guide's exact schema.&lt;/p&gt;

&lt;p&gt;For a concrete example, AFROTECH's &lt;a href="https://afrotechconference.com/speakers/keith-azodeh" rel="noopener noreferrer"&gt;official speaker profile&lt;/a&gt; identifies my Building AfroTech.guide session, while its &lt;a href="https://afrotechconference.com/schedule" rel="noopener noreferrer"&gt;official agenda&lt;/a&gt; supplies the current time and room. A directory should keep those source links attached to the record so readers can check the organizer's latest details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Freshness belongs to individual claims
&lt;/h2&gt;

&lt;p&gt;An event's description may remain useful after its ticket availability changes. A restaurant's address may be stable while its opening hours need another check. A single "updated" timestamp can conceal that difference if it changes whenever someone edits punctuation.&lt;/p&gt;

&lt;p&gt;For a new guide, I would distinguish editorial edits from factual verification. The review cadence should follow the claim: recheck time-sensitive details close to the event, while giving less volatile information a different schedule. A missing check should remain visible as uncertainty rather than being translated into confident wording.&lt;/p&gt;

&lt;p&gt;This is also where product scope matters. If the data does not include current availability, a recommendation should not imply that a seat, ticket, or reservation is available. The interface can still help someone discover the option and reach the source that can answer that question.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvpl2vifjs61nj3yotna9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvpl2vifjs61nj3yotna9.png" alt="Proposed directory maintenance cycle: check source facts, publish a stable record with status, collect a correction with evidence, review the change, then check the source again." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Conceptual maintenance cycle proposed in this article, created with AI-written drawing code. Not a product screenshot.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Make a correction easy to submit and possible to review
&lt;/h2&gt;

&lt;p&gt;A correction path needs more than an empty text box. The reviewer needs to know which record is affected, which fact is disputed, and what supports the proposed change. Otherwise, every report becomes a fresh investigation.&lt;/p&gt;

&lt;p&gt;I would treat a submitted correction as a proposal until it is checked. That avoids turning a helpful contribution feature into an unrestricted editing channel. The result should also be understandable to the contributor: accepted, unresolved, or declined, with enough context to make another report useful.&lt;/p&gt;

&lt;p&gt;Conversational interfaces can support this work without requiring every interaction to be prose. The &lt;a href="https://apps.extensions.modelcontextprotocol.io/api/documents/Overview.html" rel="noopener noreferrer"&gt;MCP Apps overview&lt;/a&gt; describes interactive views connected to tool results, with text fallback for hosts that do not support the UI extension. For a directory, that creates room for a record card and a focused correction form inside a supported host. It does not supply the review policy or make the underlying information current automatically.&lt;/p&gt;

&lt;p&gt;That is a proposed design direction. AfroTech Guide's documented public correction flows and connected experience should not be read as a claim that this exact form is already available in every host.&lt;/p&gt;

&lt;h2&gt;
  
  
  Budget for the information, not just the interface
&lt;/h2&gt;

&lt;p&gt;For community organizations, event teams, and local-discovery products, my practical conclusion is that directory maintenance should be part of the operating plan. More natural search can expose useful records to more situations. It can expose neglected records just as effectively.&lt;/p&gt;

&lt;p&gt;I would measure correction turnaround, how many upcoming events have recently checked details, and how often a recommendation depends on an unresolved report. Those are proposed operational measures, not results reported for my project.&lt;/p&gt;

&lt;p&gt;There is a tradeoff. Reviewing every detail continuously would overwhelm a small team. Start with the changes that can waste someone's trip or derail a plan, keep the source visible, and decide who owns the next review. A directory becomes more useful when the next correction has somewhere clear to go.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>One Login Is Not an Access Policy</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Wed, 14 Oct 2026 18:02:56 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/one-login-is-not-an-access-policy-1opo</link>
      <guid>https://dev.to/keith_azodeh/one-login-is-not-an-access-policy-1opo</guid>
      <description>&lt;p&gt;A member and a staff coordinator can belong to the same organization, use the same login system, and need very different access. That difference becomes easy to lose when a product brings several disconnected tools into one place.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: This article was researched and drafted by an AI agent using my public project documentation and the linked technical sources.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In my work on &lt;a href="https://asaday.co/projects/garden-church-platform" rel="noopener noreferrer"&gt;The Garden platform&lt;/a&gt;, one identity connects member and staff experiences. Permissions follow roles, departments, ownership, and explicit access rules. Sensitive fields are protected on the server, and household schedule sharing depends on consent. The Planning Center replacement remains a staged migration; the public case study does not claim that every workflow has finished rollout.&lt;/p&gt;

&lt;p&gt;That combination is the design problem: make the system feel connected while preserving the reasons people should see different parts of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the task a permission of its own
&lt;/h2&gt;

&lt;p&gt;GitHub's &lt;a href="https://github.blog/changelog/2026-10-13-github-app-improvements-for-least-privilege-and-management/" rel="noopener noreferrer"&gt;October 13, 2026 app-permissions update&lt;/a&gt; provides a timely example. Apps and fine-grained personal access tokens can use &lt;code&gt;repository_creation:write&lt;/code&gt; to create repositories without the broader &lt;code&gt;repository_administration:write&lt;/code&gt; permission previously needed for that task. The broader permission also covers administrative operations such as deletion and transfer. Organization installation still requires the relevant approval.&lt;/p&gt;

&lt;p&gt;The narrower permission separates a legitimate task from powers it does not require. That is a useful product decision as well as a security improvement: an administrator can assess the capability being requested more precisely.&lt;/p&gt;

&lt;p&gt;Applied to an organizational application, I would start by naming the action. Updating your availability, assigning someone to a team, and editing a person's private record should be separate decisions. A broad label such as "staff" may be one input to those decisions, but it leaves too much unspecified by itself.&lt;/p&gt;

&lt;p&gt;These are illustrative design examples, not a description of additional Garden permission names or a claim about its exact schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data model determines what can stay private
&lt;/h2&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/blog/securing-firebase-lessons-by-keith-azodeh" rel="noopener noreferrer"&gt;Firebase security field notes&lt;/a&gt; start with data modeling because a rule is easier to understand when the stored data matches the access pattern.&lt;/p&gt;

&lt;p&gt;Firestore makes this especially concrete. Its &lt;a href="https://firebase.google.com/docs/firestore/security/rules-fields" rel="noopener noreferrer"&gt;field-access documentation&lt;/a&gt; explains that Security Rules authorize document reads as a whole. They cannot allow a client to read one field while hiding another field in the same document. Data requiring different read permissions can be stored in separate documents with their own rules.&lt;/p&gt;

&lt;p&gt;That matters when designing a convenient profile object. Combining a directory name with restricted internal information may make the first screen easier to build, but the resulting document becomes the unit of disclosure for direct client reads. Removing a field from the React component cannot undo data already delivered to the browser.&lt;/p&gt;

&lt;p&gt;Write access is a separate question. The same Firebase guide describes comparing a document's old and proposed state and allowing changes only to selected fields. Read visibility and permission to change a value deserve independent decisions.&lt;/p&gt;

&lt;p&gt;For a new system, I would sketch those decisions before settling the profile schema: which information can be read together, which updates belong to the person, and which values require another authority?&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the route the request actually takes
&lt;/h2&gt;

&lt;p&gt;There is another distinction to keep visible. Firebase's &lt;a href="https://firebase.google.com/docs/firestore/security/rules-conditions" rel="noopener noreferrer"&gt;Security Rules conditions guide&lt;/a&gt; states that server client libraries bypass Firestore Security Rules. Their credentials and IAM configuration therefore need separate attention. A backend acting on a user's behalf also needs to enforce the application's authorization decisions.&lt;/p&gt;

&lt;p&gt;The same guide explains why rules do not behave like result filters. A client cannot query every document and expect Firestore to quietly return only authorized records; the query must satisfy the relevant constraints.&lt;/p&gt;

&lt;p&gt;Those details affect implementation reviews. I would trace a direct client request and a server-mediated request separately, then verify the policy applied on each route. Reviewing the visible button alone does not establish what either route permits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the person who should be refused
&lt;/h2&gt;

&lt;p&gt;The Garden's public documentation describes isolated demonstration data, including a synthetic directory used for validation. It distinguishes implementation checks from completed migration and staff acceptance. That is a useful distinction to keep when discussing access testing, too.&lt;/p&gt;

&lt;p&gt;For a comparable application, I would write a short set of refusal scenarios alongside the allowed workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A member requests another person's restricted record directly.&lt;/li&gt;
&lt;li&gt;A coordinator attempts an action outside the team they manage.&lt;/li&gt;
&lt;li&gt;A former coordinator retries the same action after access is removed.&lt;/li&gt;
&lt;li&gt;A user includes a protected field in an otherwise ordinary update.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are proposed test cases, not reported Garden test results. Each needs an expected decision and a check at the point that enforces it. A successful page load with demonstration data cannot establish all of those properties.&lt;/p&gt;

&lt;p&gt;The tradeoff is real: more precise permissions require more policy, more tests, and a way to explain refusals to users. Excessive exceptions can make the system harder to maintain. Start with the distinctions the actual work requires, and add specificity when a concrete workflow needs it.&lt;/p&gt;

&lt;p&gt;For teams consolidating software, GitHub's change is a useful reminder that permission design can improve alongside features. A shared identity removes repeated sign-ins. A precise access policy lets that convenience extend across more workflows without handing every person, integration, or future agent the same authority.&lt;/p&gt;

</description>
      <category>security</category>
    </item>
    <item>
      <title>A Correct AI Answer Can Still Be an Unusable Workflow</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Wed, 14 Oct 2026 15:26:02 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/a-correct-ai-answer-can-still-be-an-unusable-workflow-4f4j</link>
      <guid>https://dev.to/keith_azodeh/a-correct-ai-answer-can-still-be-an-unusable-workflow-4f4j</guid>
      <description>&lt;p&gt;An extracted price is only useful if someone can compare it with the next supplier's offer. An edited sentence is only useful if it lands on the right page. Those sound like ordinary software requirements. They are also where an AI feature starts becoming a working system.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: This article was researched and drafted with AI using my public project documentation and the linked technical sources.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Looking across my pricing, editing, and archive-search projects, I see a recurring design question: what has to be true before a model's output can become something another person relies on?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6gh5r5r7slg9s6mxps5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6gh5r5r7slg9s6mxps5.png" alt="Three handoffs: extracted price to comparable pricing record, proposed edit to versioned publication, and retrieved note to traceable answer." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Conceptual diagram generated with AI-written drawing code, based on public project documentation.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The price needs somewhere to go
&lt;/h2&gt;

&lt;p&gt;In my &lt;a href="https://asaday.co/projects/tmc-price-intelligence" rel="noopener noreferrer"&gt;TMC pricing project&lt;/a&gt;, supplier information arrived through emails, lists, and attachments. The workflow extracted product, size, price, region, and supplier into structured records for comparison. An early prototype used DeepSeek R1 for interpretation.&lt;/p&gt;

&lt;p&gt;Extraction was one stage. The wider work included a central pricing repository, reviewable reports, and quote and invoice workflows. The public case study describes a delivered 2023–2025 engagement; it should be read as project history, not a fresh benchmark of today's models.&lt;/p&gt;

&lt;p&gt;The useful unit here is a comparable pricing record. If two offers describe different sizes or regional contexts, putting their prices beside each other does not settle the comparison. A fluent extraction can still leave the operational question unresolved.&lt;/p&gt;

&lt;p&gt;For a similar system, I would evaluate the handoff explicitly: can a reviewer trace the extracted value to its source, understand the product description, and see what remains uncertain? Those are proposed evaluation questions, not additional features or measured results claimed for this project.&lt;/p&gt;

&lt;h2&gt;
  
  
  A paragraph belongs to a particular version
&lt;/h2&gt;

&lt;p&gt;My &lt;a href="https://asaday.co/projects/okeike-web-editor" rel="noopener noreferrer"&gt;Okeike editor&lt;/a&gt; approaches a different problem: making focused changes to existing websites. It combines recoverable drafts, AI-proposed edits, and publishing through GitHub commits and the existing Firebase deployment path.&lt;/p&gt;

&lt;p&gt;Its patching layer uses constrained selectors and structured fields. Source-version fingerprints and base-file identifiers help recognize when the file underneath a draft has changed. Static HTML and structured application content have different patching paths.&lt;/p&gt;

&lt;p&gt;That detail matters more than whether the suggested sentence reads beautifully. A proposed edit needs a target and a source version. Otherwise, a correct sentence can become an incorrect change.&lt;/p&gt;

&lt;p&gt;This also gives review a manageable scope. Someone can inspect a focused patch without reconstructing why an entire page was regenerated. The editor remains under development; a working publication path is different from claiming every client workflow is finished.&lt;/p&gt;

&lt;h2&gt;
  
  
  An archive answer needs its surrounding record
&lt;/h2&gt;

&lt;p&gt;For &lt;a href="https://asaday.co/projects/illumia" rel="noopener noreferrer"&gt;Illumia's archive tool&lt;/a&gt;, I built around the relationship between service cases and their work entries. Search results preserve the parent case context, so a matching note can be understood within its history.&lt;/p&gt;

&lt;p&gt;The Claude Desktop connection exposes six bounded, read-only retrieval tools. Counts and totals come from database queries. The assistant does not receive arbitrary SQL or write access, and the browser and assistant share the retrieval service.&lt;/p&gt;

&lt;p&gt;The implementation was tested with synthetic records. Actual archive relevance checks and workplace acceptance are separate steps. Keeping that distinction visible is part of describing the system honestly.&lt;/p&gt;

&lt;p&gt;This example changes the evaluation target again. An answer can quote a real note and still mislead if it leaves out the later work that resolved the issue. Retrieval quality includes preserving enough context for a person to check the interpretation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters as agent tooling expands
&lt;/h2&gt;

&lt;p&gt;GitHub's &lt;a href="https://github.blog/ai-and-ml/github-copilot/github-copilot-app-for-beginners-how-to-teach-copilot-about-your-codebase/" rel="noopener noreferrer"&gt;October 12, 2026 guide to teaching Copilot about a codebase&lt;/a&gt; separates repository instructions, repeatable skills, custom agents, and MCP connections. That is useful context for the current move toward agents embedded in existing development workflows.&lt;/p&gt;

&lt;p&gt;My reading is that these layers make the surrounding system increasingly important. Instructions describe conventions. Tools expose capabilities. The application still needs to decide which state changes are valid and how their results can be checked.&lt;/p&gt;

&lt;p&gt;Anthropic's &lt;a href="https://www.anthropic.com/engineering/managed-agents" rel="noopener noreferrer"&gt;April 2026 Managed Agents engineering article&lt;/a&gt; makes a related architectural point at infrastructure scale: session history, the agent loop, and execution environments can be separated so components can fail or be replaced independently. That is a vendor's architecture account, not evidence that every application needs the same infrastructure.&lt;/p&gt;

&lt;p&gt;For smaller teams, the practical implication is more modest: define the handoff before adding more autonomy. Specify the record being created or changed, the evidence that supports it, and what happens if the source changes or the action fails.&lt;/p&gt;

&lt;p&gt;There is a cost. Version checks, review screens, and durable records add implementation work. Too much review can also recreate the manual process the automation was supposed to improve. The right boundary depends on the consequences of a mistake and how easily someone can recover.&lt;/p&gt;

&lt;p&gt;In a project review, I would ask someone to follow one output all the way to its destination. Find the supplier offer behind the price. Locate the page version behind the patch. Open the case history behind the answer. The point where that trail breaks is a concrete place to improve the system.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
    </item>
    <item>
      <title>The Browser Is the New Operating System for AI Agents</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Wed, 29 Apr 2026 17:56:12 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/the-browser-is-the-new-operating-system-for-ai-agents-3022</link>
      <guid>https://dev.to/keith_azodeh/the-browser-is-the-new-operating-system-for-ai-agents-3022</guid>
      <description>&lt;p&gt;The future AI agent will not just answer questions in a chat window.&lt;/p&gt;

&lt;p&gt;It will open tabs.&lt;/p&gt;

&lt;p&gt;It will fill forms.&lt;/p&gt;

&lt;p&gt;It will read dashboards.&lt;/p&gt;

&lt;p&gt;It will compare options.&lt;/p&gt;

&lt;p&gt;It will submit requests.&lt;/p&gt;

&lt;p&gt;It will update records.&lt;/p&gt;

&lt;p&gt;It will move through the web like a trained employee moving through digital hallways.&lt;/p&gt;

&lt;p&gt;That is why I think the browser is quietly becoming the operating system for AI agents.&lt;/p&gt;

&lt;p&gt;Not because the browser replaces Windows, macOS, or Linux in a literal sense. I am talking about the browser as the place where work actually happens.&lt;/p&gt;

&lt;p&gt;For millions of people, the browser is already the real workstation.&lt;/p&gt;

&lt;p&gt;Job boards. CRMs. Billing portals. Scheduling tools. Medical intake forms. Government websites. School portals. Analytics dashboards. Admin panels. CMS editors. Banking tools. Applicant tracking systems. Internal business apps.&lt;/p&gt;

&lt;p&gt;The work is in the tabs.&lt;/p&gt;

&lt;p&gt;So if AI is going to do real work, eventually it has to touch the tabs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chat was the introduction. Action is the next layer.
&lt;/h2&gt;

&lt;p&gt;The first mainstream AI wave trained people to talk to machines.&lt;/p&gt;

&lt;p&gt;Ask a question. Get an answer. Draft an email. Summarize a document. Generate code. Explain a concept.&lt;/p&gt;

&lt;p&gt;That was important. It gave people a new interface for intelligence.&lt;/p&gt;

&lt;p&gt;But the next wave is not just intelligence that talks back.&lt;/p&gt;

&lt;p&gt;The next wave is intelligence that acts.&lt;/p&gt;

&lt;p&gt;And action requires surfaces.&lt;/p&gt;

&lt;p&gt;A chatbot can tell you what to do. A browser agent can actually move through the workflow where the task lives.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;If a job application lives inside an ATS portal, the agent has to interact with the portal.&lt;/p&gt;

&lt;p&gt;If a client website needs an update, the agent has to interact with the editor or content system.&lt;/p&gt;

&lt;p&gt;If a business workflow happens in a CRM, the agent has to read and update the CRM.&lt;/p&gt;

&lt;p&gt;If a customer books an appointment through a web form, the agent has to understand the form, the schedule, and the rules around submission.&lt;/p&gt;

&lt;p&gt;Before AI can “do work,” it has to touch the same surfaces where work already happens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Most work already happens in the browser
&lt;/h2&gt;

&lt;p&gt;Developers love clean systems.&lt;/p&gt;

&lt;p&gt;APIs. SDKs. Webhooks. Structured data. Good documentation. OAuth flows that behave. Everything neat and properly versioned.&lt;/p&gt;

&lt;p&gt;Real life is not always that generous.&lt;/p&gt;

&lt;p&gt;A lot of work still happens through browser interfaces because the browser is the shared surface everyone already understands.&lt;/p&gt;

&lt;p&gt;Employees log into dashboards.&lt;/p&gt;

&lt;p&gt;Applicants fill out forms.&lt;/p&gt;

&lt;p&gt;Customers book appointments.&lt;/p&gt;

&lt;p&gt;Admins update pages.&lt;/p&gt;

&lt;p&gt;Owners check analytics.&lt;/p&gt;

&lt;p&gt;Teams move information from one portal to another because nobody has built the perfect integration.&lt;/p&gt;

&lt;p&gt;The browser became the universal adapter for modern work.&lt;/p&gt;

&lt;p&gt;That is why browser automation is not a gimmick.&lt;/p&gt;

&lt;p&gt;It is infrastructure.&lt;/p&gt;

&lt;p&gt;A browser agent is not interesting because it clicks buttons. It is interesting because it can operate in the messy middle between humans and software that was never designed for AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  APIs are great, but the world still runs on forms
&lt;/h2&gt;

&lt;p&gt;APIs are better when you can get them.&lt;/p&gt;

&lt;p&gt;They are structured. They are faster. They are more reliable. They are easier to monitor. They are usually the right way to build serious integrations.&lt;/p&gt;

&lt;p&gt;But not every system exposes the API you need.&lt;/p&gt;

&lt;p&gt;Some APIs are expensive.&lt;/p&gt;

&lt;p&gt;Some require approval.&lt;/p&gt;

&lt;p&gt;Some do not include the specific workflow the user actually needs.&lt;/p&gt;

&lt;p&gt;Some tools have APIs, but the customer does not have access to them.&lt;/p&gt;

&lt;p&gt;Some industries are full of old portals, half-modern dashboards, vendor-locked systems, and forms that feel like they were designed during a lunch break in 2011.&lt;/p&gt;

&lt;p&gt;That is where the browser matters.&lt;/p&gt;

&lt;p&gt;A form is just an API with a face.&lt;/p&gt;

&lt;p&gt;It has fields. It has validation. It has state. It has submission rules. It has permissions. It has consequences.&lt;/p&gt;

&lt;p&gt;Humans already know how to operate forms. The question is whether AI can learn to operate them safely, transparently, and with the right approval gates.&lt;/p&gt;

&lt;p&gt;That is a major shift.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exempliphai exists because job applications are thousands of doors
&lt;/h2&gt;

&lt;p&gt;Job applications are a perfect example of why the browser matters.&lt;/p&gt;

&lt;p&gt;There is no single clean API for applying to every job on the internet.&lt;/p&gt;

&lt;p&gt;There are job boards. Company career pages. ATS systems. Profile forms. Resume uploads. Screening questions. Demographic fields. Salary expectations. Work authorization fields. Custom questions. Cover letter boxes. Different layouts. Different rules. Different levels of friction.&lt;/p&gt;

&lt;p&gt;If you are applying manually, you feel that fragmentation immediately.&lt;/p&gt;

&lt;p&gt;That was part of why I built Exempliphai.&lt;/p&gt;

&lt;p&gt;I was tired of answering the same fields over and over again. I wanted a system that could remember my context, help me move faster, find fresh opportunities, and package the repetitive parts of applying into something a normal person could actually use.&lt;/p&gt;

&lt;p&gt;The first version of that kind of automation can be messy. Local workflows, browser control, test servers, and tools that make sense to the builder but would scare a normal user.&lt;/p&gt;

&lt;p&gt;The product challenge is different.&lt;/p&gt;

&lt;p&gt;You have to turn that chaos into a safe interface.&lt;/p&gt;

&lt;p&gt;You have to reduce unnecessary permissions.&lt;/p&gt;

&lt;p&gt;You have to make the user feel in control.&lt;/p&gt;

&lt;p&gt;You have to show what is happening.&lt;/p&gt;

&lt;p&gt;You have to create trust.&lt;/p&gt;

&lt;p&gt;That is the real work behind browser-based AI agents.&lt;/p&gt;

&lt;p&gt;The point is not simply “AI can fill forms.”&lt;/p&gt;

&lt;p&gt;The point is that the browser becomes the action layer between a person’s intent and a fragmented digital world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Okeike is the other side of the same shift
&lt;/h2&gt;

&lt;p&gt;Job applications are one browser-native workflow.&lt;/p&gt;

&lt;p&gt;Website editing is another.&lt;/p&gt;

&lt;p&gt;That is where a project like Okeike fits into my thinking.&lt;/p&gt;

&lt;p&gt;A lot of people need websites updated. They need pages changed, content cleaned up, SEO improved, forms adjusted, images swapped, service pages rewritten, and project pages structured.&lt;/p&gt;

&lt;p&gt;But they do not always want to open a code editor. They do not want to deploy a site. They do not want to understand routing, components, metadata, build tools, or how a static site generator works.&lt;/p&gt;

&lt;p&gt;They just want the site to reflect the business.&lt;/p&gt;

&lt;p&gt;That is another browser-agent opportunity.&lt;/p&gt;

&lt;p&gt;AI-assisted web editing.&lt;/p&gt;

&lt;p&gt;Client-accessible page control.&lt;/p&gt;

&lt;p&gt;Structured content.&lt;/p&gt;

&lt;p&gt;SEO metadata.&lt;/p&gt;

&lt;p&gt;Safe publishing flows.&lt;/p&gt;

&lt;p&gt;Human approval before changes go live.&lt;/p&gt;

&lt;p&gt;Again, the browser is not just a window. It is the workbench.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Watch Dogs problem: everything connected, everything exposed
&lt;/h2&gt;

&lt;p&gt;Watch Dogs was broad, but it got one thing right: the world was becoming hyperconnected.&lt;/p&gt;

&lt;p&gt;Cameras. Doorbells. Cars. Phones. Payment systems. Databases. Location systems. Access control. Public infrastructure. Private dashboards. Internet of Things devices. Blockchains. APIs. Surveillance systems.&lt;/p&gt;

&lt;p&gt;We already live in a connected society. We just do not always feel the full weight of that connection because most people are not touching all the layers at once.&lt;/p&gt;

&lt;p&gt;AI agents change that.&lt;/p&gt;

&lt;p&gt;An agent with access to the browser may be able to touch dozens of systems through one surface.&lt;/p&gt;

&lt;p&gt;That is useful.&lt;/p&gt;

&lt;p&gt;It is also dangerous.&lt;/p&gt;

&lt;p&gt;The more connected the workflow, the more important permissions become.&lt;/p&gt;

&lt;p&gt;What can the agent read?&lt;/p&gt;

&lt;p&gt;What can it click?&lt;/p&gt;

&lt;p&gt;What can it submit?&lt;/p&gt;

&lt;p&gt;What can it delete?&lt;/p&gt;

&lt;p&gt;What can it purchase?&lt;/p&gt;

&lt;p&gt;What can it say on behalf of the user?&lt;/p&gt;

&lt;p&gt;What requires approval?&lt;/p&gt;

&lt;p&gt;What gets logged?&lt;/p&gt;

&lt;p&gt;What happens when it is wrong?&lt;/p&gt;

&lt;p&gt;If you build browser agents without answering those questions, you are not building automation. You are giving a fast system a blindfold and a set of keys.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser permissions are product design, not paperwork
&lt;/h2&gt;

&lt;p&gt;Chrome extensions already force builders to think about permissions. Chrome’s extension documentation separates permissions, optional permissions, content script matches, host permissions, and optional host permissions. That matters because users deserve to know what a tool can access.&lt;/p&gt;

&lt;p&gt;This is not just a technical requirement.&lt;/p&gt;

&lt;p&gt;It is product strategy.&lt;/p&gt;

&lt;p&gt;The more powerful your browser agent is, the more trust you have to earn.&lt;/p&gt;

&lt;p&gt;A tool that can read the current page is different from a tool that can read every page.&lt;/p&gt;

&lt;p&gt;A tool that can fill a field is different from a tool that can submit the form.&lt;/p&gt;

&lt;p&gt;A tool that can draft a message is different from a tool that can send it.&lt;/p&gt;

&lt;p&gt;A tool that can suggest an action is different from a tool that can take that action under your name.&lt;/p&gt;

&lt;p&gt;The interface should make those boundaries visible.&lt;/p&gt;

&lt;p&gt;Users should know when the agent is observing, drafting, editing, submitting, or waiting for approval.&lt;/p&gt;

&lt;p&gt;Invisible automation feels magical until it makes a mistake.&lt;/p&gt;

&lt;p&gt;Visible automation builds trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  The legal and consent layer cannot be skipped
&lt;/h2&gt;

&lt;p&gt;There are some things AI should not do blindly.&lt;/p&gt;

&lt;p&gt;Agreeing to terms.&lt;/p&gt;

&lt;p&gt;Signing contracts.&lt;/p&gt;

&lt;p&gt;Making financial commitments.&lt;/p&gt;

&lt;p&gt;Submitting legally sensitive information.&lt;/p&gt;

&lt;p&gt;Giving medical, legal, or financial advice without verification.&lt;/p&gt;

&lt;p&gt;The FTC has warned that AI responses can be inaccurate, misleading, or made up, and that people should not rely solely on chatbots for medical, legal, or financial advice. That principle applies directly to browser agents.&lt;/p&gt;

&lt;p&gt;Once an AI can act in the browser, it can cause real-world consequences.&lt;/p&gt;

&lt;p&gt;That does not mean we stop building.&lt;/p&gt;

&lt;p&gt;It means we build with layers.&lt;/p&gt;

&lt;p&gt;Read-only actions.&lt;/p&gt;

&lt;p&gt;Draft actions.&lt;/p&gt;

&lt;p&gt;Suggested actions.&lt;/p&gt;

&lt;p&gt;Approval-required actions.&lt;/p&gt;

&lt;p&gt;Blocked actions.&lt;/p&gt;

&lt;p&gt;Logged actions.&lt;/p&gt;

&lt;p&gt;Reversible actions.&lt;/p&gt;

&lt;p&gt;High-stakes actions.&lt;/p&gt;

&lt;p&gt;That is how you keep humans in control while still letting AI carry the repetitive weight.&lt;/p&gt;

&lt;h2&gt;
  
  
  What developers should build next
&lt;/h2&gt;

&lt;p&gt;If you are a developer looking at this space, do not just build another chat wrapper.&lt;/p&gt;

&lt;p&gt;Build systems that understand workflows.&lt;/p&gt;

&lt;p&gt;Start with one repeated browser-based process.&lt;/p&gt;

&lt;p&gt;Map every step.&lt;/p&gt;

&lt;p&gt;Find the surfaces.&lt;/p&gt;

&lt;p&gt;Separate reading from writing.&lt;/p&gt;

&lt;p&gt;Separate filling from submitting.&lt;/p&gt;

&lt;p&gt;Add confirmation gates.&lt;/p&gt;

&lt;p&gt;Log actions.&lt;/p&gt;

&lt;p&gt;Handle errors like a real product.&lt;/p&gt;

&lt;p&gt;Show the user what the agent is about to do.&lt;/p&gt;

&lt;p&gt;Let them approve, edit, reject, or take over.&lt;/p&gt;

&lt;p&gt;The best browser agents will not feel like ghosts in the machine.&lt;/p&gt;

&lt;p&gt;They will feel like power tools.&lt;/p&gt;

&lt;p&gt;Fast, useful, controlled, and dangerous only when used carelessly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser is where AI learns to work
&lt;/h2&gt;

&lt;p&gt;The chat window was AI’s introduction.&lt;/p&gt;

&lt;p&gt;The browser is where AI starts working.&lt;/p&gt;

&lt;p&gt;That shift is bigger than people realize.&lt;/p&gt;

&lt;p&gt;Because once agents can move through tabs, forms, dashboards, and portals, they can start interacting with the real operating layer of modern life.&lt;/p&gt;

&lt;p&gt;Not in theory.&lt;/p&gt;

&lt;p&gt;In the messy workflows people already use every day.&lt;/p&gt;

&lt;p&gt;Job applications. Client websites. Business dashboards. Scheduling tools. CRMs. Portals. Admin panels.&lt;/p&gt;

&lt;p&gt;The old internet was built for humans clicking through pages.&lt;/p&gt;

&lt;p&gt;The next internet will still have humans, but more and more of the clicking, reading, drafting, comparing, and filling will be handled by agents under human direction.&lt;/p&gt;

&lt;p&gt;That is the future I am building toward.&lt;/p&gt;

&lt;p&gt;Not AI as a toy.&lt;/p&gt;

&lt;p&gt;AI as an action layer.&lt;/p&gt;

&lt;p&gt;AI as a bridge between intent and execution.&lt;/p&gt;

&lt;p&gt;AI as a worker moving through the digital hallways where work already lives.&lt;/p&gt;

&lt;p&gt;Do not wait until every platform has a perfect API.&lt;/p&gt;

&lt;p&gt;The work is already in the browser.&lt;/p&gt;

&lt;p&gt;That is where the agents are going.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources and further reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Chrome Developers, &lt;a href="https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions?hl=en" rel="noopener noreferrer"&gt;Declare permissions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Chrome Developers, &lt;a href="https://developer.chrome.com/docs/extensions/mv2/runtime-host-permissions" rel="noopener noreferrer"&gt;User controls for host permissions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;FTC, &lt;a href="https://consumer.ftc.gov/consumer-alerts/2024/09/operation-ai-comply-detecting-ai-infused-frauds-and-deceptions" rel="noopener noreferrer"&gt;Operation AI Comply: Detecting AI-infused frauds and deceptions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Keith Azodeh, project hub: &lt;a href="https://asaday.co" rel="noopener noreferrer"&gt;asaday.co&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aiagents</category>
      <category>browserautomation</category>
      <category>automation</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Build vs. Buy vs. Prompt Is the Wrong AI Question</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Wed, 29 Apr 2026 17:40:37 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/build-vs-buy-vs-prompt-is-the-wrong-ai-question-9mb</link>
      <guid>https://dev.to/keith_azodeh/build-vs-buy-vs-prompt-is-the-wrong-ai-question-9mb</guid>
      <description>&lt;h2&gt;
  
  
  Build vs. Buy vs. Prompt Is the Wrong AI Question
&lt;/h2&gt;

&lt;p&gt;Everyone is arguing about the wrong layer.&lt;/p&gt;

&lt;p&gt;Should you build your own AI tool?&lt;/p&gt;

&lt;p&gt;Should you buy a SaaS platform?&lt;/p&gt;

&lt;p&gt;Should you just prompt ChatGPT, Claude, Gemini, or whatever model is winning the group chat this week?&lt;/p&gt;

&lt;p&gt;That question sounds practical, but it is usually too shallow.&lt;/p&gt;

&lt;p&gt;It is like arguing about which stove is best while nobody has a kitchen, a menu, ingredients, a chef, a reservation system, a cleaning process, or a way to charge customers.&lt;/p&gt;

&lt;p&gt;The stove matters.&lt;/p&gt;

&lt;p&gt;But the stove is not the restaurant.&lt;/p&gt;

&lt;p&gt;That is how a lot of people talk about AI right now. They confuse the model with the product. They confuse prompting with automation. They confuse a demo with an operating system. They confuse “the AI answered me” with “the workflow is solved.”&lt;/p&gt;

&lt;p&gt;The real AI stack is not one thing.&lt;/p&gt;

&lt;p&gt;It is layers.&lt;/p&gt;

&lt;p&gt;Prompts, context, memory, interfaces, tools, APIs, permissions, logs, evaluations, user experience, data flow, pricing, onboarding, support, and business logic all matter.&lt;/p&gt;

&lt;p&gt;If you ignore those layers, you do not have an AI product.&lt;/p&gt;

&lt;p&gt;You have a magic trick that breaks the moment real life touches it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The model is not the product
&lt;/h2&gt;

&lt;p&gt;Models are engines.&lt;/p&gt;

&lt;p&gt;They are powerful engines. They can reason, summarize, classify, draft, translate, plan, write code, extract information, and sometimes surprise you in ways that feel almost illegal.&lt;/p&gt;

&lt;p&gt;But an engine sitting on the floor is not a car.&lt;/p&gt;

&lt;p&gt;GPT, Claude, Gemini, Grok, open-source models — these are engines. They can create leverage, but only when they are installed inside a system that knows what to do with that leverage.&lt;/p&gt;

&lt;p&gt;A product needs an interface.&lt;/p&gt;

&lt;p&gt;A product needs users.&lt;/p&gt;

&lt;p&gt;A product needs permissions.&lt;/p&gt;

&lt;p&gt;A product needs context.&lt;/p&gt;

&lt;p&gt;A product needs a reason to exist when the user closes the chat window.&lt;/p&gt;

&lt;p&gt;A product needs to remember things, take actions, handle errors, explain itself, recover from failure, protect data, and make money.&lt;/p&gt;

&lt;p&gt;That is why “we use AI” means almost nothing by itself.&lt;/p&gt;

&lt;p&gt;Where?&lt;/p&gt;

&lt;p&gt;For whom?&lt;/p&gt;

&lt;p&gt;With what data?&lt;/p&gt;

&lt;p&gt;Connected to what tools?&lt;/p&gt;

&lt;p&gt;With what permissions?&lt;/p&gt;

&lt;p&gt;What happens when it is wrong?&lt;/p&gt;

&lt;p&gt;Who approves the final action?&lt;/p&gt;

&lt;p&gt;What gets logged?&lt;/p&gt;

&lt;p&gt;How do you measure whether it actually helped?&lt;/p&gt;

&lt;p&gt;Those questions are where the real work starts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompting gets you started. It does not make you durable.
&lt;/h2&gt;

&lt;p&gt;Prompting is useful. I use it constantly.&lt;/p&gt;

&lt;p&gt;But prompting by itself is not a moat.&lt;/p&gt;

&lt;p&gt;A prompt is a spark. It can start the fire, but it is not the fireplace, the fuel supply, the ventilation, the safety system, or the building the fire is supposed to heat.&lt;/p&gt;

&lt;p&gt;Prompting helps you think.&lt;/p&gt;

&lt;p&gt;Prompting helps you draft.&lt;/p&gt;

&lt;p&gt;Prompting helps you test ideas.&lt;/p&gt;

&lt;p&gt;Prompting helps you move faster.&lt;/p&gt;

&lt;p&gt;But if the workflow still depends on a human copying information into a chat window, copying the answer out, pasting it into another tool, checking six tabs, and manually deciding what happens next, then you did not automate the workflow. You just added a faster assistant to a slow pipeline.&lt;/p&gt;

&lt;p&gt;That is fine at the beginning.&lt;/p&gt;

&lt;p&gt;It is not enough when the workflow becomes important.&lt;/p&gt;

&lt;p&gt;The value starts when AI moves from conversation to integration.&lt;/p&gt;

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

&lt;p&gt;When I think about an AI product or automation system, I think in layers.&lt;/p&gt;

&lt;p&gt;Not because layers sound fancy. Because layers keep you honest.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The interface layer
&lt;/h3&gt;

&lt;p&gt;This is where the user touches the system.&lt;/p&gt;

&lt;p&gt;It could be a chat window, a voice call, a browser extension, a dashboard, a mobile app, a form, a command palette, or a backend admin panel.&lt;/p&gt;

&lt;p&gt;The interface matters because users do not experience your model. They experience your product.&lt;/p&gt;

&lt;p&gt;A brilliant AI system with a confusing interface will feel broken.&lt;/p&gt;

&lt;p&gt;A simple interface over a useful workflow can feel like magic.&lt;/p&gt;

&lt;p&gt;This is one reason I care so much about packaging. A personal automation can be messy. A product cannot. Users should not need to run a server, understand a repo, perform a git push, or read a technical manual to get value.&lt;/p&gt;

&lt;p&gt;The complexity should be behind the curtain.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The context layer
&lt;/h3&gt;

&lt;p&gt;This is what the AI knows before it speaks.&lt;/p&gt;

&lt;p&gt;Context can include user profiles, company data, CRM records, documents, past conversations, preferences, policies, files, browser state, or structured memory.&lt;/p&gt;

&lt;p&gt;Without context, the model guesses.&lt;/p&gt;

&lt;p&gt;With context, the model can help.&lt;/p&gt;

&lt;p&gt;This is the difference between asking an AI, “Write me a cover letter,” and giving it your actual history, the job description, your preferred tone, your projects, your constraints, your location, your salary range, and the parts of your background that matter for that specific role.&lt;/p&gt;

&lt;p&gt;One is generic.&lt;/p&gt;

&lt;p&gt;The other is useful.&lt;/p&gt;

&lt;p&gt;Context is where AI starts becoming personal without becoming fake.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The reasoning layer
&lt;/h3&gt;

&lt;p&gt;This is where the model interprets the task.&lt;/p&gt;

&lt;p&gt;It decides what the user wants, what information matters, what steps are required, and what uncertainty exists.&lt;/p&gt;

&lt;p&gt;But reasoning cannot float in the air. It has to be connected to rules and constraints.&lt;/p&gt;

&lt;p&gt;What should the system do when it is uncertain?&lt;/p&gt;

&lt;p&gt;What should it refuse?&lt;/p&gt;

&lt;p&gt;When should it ask for clarification?&lt;/p&gt;

&lt;p&gt;When should it escalate to a human?&lt;/p&gt;

&lt;p&gt;When should it stop?&lt;/p&gt;

&lt;p&gt;This is where a lot of AI demos fall apart. They look impressive when everything goes right, but the moment the user goes off-script, the system becomes a confident mess.&lt;/p&gt;

&lt;p&gt;A good reasoning layer needs humility built into it.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The tool layer
&lt;/h3&gt;

&lt;p&gt;This is where AI stops talking and starts acting.&lt;/p&gt;

&lt;p&gt;APIs. Browser actions. Database writes. Calendar events. Emails. CRM updates. File generation. Payment workflows. Form submissions. Search. Retrieval. Code execution.&lt;/p&gt;

&lt;p&gt;This layer is where the magic becomes dangerous.&lt;/p&gt;

&lt;p&gt;Because the moment an AI can take action, permissions matter.&lt;/p&gt;

&lt;p&gt;Read actions are different from write actions.&lt;/p&gt;

&lt;p&gt;Drafting an email is different from sending it.&lt;/p&gt;

&lt;p&gt;Filling a form is different from submitting it.&lt;/p&gt;

&lt;p&gt;Suggesting a contract clause is different from agreeing to terms under your legal name.&lt;/p&gt;

&lt;p&gt;If you do not separate these layers, you create systems that are either too weak to be useful or too dangerous to trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. The safety layer
&lt;/h3&gt;

&lt;p&gt;Safety is not just “do not say bad things.”&lt;/p&gt;

&lt;p&gt;Safety is permissions, review, visibility, audit logs, rate limits, fallbacks, escalation, and human approval.&lt;/p&gt;

&lt;p&gt;This is where you decide what the AI is allowed to do alone and what requires a human in the loop.&lt;/p&gt;

&lt;p&gt;I believe in automation. Heavy.&lt;/p&gt;

&lt;p&gt;But I do not believe in blindly handing legal, financial, medical, or identity-sensitive authority to a system without review.&lt;/p&gt;

&lt;p&gt;The question is not just whether AI can reason.&lt;/p&gt;

&lt;p&gt;The question is whose reasoning it follows when it acts on your behalf.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. The evaluation layer
&lt;/h3&gt;

&lt;p&gt;If you cannot measure the system, you cannot improve it.&lt;/p&gt;

&lt;p&gt;Every serious AI product needs some way to inspect performance.&lt;/p&gt;

&lt;p&gt;What did the model decide?&lt;/p&gt;

&lt;p&gt;What source did it use?&lt;/p&gt;

&lt;p&gt;What tool did it call?&lt;/p&gt;

&lt;p&gt;What failed?&lt;/p&gt;

&lt;p&gt;What did the user correct?&lt;/p&gt;

&lt;p&gt;What edge case keeps repeating?&lt;/p&gt;

&lt;p&gt;Where did it hallucinate?&lt;/p&gt;

&lt;p&gt;Where did it save time?&lt;/p&gt;

&lt;p&gt;Where did it create risk?&lt;/p&gt;

&lt;p&gt;Evaluation is not glamorous, but it is the difference between a toy and infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. The business layer
&lt;/h3&gt;

&lt;p&gt;This is the layer builders love to ignore until it punishes them.&lt;/p&gt;

&lt;p&gt;Who is the user?&lt;/p&gt;

&lt;p&gt;What pain is being solved?&lt;/p&gt;

&lt;p&gt;How often does that pain happen?&lt;/p&gt;

&lt;p&gt;What is the cost of doing nothing?&lt;/p&gt;

&lt;p&gt;Who pays?&lt;/p&gt;

&lt;p&gt;How do they onboard?&lt;/p&gt;

&lt;p&gt;How do they trust it?&lt;/p&gt;

&lt;p&gt;How do they get support?&lt;/p&gt;

&lt;p&gt;How does the product survive when the model price changes, the API changes, or a competitor copies the surface-level feature?&lt;/p&gt;

&lt;p&gt;AI does not remove business fundamentals.&lt;/p&gt;

&lt;p&gt;It exposes people who never had them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt vs. buy vs. build
&lt;/h2&gt;

&lt;p&gt;Now we can talk about the original question.&lt;/p&gt;

&lt;p&gt;Should you prompt, buy, or build?&lt;/p&gt;

&lt;p&gt;The answer depends on whether the workflow is casual, operational, or core.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prompt when the task is occasional
&lt;/h3&gt;

&lt;p&gt;Prompting is great when the task is low-risk, flexible, and not repeated enough to justify infrastructure.&lt;/p&gt;

&lt;p&gt;Brainstorming. Drafting. Summarizing. Learning. Exploring. Thinking through ideas.&lt;/p&gt;

&lt;p&gt;Prompting is the fastest way to start. It is also the easiest layer for someone else to copy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Buy when the workflow is standard
&lt;/h3&gt;

&lt;p&gt;Buying makes sense when the problem is common and your business does not need deep customization.&lt;/p&gt;

&lt;p&gt;Customer support. Meeting summaries. Basic email drafting. Standard CRM features. Generic knowledge base bots.&lt;/p&gt;

&lt;p&gt;If the workflow is not unique, buying can be smarter than building.&lt;/p&gt;

&lt;p&gt;But buying has limits. You inherit someone else’s assumptions, interface, permissions, pricing, roadmap, and constraints.&lt;/p&gt;

&lt;h3&gt;
  
  
  Build when the workflow is core
&lt;/h3&gt;

&lt;p&gt;Building makes sense when the workflow is central to your advantage.&lt;/p&gt;

&lt;p&gt;If it touches your proprietary data, your customer experience, your operational bottleneck, your product experience, or your unique process, building or deeply customizing may create leverage that off-the-shelf tools cannot.&lt;/p&gt;

&lt;p&gt;That is where developers win.&lt;/p&gt;

&lt;p&gt;Not by slapping a chatbot on a page.&lt;/p&gt;

&lt;p&gt;By turning a messy workflow into a system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why companies get stuck in pilot mode
&lt;/h2&gt;

&lt;p&gt;A lot of companies are using AI, but many are still stuck experimenting instead of scaling. McKinsey’s 2025 State of AI report says AI use is broadening, but most organizations remain in experimentation or piloting phases rather than capturing enterprise-level value at scale.&lt;/p&gt;

&lt;p&gt;That tracks with what I see.&lt;/p&gt;

&lt;p&gt;Companies do demos.&lt;/p&gt;

&lt;p&gt;They run pilots.&lt;/p&gt;

&lt;p&gt;They test a chatbot.&lt;/p&gt;

&lt;p&gt;They buy a tool.&lt;/p&gt;

&lt;p&gt;They announce “AI initiatives.”&lt;/p&gt;

&lt;p&gt;But the workflows do not change because the AI never gets connected to the system of record, the approval process, the real customer journey, or the operational bottleneck.&lt;/p&gt;

&lt;p&gt;It becomes a chandelier.&lt;/p&gt;

&lt;p&gt;Looks nice.&lt;/p&gt;

&lt;p&gt;Makes people feel modern.&lt;/p&gt;

&lt;p&gt;Does not move water through the pipes.&lt;/p&gt;

&lt;p&gt;AI has to be installed like plumbing, not decoration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agents are workers with tools, not magic spirits
&lt;/h2&gt;

&lt;p&gt;Everyone loves the word “agent” right now.&lt;/p&gt;

&lt;p&gt;But an agent is not magic.&lt;/p&gt;

&lt;p&gt;An agent needs a goal.&lt;/p&gt;

&lt;p&gt;It needs context.&lt;/p&gt;

&lt;p&gt;It needs tools.&lt;/p&gt;

&lt;p&gt;It needs guardrails.&lt;/p&gt;

&lt;p&gt;It needs feedback.&lt;/p&gt;

&lt;p&gt;It needs memory.&lt;/p&gt;

&lt;p&gt;It needs an escalation path.&lt;/p&gt;

&lt;p&gt;Without those, you do not have an agent. You have a chatbot with ambition.&lt;/p&gt;

&lt;p&gt;IBM’s 2025 CEO study found that many CEOs are actively adopting AI agents and preparing to scale them, while also pointing to challenges like disconnected technology and the need for integrated data architecture. That is the real battlefield.&lt;/p&gt;

&lt;p&gt;Agents are not valuable because they can talk.&lt;/p&gt;

&lt;p&gt;They are valuable when they can move through a workflow safely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where developers create leverage
&lt;/h2&gt;

&lt;p&gt;Developers create leverage in the boring places.&lt;/p&gt;

&lt;p&gt;Connecting systems.&lt;/p&gt;

&lt;p&gt;Designing interfaces.&lt;/p&gt;

&lt;p&gt;Managing permissions.&lt;/p&gt;

&lt;p&gt;Structuring context.&lt;/p&gt;

&lt;p&gt;Logging actions.&lt;/p&gt;

&lt;p&gt;Building fallback logic.&lt;/p&gt;

&lt;p&gt;Reducing friction.&lt;/p&gt;

&lt;p&gt;Turning business pain into a repeatable workflow.&lt;/p&gt;

&lt;p&gt;That is the work.&lt;/p&gt;

&lt;p&gt;The model is important, but the model is not the whole game. The game is orchestration.&lt;/p&gt;

&lt;p&gt;The game is building the bridge between human intent and machine action.&lt;/p&gt;

&lt;p&gt;The game is making the system usable enough that a nontechnical person can get value without seeing the chaos underneath.&lt;/p&gt;

&lt;h2&gt;
  
  
  The wrong question hides the right one
&lt;/h2&gt;

&lt;p&gt;Build vs. buy vs. prompt is not useless.&lt;/p&gt;

&lt;p&gt;It is just incomplete.&lt;/p&gt;

&lt;p&gt;The better question is:&lt;/p&gt;

&lt;p&gt;What layer of the stack are we missing?&lt;/p&gt;

&lt;p&gt;Maybe you need a prompt.&lt;/p&gt;

&lt;p&gt;Maybe you need a tool.&lt;/p&gt;

&lt;p&gt;Maybe you need an interface.&lt;/p&gt;

&lt;p&gt;Maybe you need cleaner data.&lt;/p&gt;

&lt;p&gt;Maybe you need a human approval step.&lt;/p&gt;

&lt;p&gt;Maybe you need an API integration.&lt;/p&gt;

&lt;p&gt;Maybe you need to stop pretending AI is the solution when the actual problem is a broken process.&lt;/p&gt;

&lt;p&gt;That is why I keep coming back to systems.&lt;/p&gt;

&lt;p&gt;Prompting gets you started.&lt;/p&gt;

&lt;p&gt;Integration gets you paid.&lt;/p&gt;

&lt;p&gt;Systems create leverage.&lt;/p&gt;

&lt;p&gt;If you are a developer, founder, operator, or business owner trying to figure out where AI belongs, start with the workflow. Map the pain. Find the repetitive motion. Find the decision point. Find the data. Find the tool the AI needs to touch. Find the place where a human still needs control.&lt;/p&gt;

&lt;p&gt;Then decide whether to prompt, buy, or build.&lt;/p&gt;

&lt;p&gt;Not before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources and further reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;McKinsey, &lt;a href="https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai/" rel="noopener noreferrer"&gt;The State of AI in 2025: Agents, innovation, and transformation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;IBM, &lt;a href="https://newsroom.ibm.com/2025-05-06-ibm-study-ceos-double-down-on-ai-while-navigating-enterprise-hurdles" rel="noopener noreferrer"&gt;CEOs Double Down on AI While Navigating Enterprise Hurdles&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;FTC, &lt;a href="https://consumer.ftc.gov/consumer-alerts/2024/09/operation-ai-comply-detecting-ai-infused-frauds-and-deceptions" rel="noopener noreferrer"&gt;Operation AI Comply: Detecting AI-infused frauds and deceptions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Keith Azodeh, project hub: &lt;a href="https://asaday.co" rel="noopener noreferrer"&gt;asaday.co&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>llm</category>
      <category>product</category>
    </item>
    <item>
      <title>Your Digital Self Will Outlive You. Your Resume Already Does.</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Wed, 29 Apr 2026 17:34:27 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/your-digital-self-will-outlive-you-your-resume-already-does-2k2h</link>
      <guid>https://dev.to/keith_azodeh/your-digital-self-will-outlive-you-your-resume-already-does-2k2h</guid>
      <description>&lt;p&gt;&lt;em&gt;Altered Carbon&lt;/em&gt; imagined consciousness stored in a stack.&lt;/p&gt;

&lt;p&gt;We are not there yet. Not really. You cannot pull a person out of one body, drop them into another, and keep the same mind running like software on a new machine.&lt;/p&gt;

&lt;p&gt;But your professional identity already lives outside your body.&lt;/p&gt;

&lt;p&gt;Your resume. Your LinkedIn. Your GitHub. Your portfolio. Your application history. Your screenshots, articles, posts, case studies, pitch decks, search results, side projects, and half-finished ideas sitting in folders you forgot existed.&lt;/p&gt;

&lt;p&gt;That is already a primitive version of a digital stack.&lt;/p&gt;

&lt;p&gt;It is not your soul. It is not your full identity. But it is the version of you that gets searched, filtered, judged, ranked, summarized, invited, rejected, remembered, and misremembered.&lt;/p&gt;

&lt;p&gt;And now AI is beginning to touch that stack.&lt;/p&gt;

&lt;p&gt;That means your digital self is about to become editable at scale.&lt;/p&gt;

&lt;p&gt;Damn.&lt;/p&gt;

&lt;p&gt;That should excite you and unsettle you at the same time.&lt;/p&gt;

&lt;p&gt;Because the future identity problem is not just privacy. It is authorship.&lt;/p&gt;

&lt;p&gt;Who writes the version of you that the world sees?&lt;/p&gt;

&lt;p&gt;You? The platforms? Recruiters? Search engines? AI models? Old resumes? Random public records? A stale LinkedIn headline you wrote three years ago because you needed something to put there?&lt;/p&gt;

&lt;p&gt;Do not wait until the internet decides who you are.&lt;/p&gt;

&lt;p&gt;Build the stack yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your resume is not your identity, but it acts like it
&lt;/h2&gt;

&lt;p&gt;A resume is not your career.&lt;/p&gt;

&lt;p&gt;It is a compressed screenshot of your career, usually taken at the worst possible resolution.&lt;/p&gt;

&lt;p&gt;Think about what a resume actually does. It takes years of work, learning, problem solving, relationships, projects, pivots, late nights, failures, wins, and technical context, then squeezes all of that into one or two pages.&lt;/p&gt;

&lt;p&gt;It asks you to summarize your professional life in bullet points.&lt;/p&gt;

&lt;p&gt;It asks you to turn human complexity into keywords.&lt;/p&gt;

&lt;p&gt;It asks you to remember every relevant detail on command, but only include the details that fit the specific job, the specific company, the specific recruiter, the specific ATS system, and the specific moment.&lt;/p&gt;

&lt;p&gt;That is not identity. That is lossy compression.&lt;/p&gt;

&lt;p&gt;And once it gets uploaded, it starts acting like identity.&lt;/p&gt;

&lt;p&gt;An ATS reads it. A recruiter skims it. A hiring manager compares it against someone else. A model summarizes it. A platform stores it. A search engine indexes the page attached to it. Suddenly, this little compressed document becomes your representative in rooms you never entered.&lt;/p&gt;

&lt;p&gt;It starts speaking for you.&lt;/p&gt;

&lt;p&gt;The problem is not that resumes exist. The problem is that we still treat them like static documents when careers are becoming dynamic systems.&lt;/p&gt;

&lt;p&gt;You are not one PDF.&lt;/p&gt;

&lt;p&gt;You are a database of experience, context, skills, projects, judgment, preferences, constraints, and stories.&lt;/p&gt;

&lt;p&gt;The resume is just one output.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI makes identity editable at scale
&lt;/h2&gt;

&lt;p&gt;Before AI, updating your professional identity was annoying but limited.&lt;/p&gt;

&lt;p&gt;You rewrote your resume manually. You adjusted your LinkedIn headline. You changed your portfolio copy. You asked a friend to look over your bio. Maybe you paid someone to clean it up.&lt;/p&gt;

&lt;p&gt;It was slow enough that people did not constantly reinvent themselves.&lt;/p&gt;

&lt;p&gt;Now, that bottleneck is gone.&lt;/p&gt;

&lt;p&gt;AI can rewrite a resume in seconds. It can generate a cover letter. It can tune a LinkedIn summary. It can summarize a GitHub repository. It can turn a voice note into a founder story. It can build a portfolio page. It can create ten versions of your bio for ten different audiences.&lt;/p&gt;

&lt;p&gt;This is powerful.&lt;/p&gt;

&lt;p&gt;It is also dangerous.&lt;/p&gt;

&lt;p&gt;Because when identity becomes easy to edit, the line between clarity and performance gets thinner.&lt;/p&gt;

&lt;p&gt;There is a clean version of this future and a dirty version.&lt;/p&gt;

&lt;p&gt;The clean version uses AI to help you remember what you actually did, explain it better, and present it in the right context.&lt;/p&gt;

&lt;p&gt;The dirty version uses AI to manufacture a professional character loosely inspired by you.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;Tailoring is not lying.&lt;/p&gt;

&lt;p&gt;Translation is not fabrication.&lt;/p&gt;

&lt;p&gt;If I built a product, led a workflow, integrated tools, designed a system, wrote code, or solved a business problem, AI helping me surface the right detail for the right role is not fake. That is clarity.&lt;/p&gt;

&lt;p&gt;But if AI starts inventing credentials, employers, metrics, awards, clients, or experience that never happened, that is not optimization. That is fraud with better formatting.&lt;/p&gt;

&lt;p&gt;The future belongs to people who understand the difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exempliphai and the idea of externalized memory
&lt;/h2&gt;

&lt;p&gt;One of the reasons I built Exempliphai was because job applications were forcing me to repeat myself like a machine.&lt;/p&gt;

&lt;p&gt;Name. Email. Work history. Education. Salary expectations. Preferences. Demographics. Why are you a good fit? Upload resume. Re-enter everything already on the resume. Do it again. Do it again. Do it again.&lt;/p&gt;

&lt;p&gt;After a while, the job search starts to feel less like presenting yourself and more like working on an assembly line where the product is your own identity.&lt;/p&gt;

&lt;p&gt;The deeper frustration was not just the typing.&lt;/p&gt;

&lt;p&gt;It was the memory problem.&lt;/p&gt;

&lt;p&gt;A lot of us have done too many things to fit neatly into one page. We have touched projects, systems, tools, clients, workflows, and responsibilities that do not come to mind instantly when a job form asks some generic question.&lt;/p&gt;

&lt;p&gt;That is where AI becomes interesting.&lt;/p&gt;

&lt;p&gt;Not because it can make you sound fancy.&lt;/p&gt;

&lt;p&gt;Because it can help you remember.&lt;/p&gt;

&lt;p&gt;It can become a mirror with memory.&lt;/p&gt;

&lt;p&gt;If you give it enough honest context, it can help retrieve pieces of your own experience that you may have forgotten were relevant. It can connect dots across your career. It can say, “This role is asking for X, but remember when you did something similar on Y?”&lt;/p&gt;

&lt;p&gt;That is not cheating.&lt;/p&gt;

&lt;p&gt;That is externalized memory.&lt;/p&gt;

&lt;p&gt;And externalized memory is one of the most underrated parts of the AI shift.&lt;/p&gt;

&lt;p&gt;Humans forget. We compress. We undersell ourselves. We over-focus on the most recent thing. We fail to connect experiences that actually belong together.&lt;/p&gt;

&lt;p&gt;AI, when used correctly, can help rebuild that context.&lt;/p&gt;

&lt;p&gt;The value is not just filling forms faster.&lt;/p&gt;

&lt;p&gt;The value is remembering better at the moment the memory matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your online presence is already being used against or for you
&lt;/h2&gt;

&lt;p&gt;Even if you do not think about personal branding, personal branding is thinking about you.&lt;/p&gt;

&lt;p&gt;Search your name. What comes up?&lt;/p&gt;

&lt;p&gt;LinkedIn? GitHub? Old pages? A project? A random mention? A half-empty profile? Something you wish was not there?&lt;/p&gt;

&lt;p&gt;That first page of results is not neutral. It is a reputation surface.&lt;/p&gt;

&lt;p&gt;It tells a story, even when you never intentionally wrote one.&lt;/p&gt;

&lt;p&gt;And in a world where AI tools can summarize people quickly, your public footprint becomes raw material. It becomes training context for humans and machines trying to understand you.&lt;/p&gt;

&lt;p&gt;If your digital presence is empty, outdated, messy, or controlled entirely by third-party platforms, you are letting the internet decide the story.&lt;/p&gt;

&lt;p&gt;That is a terrible strategy.&lt;/p&gt;

&lt;p&gt;Especially now.&lt;/p&gt;

&lt;p&gt;Because your digital self will increasingly be assembled automatically. Recruiters will use tools to summarize candidates. Clients will search before booking. Investors will look for signals. Employers will compare your resume against your online footprint. People will ask AI who you are and what you have built.&lt;/p&gt;

&lt;p&gt;The question is not whether your digital self exists.&lt;/p&gt;

&lt;p&gt;It does.&lt;/p&gt;

&lt;p&gt;The question is whether you are actively building it or passively inheriting whatever the web collected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authorship is the real fight
&lt;/h2&gt;

&lt;p&gt;People love to talk about privacy, and privacy matters.&lt;/p&gt;

&lt;p&gt;But authorship may matter just as much.&lt;/p&gt;

&lt;p&gt;Who gets to define you?&lt;/p&gt;

&lt;p&gt;A platform profile? A recruiter note? A resume parser? A search engine snippet? A model summary? A stale bio? A bad article? A public record? A random algorithm trying to guess your relevance?&lt;/p&gt;

&lt;p&gt;If you do not build your own professional stack, other systems will build one around you.&lt;/p&gt;

&lt;p&gt;And they will not ask for your permission.&lt;/p&gt;

&lt;p&gt;This is where the Altered Carbon metaphor becomes useful.&lt;/p&gt;

&lt;p&gt;In that world, the stack holds the person.&lt;/p&gt;

&lt;p&gt;In our world, your digital stack holds the professional version of you that markets, institutions, platforms, and employers interact with.&lt;/p&gt;

&lt;p&gt;It is not consciousness.&lt;/p&gt;

&lt;p&gt;But it is leverage.&lt;/p&gt;

&lt;p&gt;A strong digital stack protects you. It gives people better evidence. It lets your work speak when you are not in the room. It makes your experience searchable, linkable, and understandable. It creates a layer of armor between you and whatever random result, old resume, or third-party summary tries to define you.&lt;/p&gt;

&lt;p&gt;That is why the personal website is not dead.&lt;/p&gt;

&lt;p&gt;That is why the portfolio matters.&lt;/p&gt;

&lt;p&gt;That is why GitHub matters.&lt;/p&gt;

&lt;p&gt;That is why articles matter.&lt;/p&gt;

&lt;p&gt;That is why project pages matter.&lt;/p&gt;

&lt;p&gt;That is why your resume should not just be a PDF sitting in a folder.&lt;/p&gt;

&lt;p&gt;Your professional identity should be a living system.&lt;/p&gt;

&lt;h2&gt;
  
  
  The future resume will be dynamic
&lt;/h2&gt;

&lt;p&gt;The resume of the future will not be one static file.&lt;/p&gt;

&lt;p&gt;It will be structured data.&lt;/p&gt;

&lt;p&gt;It will understand your projects, skills, industries, responsibilities, tools, outcomes, writing samples, links, constraints, and preferences.&lt;/p&gt;

&lt;p&gt;It will generate different outputs depending on context.&lt;/p&gt;

&lt;p&gt;A healthcare software role should not get the same version of you as an AI automation role. A startup founder should not read the same framing as an enterprise recruiter. A client looking for a web app does not need the same emphasis as a company looking for technical sales support.&lt;/p&gt;

&lt;p&gt;Same person.&lt;/p&gt;

&lt;p&gt;Different lens.&lt;/p&gt;

&lt;p&gt;That is not fake.&lt;/p&gt;

&lt;p&gt;That is communication.&lt;/p&gt;

&lt;p&gt;The old resume forces one version of you to do every job. The new resume should behave more like a database with a smart query layer.&lt;/p&gt;

&lt;p&gt;Ask the right question, get the right version.&lt;/p&gt;

&lt;p&gt;This is where tools like Exempliphai become more than autofill.&lt;/p&gt;

&lt;p&gt;The autofill is useful. The application tracking is useful. The role-specific answers are useful. But the bigger idea is that your career data can become operational.&lt;/p&gt;

&lt;p&gt;It can move.&lt;/p&gt;

&lt;p&gt;It can adapt.&lt;/p&gt;

&lt;p&gt;It can help you show up faster and more clearly in systems that are already automated on the hiring side.&lt;/p&gt;

&lt;p&gt;Because make no mistake: hiring has been automated for years.&lt;/p&gt;

&lt;p&gt;ATS systems, resume parsers, ranking tools, AI-assisted notes, automated screening, and algorithmic decision systems are already part of the employment landscape. The EEOC has warned that AI and algorithmic tools used in hiring can mask bias or create discriminatory barriers, and that employment laws still apply to these systems. (&lt;a href="https://www.eeoc.gov/newsroom/eeoc-launches-initiative-artificial-intelligence-and-algorithmic-fairness" rel="noopener noreferrer"&gt;EEOC&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;If the hiring side is automated, the applicant side cannot stay manual forever.&lt;/p&gt;

&lt;p&gt;Nature abhors a vacuum.&lt;/p&gt;

&lt;p&gt;The system will rebalance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the human in the loop
&lt;/h2&gt;

&lt;p&gt;I am aggressively pro-automation.&lt;/p&gt;

&lt;p&gt;But not blindly.&lt;/p&gt;

&lt;p&gt;There are things AI should help with, and there are things AI should not silently take over.&lt;/p&gt;

&lt;p&gt;It should help you remember your experience.&lt;/p&gt;

&lt;p&gt;It should help you tailor your resume.&lt;/p&gt;

&lt;p&gt;It should help you fill repetitive fields.&lt;/p&gt;

&lt;p&gt;It should help you build a better professional website.&lt;/p&gt;

&lt;p&gt;It should help you turn messy experience into clear language.&lt;/p&gt;

&lt;p&gt;But when the action is tied to your legal name, your consent, your money, your health, your rights, or your reputation, the human needs to stay in the loop.&lt;/p&gt;

&lt;p&gt;Automation should carry the bags.&lt;/p&gt;

&lt;p&gt;It should not sign your name to a contract you did not read.&lt;/p&gt;

&lt;p&gt;The FTC has warned that AI outputs can be inaccurate, inadequate, misleading, or made up, especially when companies overstate what AI tools can safely do in high-stakes contexts. (&lt;a href="https://consumer.ftc.gov/consumer-alerts/2024/09/operation-ai-comply-detecting-ai-infused-frauds-and-deceptions" rel="noopener noreferrer"&gt;FTC&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;That is the line.&lt;/p&gt;

&lt;p&gt;Use AI to extend memory, reduce repetition, and improve clarity.&lt;/p&gt;

&lt;p&gt;Do not hand over authorship of your life.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build the stack before someone else does
&lt;/h2&gt;

&lt;p&gt;The status quo is not an option.&lt;/p&gt;

&lt;p&gt;The old way was: create a resume, apply manually, hope someone sees it, maybe update LinkedIn every few months, and let search results be whatever they are.&lt;/p&gt;

&lt;p&gt;That is too passive now.&lt;/p&gt;

&lt;p&gt;The new way is active.&lt;/p&gt;

&lt;p&gt;Own your name.&lt;/p&gt;

&lt;p&gt;Own your website.&lt;/p&gt;

&lt;p&gt;Own your project pages.&lt;/p&gt;

&lt;p&gt;Own your case studies.&lt;/p&gt;

&lt;p&gt;Own your resume data.&lt;/p&gt;

&lt;p&gt;Own your public narrative.&lt;/p&gt;

&lt;p&gt;Own the links between your work.&lt;/p&gt;

&lt;p&gt;Own the context that AI systems will eventually summarize.&lt;/p&gt;

&lt;p&gt;Because your digital self is not going away. It is only becoming more important.&lt;/p&gt;

&lt;p&gt;People will search it. Systems will parse it. Models will summarize it. Recruiters will compare it. Clients will use it to decide whether to trust you.&lt;/p&gt;

&lt;p&gt;So build it intentionally.&lt;/p&gt;

&lt;p&gt;Do not wait until a platform, institution, recruiter, or algorithm decides where you fit in the hierarchy.&lt;/p&gt;

&lt;p&gt;You are capable of building the stack now.&lt;/p&gt;

&lt;p&gt;Start with one page. One project. One article. One clean resume. One portfolio. One system that remembers what you have done better than your tired brain can on command.&lt;/p&gt;

&lt;p&gt;Your digital self will outlive this moment.&lt;/p&gt;

&lt;p&gt;Make sure it is actually yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources and further reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;EEOC: &lt;a href="https://www.eeoc.gov/newsroom/eeoc-launches-initiative-artificial-intelligence-and-algorithmic-fairness" rel="noopener noreferrer"&gt;Artificial Intelligence and Algorithmic Fairness Initiative&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;FTC: &lt;a href="https://consumer.ftc.gov/consumer-alerts/2024/09/operation-ai-comply-detecting-ai-infused-frauds-and-deceptions" rel="noopener noreferrer"&gt;Operation AI Comply: Detecting AI-infused frauds and deceptions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Keith Azodeh: &lt;a href="https://asaday.co" rel="noopener noreferrer"&gt;asaday.co&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dev.to: &lt;a href="https://dev.to/keith_azodeh"&gt;Keith Azodeh&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://medium.com/@keithazodeh" rel="noopener noreferrer"&gt;@keithazodeh&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>digitalidentity</category>
      <category>ai</category>
      <category>branding</category>
      <category>resume</category>
    </item>
    <item>
      <title>Recency Is King: Why the First 50 Job Applicants Play a Different Game</title>
      <dc:creator>Keith Azodeh</dc:creator>
      <pubDate>Wed, 29 Apr 2026 02:48:14 +0000</pubDate>
      <link>https://dev.to/keith_azodeh/recency-is-king-why-the-first-50-job-applicants-play-a-different-game-22oe</link>
      <guid>https://dev.to/keith_azodeh/recency-is-king-why-the-first-50-job-applicants-play-a-different-game-22oe</guid>
      <description>&lt;p&gt;&lt;em&gt;Two people can have the same résumé, same skills, and same experience—but if one applies when the job is posted and the other applies after 900 people, they are not playing the same game.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The job search has a timing problem.&lt;/p&gt;

&lt;p&gt;People talk about qualifications, keywords, networking, résumés, referrals, and interviews.&lt;/p&gt;

&lt;p&gt;All of that matters.&lt;/p&gt;

&lt;p&gt;But timing matters too.&lt;/p&gt;

&lt;p&gt;A lot more than people want to admit.&lt;/p&gt;

&lt;p&gt;A job posted ten minutes ago is not the same opportunity as a job posted ten days ago.&lt;/p&gt;

&lt;p&gt;The title may be the same. The company may be the same. The application form may be the same. But the human context around that job is completely different.&lt;/p&gt;

&lt;p&gt;Early in the process, the role still has energy.&lt;/p&gt;

&lt;p&gt;The recruiter is still fresh.&lt;/p&gt;

&lt;p&gt;The applicant pool is still manageable.&lt;/p&gt;

&lt;p&gt;The hiring manager may still be paying attention.&lt;/p&gt;

&lt;p&gt;The comparison set is still forming.&lt;/p&gt;

&lt;p&gt;Later, that same job becomes a flood.&lt;/p&gt;

&lt;p&gt;And once the flood opens, individual attention becomes expensive.&lt;/p&gt;

&lt;p&gt;That is why I say:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recency is king.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The job market pretends timing is neutral
&lt;/h2&gt;

&lt;p&gt;On the surface, job applications look like a fair queue.&lt;/p&gt;

&lt;p&gt;Everybody submits.&lt;/p&gt;

&lt;p&gt;Everybody gets reviewed.&lt;/p&gt;

&lt;p&gt;The best candidates rise to the top.&lt;/p&gt;

&lt;p&gt;That sounds nice.&lt;/p&gt;

&lt;p&gt;But anyone who has actually been inside a messy human system knows that is not how attention works.&lt;/p&gt;

&lt;p&gt;Recruiters are human.&lt;/p&gt;

&lt;p&gt;Hiring managers are human.&lt;/p&gt;

&lt;p&gt;Teams are busy.&lt;/p&gt;

&lt;p&gt;Budgets change.&lt;/p&gt;

&lt;p&gt;Priorities shift.&lt;/p&gt;

&lt;p&gt;Inbox fatigue is real.&lt;/p&gt;

&lt;p&gt;Even when companies use applicant tracking systems, AI filters, automated rankings, templates, and screening tools, the overall process still runs through human bottlenecks.&lt;/p&gt;

&lt;p&gt;The EEOC has held hearings on the increasing use of AI and automated systems in employment decisions, including recruitment and hiring. That means the system is already technical, already automated, and already complex.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://www.eeoc.gov/newsroom/eeoc-hearing-explores-potential-benefits-and-harms-artificial-intelligence-and-other" rel="noopener noreferrer"&gt;EEOC hearing on AI and automated systems in employment decisions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But automation does not remove human attention limits.&lt;/p&gt;

&lt;p&gt;It just rearranges where they show up.&lt;/p&gt;

&lt;p&gt;And that is where recency matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first batch advantage
&lt;/h2&gt;

&lt;p&gt;The first applicants do not just apply to the job.&lt;/p&gt;

&lt;p&gt;They help define what the recruiter thinks the job market looks like.&lt;/p&gt;

&lt;p&gt;That is the part people miss.&lt;/p&gt;

&lt;p&gt;When a role opens, the company may have an idea of what it wants. But that idea is often still flexible. The recruiter is calibrating. The hiring manager is clarifying. The team is figuring out what kind of candidates are actually available.&lt;/p&gt;

&lt;p&gt;The first batch shapes the conversation.&lt;/p&gt;

&lt;p&gt;If the first ten applicants are weak, the eleventh solid applicant may look amazing.&lt;/p&gt;

&lt;p&gt;If the first fifty applicants all have one kind of background, a different profile may stand out.&lt;/p&gt;

&lt;p&gt;If the recruiter sees your application while the role is still new, you are entering before the job becomes another overloaded queue.&lt;/p&gt;

&lt;p&gt;That does not guarantee anything.&lt;/p&gt;

&lt;p&gt;But it changes the game.&lt;/p&gt;

&lt;p&gt;The same résumé can feel different depending on when it appears.&lt;/p&gt;

&lt;p&gt;Fresh fruit at the market gets handled differently than fruit buried at the bottom of the pile.&lt;/p&gt;

&lt;p&gt;Same fruit.&lt;/p&gt;

&lt;p&gt;Different timing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recruiters do not have infinite attention
&lt;/h2&gt;

&lt;p&gt;This is not an attack on recruiters.&lt;/p&gt;

&lt;p&gt;It is the opposite.&lt;/p&gt;

&lt;p&gt;It is an acknowledgment that recruiters are human.&lt;/p&gt;

&lt;p&gt;If a role gets hundreds or thousands of applicants, nobody is giving every résumé the same emotional energy, curiosity, and patience.&lt;/p&gt;

&lt;p&gt;That is not realistic.&lt;/p&gt;

&lt;p&gt;At some point, review becomes triage.&lt;/p&gt;

&lt;p&gt;At some point, the system starts looking for reasons to say no faster.&lt;/p&gt;

&lt;p&gt;At some point, attention collapses.&lt;/p&gt;

&lt;p&gt;The first batch gets a different kind of recruiter than the thousandth applicant.&lt;/p&gt;

&lt;p&gt;That sounds harsh, but it is true.&lt;/p&gt;

&lt;p&gt;The job market is not just a meritocracy.&lt;/p&gt;

&lt;p&gt;It is also a timing system.&lt;/p&gt;

&lt;p&gt;A queue system.&lt;/p&gt;

&lt;p&gt;A filtering system.&lt;/p&gt;

&lt;p&gt;A human attention system.&lt;/p&gt;

&lt;p&gt;And if you ignore that, you are playing the game with one eye closed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Manual job search makes you late
&lt;/h2&gt;

&lt;p&gt;This is one of the reasons I started building around job automation.&lt;/p&gt;

&lt;p&gt;Manual job search is slow by design.&lt;/p&gt;

&lt;p&gt;You have to find the role.&lt;/p&gt;

&lt;p&gt;Read the description.&lt;/p&gt;

&lt;p&gt;Decide if it fits.&lt;/p&gt;

&lt;p&gt;Edit your résumé.&lt;/p&gt;

&lt;p&gt;Write or adjust a cover letter.&lt;/p&gt;

&lt;p&gt;Create yet another account.&lt;/p&gt;

&lt;p&gt;Re-enter your name.&lt;/p&gt;

&lt;p&gt;Re-enter your phone number.&lt;/p&gt;

&lt;p&gt;Re-enter your address.&lt;/p&gt;

&lt;p&gt;Re-enter your work history.&lt;/p&gt;

&lt;p&gt;Re-enter your education.&lt;/p&gt;

&lt;p&gt;Answer demographic questions.&lt;/p&gt;

&lt;p&gt;Answer custom questions.&lt;/p&gt;

&lt;p&gt;Upload the same file.&lt;/p&gt;

&lt;p&gt;Check the same boxes.&lt;/p&gt;

&lt;p&gt;Then do it again.&lt;/p&gt;

&lt;p&gt;And again.&lt;/p&gt;

&lt;p&gt;And again.&lt;/p&gt;

&lt;p&gt;By the time you finish carefully applying to five jobs, someone else using automation may have found fifty fresh postings, tailored their context, and entered the pipeline earlier.&lt;/p&gt;

&lt;p&gt;That does not mean they are better.&lt;/p&gt;

&lt;p&gt;It means they are positioned better.&lt;/p&gt;

&lt;p&gt;In a gold rush, early movers do not need perfect tools.&lt;/p&gt;

&lt;p&gt;They need enough tools to start digging before the crowd shows up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real advantage is not speed. It is context.
&lt;/h2&gt;

&lt;p&gt;Some people hear “AI job automation” and think the goal is to blast low-quality applications everywhere.&lt;/p&gt;

&lt;p&gt;That is not the future I am interested in.&lt;/p&gt;

&lt;p&gt;Speed without context is spam.&lt;/p&gt;

&lt;p&gt;The real advantage is speed plus relevance.&lt;/p&gt;

&lt;p&gt;That means a system should know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your work history&lt;/li&gt;
&lt;li&gt;Your education&lt;/li&gt;
&lt;li&gt;Your projects&lt;/li&gt;
&lt;li&gt;Your skills&lt;/li&gt;
&lt;li&gt;Your preferences&lt;/li&gt;
&lt;li&gt;Your salary expectations&lt;/li&gt;
&lt;li&gt;Your location constraints&lt;/li&gt;
&lt;li&gt;Your strengths&lt;/li&gt;
&lt;li&gt;Your previous answers&lt;/li&gt;
&lt;li&gt;The kind of roles you actually want&lt;/li&gt;
&lt;li&gt;Which parts of your background matter for this specific job&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The power is not just autofill.&lt;/p&gt;

&lt;p&gt;The power is contextual memory.&lt;/p&gt;

&lt;p&gt;A lot of people have done more than they can remember on demand. They have touched tools, projects, systems, workflows, and responsibilities that never made it onto a one-page résumé.&lt;/p&gt;

&lt;p&gt;So when a fresh job appears, the right system should help answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What part of my real background matters here?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the shift.&lt;/p&gt;

&lt;p&gt;Not fake experience.&lt;/p&gt;

&lt;p&gt;Not mass deception.&lt;/p&gt;

&lt;p&gt;Not pretending to be someone else.&lt;/p&gt;

&lt;p&gt;Just better retrieval.&lt;/p&gt;

&lt;p&gt;Better timing.&lt;/p&gt;

&lt;p&gt;Better presentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should be automated
&lt;/h2&gt;

&lt;p&gt;If you are a job seeker, there are parts of the process that should absolutely be automated.&lt;/p&gt;

&lt;p&gt;There is no moral victory in manually typing your name into the 300th form.&lt;/p&gt;

&lt;p&gt;Automate the repetitive parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic personal information&lt;/li&gt;
&lt;li&gt;Work history&lt;/li&gt;
&lt;li&gt;Education history&lt;/li&gt;
&lt;li&gt;Salary preferences&lt;/li&gt;
&lt;li&gt;Location preferences&lt;/li&gt;
&lt;li&gt;Job tracking&lt;/li&gt;
&lt;li&gt;Fresh job discovery&lt;/li&gt;
&lt;li&gt;Role-fit summaries&lt;/li&gt;
&lt;li&gt;Résumé versioning&lt;/li&gt;
&lt;li&gt;Cover letter drafts&lt;/li&gt;
&lt;li&gt;Application status tracking&lt;/li&gt;
&lt;li&gt;Repeated demographic and eligibility fields where appropriate&lt;/li&gt;
&lt;li&gt;Matching your real experience to job requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is not laziness.&lt;/p&gt;

&lt;p&gt;That is refusing to waste human brainpower on clerical repetition.&lt;/p&gt;

&lt;p&gt;Your brain should be used for strategy.&lt;/p&gt;

&lt;p&gt;Not retyping your phone number.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should stay human
&lt;/h2&gt;

&lt;p&gt;I am pro-automation, but I am not reckless.&lt;/p&gt;

&lt;p&gt;There are parts of the process that should stay human-controlled.&lt;/p&gt;

&lt;p&gt;Do not blindly let AI agree to legal terms under your name.&lt;/p&gt;

&lt;p&gt;Do not let AI invent experience.&lt;/p&gt;

&lt;p&gt;Do not let AI answer something deeply personal without review.&lt;/p&gt;

&lt;p&gt;Do not let AI commit you to something you do not understand.&lt;/p&gt;

&lt;p&gt;Do not let AI turn your job search into a spam cannon.&lt;/p&gt;

&lt;p&gt;Automation should carry the bags.&lt;/p&gt;

&lt;p&gt;It should not sign your name to a contract you did not read.&lt;/p&gt;

&lt;p&gt;The future is not “remove the human.”&lt;/p&gt;

&lt;p&gt;The future is “put the human where judgment matters.”&lt;/p&gt;

&lt;h2&gt;
  
  
  The applicant side has to catch up
&lt;/h2&gt;

&lt;p&gt;The hiring side is already changing.&lt;/p&gt;

&lt;p&gt;AI is entering recruiting. Automated systems are shaping employment decisions. Workers themselves are starting to use AI more in their jobs. Pew Research Center reported in 2025 that 21% of U.S. workers say at least some of their work is done with AI, up from 16% roughly one year earlier.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://www.pewresearch.org/short-reads/2025/10/06/about-1-in-5-us-workers-now-use-ai-in-their-job-up-since-last-year/" rel="noopener noreferrer"&gt;Pew Research Center: About 1 in 5 U.S. workers now use AI in their job&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That number will not stay still.&lt;/p&gt;

&lt;p&gt;The people who learn how to use these tools now will not just save time.&lt;/p&gt;

&lt;p&gt;They will build workflows.&lt;/p&gt;

&lt;p&gt;They will build systems.&lt;/p&gt;

&lt;p&gt;They will see opportunities earlier.&lt;/p&gt;

&lt;p&gt;They will move before the crowd.&lt;/p&gt;

&lt;p&gt;The people who wait will still be trying to make the old process feel fair while the system quietly routes around them.&lt;/p&gt;

&lt;p&gt;Damn.&lt;/p&gt;

&lt;p&gt;Do not wait.&lt;/p&gt;

&lt;h2&gt;
  
  
  A better job-search strategy
&lt;/h2&gt;

&lt;p&gt;Here is the practical version.&lt;/p&gt;

&lt;p&gt;If you are looking for work right now, stop treating the job search like a once-a-week emotional ritual.&lt;/p&gt;

&lt;p&gt;Treat it like a system.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Track fresh postings daily.&lt;/li&gt;
&lt;li&gt;Prioritize roles posted recently.&lt;/li&gt;
&lt;li&gt;Apply while the listing still has energy.&lt;/li&gt;
&lt;li&gt;Use AI to tailor context, not invent experience.&lt;/li&gt;
&lt;li&gt;Keep a human in the loop for consent and judgment.&lt;/li&gt;
&lt;li&gt;Save your career data in a structured way.&lt;/li&gt;
&lt;li&gt;Follow up while the role is still active.&lt;/li&gt;
&lt;li&gt;Learn from which versions of your profile get traction.&lt;/li&gt;
&lt;li&gt;Keep improving the system.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the new play.&lt;/p&gt;

&lt;p&gt;Not panic applying.&lt;/p&gt;

&lt;p&gt;Not blindly mass applying.&lt;/p&gt;

&lt;p&gt;Not spending three hours crafting one perfect application that gets buried under 800 others.&lt;/p&gt;

&lt;p&gt;Systematic, contextual, early movement.&lt;/p&gt;

&lt;p&gt;That is the edge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recency is not everything, but it changes everything
&lt;/h2&gt;

&lt;p&gt;Applying early will not make an unqualified person qualified.&lt;/p&gt;

&lt;p&gt;It will not fix a bad résumé.&lt;/p&gt;

&lt;p&gt;It will not replace networking.&lt;/p&gt;

&lt;p&gt;It will not guarantee an interview.&lt;/p&gt;

&lt;p&gt;But it changes the conditions.&lt;/p&gt;

&lt;p&gt;It gives your application a better shot at being seen while the role is fresh.&lt;/p&gt;

&lt;p&gt;It helps you enter before the flood.&lt;/p&gt;

&lt;p&gt;It lets you compete when the recruiter is still forming the mental picture of the candidate pool.&lt;/p&gt;

&lt;p&gt;Same résumé.&lt;/p&gt;

&lt;p&gt;Different moment.&lt;/p&gt;

&lt;p&gt;Different outcome.&lt;/p&gt;

&lt;p&gt;That is why timing matters.&lt;/p&gt;

&lt;p&gt;That is why automation matters.&lt;/p&gt;

&lt;p&gt;That is why job seekers need better tools.&lt;/p&gt;

&lt;p&gt;If the hiring side is automated, the applicant side cannot stay manual forever.&lt;/p&gt;

&lt;p&gt;That is not cheating.&lt;/p&gt;

&lt;p&gt;That is balance.&lt;/p&gt;




&lt;p&gt;I’m building tools around this exact problem through Exempliphai and writing more about AI, job search, automation, and the future of work. You can follow more of my work at &lt;strong&gt;asaday.co&lt;/strong&gt;, &lt;strong&gt;dev.to/keith_azodeh&lt;/strong&gt;, and &lt;strong&gt;medium.com/@keithazodeh&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>jobsearch</category>
      <category>automation</category>
      <category>career</category>
    </item>
  </channel>
</rss>
