Inspiration
Periscope was born from a clear pain one of our team members felt firsthand at Phia. Crucial competitive intelligence is locked behind dynamic website interactions that even some of the most advanced frontier models and scrapers can't see. Teams are burning time and money hiring people to do manual research because the tooling isn't there. This makes research slow, expensive, and fundamentally unscalable. Periscope flips that equation, using real cloud browsers to surface the hidden layer automatically. We turned what used to be manual labor into something fast, reliable, and cost-efficient.
What it does
Periscope is a competitive-intelligence "super parser". Point it at a competitor's site and it reads what a fetch tool never returns. For example, the PDF linked under "Show more", the JSON on the page loads only after the render, the number inside an embedded calculator, etc. Periscope can sign in, walk a competitor's dashboard with a verified account, record every screen as evidence, stop at any CAPTCHA, 2FA or payment wall, hands the browser to a human in Steel's live view, and resume the walk in the same session once the wall is cleared.
How we built it
Steel.dev is the browser layer. Every session is a Steel cloud browser driven over CDP with Playwright, with proxies for country, persistent profiles, credential injection for saved logins, the built-in CAPTCHA solver tried before any human is called.
We employ a web agent powered by Stagehand with Claude Opus doing the judgement work to interact with the site and track evidence as it goes.
Under it sits a SQLite system of record with transactional writes, a Qdrant vector index, and a REST API. The frontend is Streamlit and we specifically chose it because it keeps most application logic server-side and exposes less client-side code.
Challenges we ran into
We initially wanted to build an autonomous way for Periscope to solve anti-bot blockers. We soon realized this was unfeasible. So we pivoted to a notification system that pulls a human into the loop if a blocker is unable to be cleared autonomously.
Accomplishments that we're proud of
We are proud of the fact that we solved a problem that we experienced firsthand as power users of research agents powered by the frontier models. Looking back, we are happy that we didn't start with the technology right away and instead focused on an expensive, repetitive problem we had all experienced. Finally, we are proud that we built a system capable of navigating the parts of the web that conventional retrieval pipelines routinely miss while preserving evidence of how every piece of information was found. In fact, we performed better on this task compared to frontier models/tools like Claude Opus 4.8 + fetch, Claude Opus + Parallel connector, and ChatGPT Astra (browsing agent) according to our benchmarks.
What we learned
When we designed around the anti-bot limitation, we learned that the best agents are not the ones that entirely eliminate the need for humans but ones that know the optimal time to pull a human into the loop.
What's next for Periscope
We look to make Periscope into a tool that teams can use as a powerful research tool. That means running many research tasks in parallel, monitoring dozens or hundreds of sites, and continuously turning what used to be the hidden web into actionable intelligence!
Built With
- python
- qdrant
- shell
- stagehand
- streamlit
- typescript




Log in or sign up for Devpost to join the conversation.