<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w" -->

---
title: The Dark Arts of Web Automation: Teaching Agents to Use...
description: A conference talk lays out a methodology for building AI agents that operate real browsers indistinguishably from humans, using the Chrome DevTools Protocol...
canonical: https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Dark Arts of Web Automation: Teaching Agents to Use Websites Like Humans — Corey Gallon, Rexmore | daily.dev
og:description: A conference talk lays out a methodology for building AI agents that operate real browsers indistinguishably from humans, using the Chrome DevTools Protocol...
og:url: https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w
og:image: https://api.daily.dev/og/posts/0Qp5nuF8w.png
og:image:alt: The Dark Arts of Web Automation: Teaching Agents to Use Websites Like Humans — Corey Gallon, Rexmore
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Dark Arts of Web Automation: Teaching Agents to Use Websites Like Humans — Corey Gallon, Rexmore

**[AI Engineer](https://daily.dev/sources/aidotengineer)** · 21 min read · 0 upvotes · 0 comments

## Summary

A conference talk lays out a methodology for building AI agents that operate real browsers indistinguishably from humans, using the Chrome DevTools Protocol (CDP) instead of MCP servers. The core argument: CLIs beat MCP servers for reuse, speed, and cost (CLI ~7 turns/1 minute vs MCP ~71 round trips/8 minutes on the same task, per an Arize AI study; Anthropic reports CLI can be up to 75x cheaper in tokens). The speaker introduces a 'sense, act, verify' loop combined with a three-rung 'meatbag ladder' - synthetic JS clicks, trusted CDP input events, then human-like mouse movement/vision - climbing only as high as a page's bot defenses require. Live demos show agents defeating Cloudflare Turnstile, hCaptcha, slider-jigsaw captchas, and reCAPTCHA v2 by combining deterministic CDP-driven code with a vision model invoked only for the perception step. The speaker built and open-sourced a Python tool called Chrome Agent to implement this, and mentions OpenAI briefly flagged his account for the automation work before rescinding the warning.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=26RtyAm9y_Q>

## Questions this post answers

### Why is a CLI faster and cheaper than an MCP server for AI browser automation tasks?

A CLI avoids putting a model in the loop on every step, since a sequence can be written once and replayed thousands of times. In a study by Arize AI, both approaches succeeded on the same task about 83% of the time, but MCP took 71 round trips and 8 minutes versus 7 turns and under a minute for a CLI. Anthropic also reported CLI token costs can be up to 75 times cheaper than MCP.

_Anyone weighing CLI versus MCP for agent tooling can track these comparisons and benchmarks on daily.dev._

### How do web pages distinguish a real mouse click from a JavaScript-triggered click?

Chrome stamps every input event as either trusted or untrusted; a synthetic JavaScript click is marked untrusted and pages like Amazon silently drop it with no error, while a click issued through the Chrome DevTools Protocol input domain travels the same path as a real mouse and is stamped trusted, letting it pass bot checks undetected.

_Developers hardening or bypassing bot defenses can follow deeper CDP techniques like this on daily.dev._

### How can an AI agent solve reCAPTCHA v2 image challenges quickly enough before the round expires?

By splitting the work into a deterministic solver and a vision-only operator: the solver is pure code that clicks the checkbox, pierces the challenge iframe, and screenshots each grid round without any model involved, while a vision model is invoked only to identify which tiles match the target object, keeping the loop fast enough to beat the challenge's expiration clock.

_Engineers building fast, reliable captcha-solving pipelines can find implementation patterns like this on daily.dev._

## Similar posts on daily.dev

- [Chrome DevTools for agents](https://daily.dev/posts/chrome-devtools-for-agents-i2pxfjajj) · iO tech\_hub · 1 upvotes · 0 comments
- [A developer toolkit to make your website agent-ready](https://daily.dev/posts/a-developer-toolkit-to-make-your-website-agent-ready-x7gbgaq8w) · Chrome Developers · 10 upvotes · 0 comments

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#automation](https://daily.dev/tags/automation)

[View this post on daily.dev](https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Dark Arts of Web Automation: Teaching Agents to Use Websites Like Humans — Corey Gallon, Rexmore","url":"https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w"},"datePublished":"2026-08-14T15:33:09.219Z","dateModified":"2026-08-18T15:18:24.832Z","description":"A conference talk lays out a methodology for building AI agents that operate real browsers indistinguishably from humans, using the Chrome DevTools Protocol...","image":"https://i.ytimg.com/vi/26RtyAm9y_Q/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/26RtyAm9y_Q/sddefault.jpg","isAccessibleForFree":true,"articleSection":"AI Engineer","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"AI Engineer","logo":"https://media.daily.dev/image/upload/s--u5PucxNT--/f_auto/v1724338940/logos/aidotengineer","url":"https://daily.dev/sources/aidotengineer"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai-agents,automation","timeRequired":"PT21M","video":{"@type":"VideoObject","name":"The Dark Arts of Web Automation: Teaching Agents to Use Websites Like Humans — Corey Gallon, Rexmore","description":"A conference talk lays out a methodology for building AI agents that operate real browsers indistinguishably from humans, using the Chrome DevTools Protocol...","thumbnailUrl":"https://i.ytimg.com/vi/26RtyAm9y_Q/sddefault.jpg","uploadDate":"2026-08-14T15:33:09.219Z","duration":"PT21M","url":"https://api.daily.dev/r/0Qp5nuF8w","embedUrl":"https://www.youtube.com/embed/26RtyAm9y_Q"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"AI Engineer","item":"https://daily.dev/sources/aidotengineer"},{"@type":"ListItem","position":3,"name":"The Dark Arts of Web Automation: Teaching Agents to Use Websites Like Humans — Corey Gallon, Rexmore"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/the-dark-arts-of-web-automation-teaching-agents-to-use-websites-like-humans-corey-gallon-rexmore-0qp5nuf8w#faq","mainEntity":[{"@type":"Question","name":"Why is a CLI faster and cheaper than an MCP server for AI browser automation tasks?","acceptedAnswer":{"@type":"Answer","text":"A CLI avoids putting a model in the loop on every step, since a sequence can be written once and replayed thousands of times. In a study by Arize AI, both approaches succeeded on the same task about 83% of the time, but MCP took 71 round trips and 8 minutes versus 7 turns and under a minute for a CLI. Anthropic also reported CLI token costs can be up to 75 times cheaper than MCP. Anyone weighing CLI versus MCP for agent tooling can track these comparisons and benchmarks on daily.dev."}},{"@type":"Question","name":"How do web pages distinguish a real mouse click from a JavaScript-triggered click?","acceptedAnswer":{"@type":"Answer","text":"Chrome stamps every input event as either trusted or untrusted; a synthetic JavaScript click is marked untrusted and pages like Amazon silently drop it with no error, while a click issued through the Chrome DevTools Protocol input domain travels the same path as a real mouse and is stamped trusted, letting it pass bot checks undetected. Developers hardening or bypassing bot defenses can follow deeper CDP techniques like this on daily.dev."}},{"@type":"Question","name":"How can an AI agent solve reCAPTCHA v2 image challenges quickly enough before the round expires?","acceptedAnswer":{"@type":"Answer","text":"By splitting the work into a deterministic solver and a vision-only operator: the solver is pure code that clicks the checkbox, pierces the challenge iframe, and screenshots each grid round without any model involved, while a vision model is invoked only to identify which tiles match the target object, keeping the loop fast enough to beat the challenge's expiration clock. Engineers building fast, reliable captcha-solving pipelines can find implementation patterns like this on daily.dev."}}]}
```

