A web search fails. You retry it. It fails again, same way. That loop wastes turns and gets nothing done, so I built a skill that skips the retry and moves on instead.
Unblock is a Claude Code skill for exactly that moment: a search, scrape, or crawl gets blocked, rate limited, hit with a CAPTCHA, or just returns nothing. Instead of trying the same tool again, it moves to the next one in a fixed order, through 13 free tools, until one gets through.
The order matters
The chain runs most general and robust first, then narrows:
- agent-reach — multi-platform router (Xiaohongshu, X, Bilibili, Reddit, GitHub, YouTube, LinkedIn, RSS, general web)
- last30days — recent discussion from Reddit, X, YouTube, TikTok, HN, GitHub
- crawler — Jina Reader, then Scrapling stealth browser, turns a URL into clean markdown
- web-scraping — checks the site first, then picks traffic interception, sitemap, API, or DOM scraping
- web-scraping-automation — Playwright/requests plus generic REST and GraphQL calls
- playwright-web-scraper — multi-page structured extraction, rate-limited, respects robots.txt
- web-scraper — multi-strategy extractor for tables, lists, prices, contacts
- site-crawler — straightforward multi-page crawl
- scraping-skills — bundle of academic and ethical scraping techniques
- scrapy-web-scraping — Scrapy framework for large multi-page crawls
- news-extractor — extraction tuned for news and articles across 12 sites
- Scrapling (Python library, last resort) — write and run a short stealth-fetch script
- claude-in-chrome — live browser automation for sites needing login, interaction, or real rendering
A block or an empty result sends it to the next tool. It never retries the same one twice. When the chain finishes, it reports which tool worked, or that all 13 failed.
What's left out, on purpose
Anything that needs an API key, a paid tier, or an account: firecrawl-scrape, x402-based tools, proxy-vendor skills. The whole chain stays free, no signup anywhere in it.
When to skip it
A plain factual question that a normal web search already answers doesn't need this. Save it for sites that fight back: paywalls, bot walls, JS-heavy pages, social platforms.
Try it
No install:
"Read https://github.com/obrenoalvim/unblock and follow the Unblock skill."
As a plugin, available in every session:
/plugin marketplace add obrenoalvim/unblock
/plugin install unblock@unblock
Then ask for it, or let it trigger on its own next time a search, scrape, or crawl blocks.
Each tool in the chain needs its own install to run that step. Skip an install and the chain moves past it.
Repo: https://github.com/obrenoalvim/unblock (MIT)
What's the web lookup that blocks you most often?
Ps: I'm building BloodLink, a free platform connecting blood donors to donation campaigns.
Top comments (1)
Two things I would want before running this unattended.
First, "Each tool in the chain needs its own install to run that step. Skip an install and the chain moves past it" means the effective chain length is the number installed, not 13. On a fresh machine with three of them present, the final report reads as though 13 tools failed while ten steps were never attempted. Reporting tried and skipped separately would fix that, otherwise the chain's own diagnostics mislead you in exactly the case you built it for.
Second, the chain treats blocked and genuinely empty the same way. A URL with no content will burn every installed step and then report a wall that does not exist. A cheap discriminator up front, HTTP status plus body length before any stealth fetch, saves the whole walk on what I would guess is the most common case.
The ordering rationale is the part I would keep as is. Most general and robust first, then narrowing, is the right axis, because a chain sorted by capability spends its early attempts on tools that were never going to apply.
Routing is the load bearing part here, so one number from someone else's measurement this week: a census of Claude Code artefacts on GitHub, "Claude Code subagents fail 2.8x more often than skills", found 21.9% of subagent files fail to register at all against 7.9% for skills, because the subagent reference marks
nameanddescriptionrequired while the skills reference makes both optional. Broken frontmatter is the single biggest cause across all kinds at 38,183 files; the missing-descriptionbucket alone is 1,799. dev.to/kyisaiah47/claude-code-suba...You already report which tool won on a given run. Persisting that per domain across runs is the bit that would let the chain reorder itself, and after a few weeks that is a real signal rather than a guess.