Use Case: Research Agent
web browsing ยท data extraction ยท competitive analysis ยท report synthesis
What you'll build
An agent that browses multiple web sources on command, extracts the relevant data, and produces a structured report โ saved to a file, posted to Telegram, or both. No Playwright code required.
Jump to section
Skills you need
Research tasks rely on browser control and search. The browser-control skill is the most important โ it lets the agent navigate pages, click elements, and extract content without you writing any automation code.
| Skill | What it unlocks | Required? |
|---|---|---|
| browser-control | Navigate URLs, click, scroll, extract page content โ the core research tool | Core |
| web-search | Google/Bing search queries without opening a browser โ faster for simple lookups | Core |
| summarizer | Condense long articles or pages into key points | Recommended |
| file-writer | Save reports as Markdown or JSON files to your local workspace | Recommended |
| structured-extractor | Pull tables, prices, or data fields from pages into structured JSON | Optional |
| notion-writer | Push research summaries directly to a Notion database | Optional |
SOUL.md template
# Research Agent You are a research assistant. Given a topic or question, you browse the web, extract relevant information, and produce a clear, structured report. ## Identity - Name: ResearchBot - Role: Autonomous research and competitive analysis ## Research process 1. Clarify the scope if the request is ambiguous โ ask one question, not five 2. Use web-search for an initial landscape view 3. Open the 3โ5 most relevant sources with browser-control 4. Extract the specific data points requested 5. Synthesise into a structured report: Executive Summary โ Key Findings โ Sources ## Report format - Start with a one-paragraph Executive Summary - Use bullet points for findings, not walls of text - Always include source URLs - Note the date research was conducted ## Behaviour - Prefer primary sources (official sites, original research) over aggregators - Flag when a source is paywalled or requires login - Do not fabricate data โ if you can't find something, say so - Save reports to ~/research/ unless told otherwise
Config setup
Browser control requires Chrome or Chromium to be installed. The skill handles launching and closing the browser automatically.
{
"skills": [
"official-browser-control",
"official-web-search",
"official-summarizer",
"official-file-writer"
],
"model": "claude-sonnet-4-5",
"soulPath": "./SOUL.md",
"channel": {
"type": "telegram",
"token": "YOUR_BOT_TOKEN",
"chatId": "YOUR_CHAT_ID"
},
"browser": {
"headless": true
}
}Headless mode: Set headless: false during development so you can watch the browser navigate. Switch to true in production to run without a display. On a headless server, you'll need xvfb or use the Docker image which includes it.
Example tasks
Competitive analysis
"Research the top 5 competitors of Notion โ pricing, main features, recent product updates. Save as competitors.md"
Market overview
"What are the most-discussed AI agent frameworks in the last 30 days? Check GitHub trending, Hacker News, and Reddit"
Price monitoring
"Check the current pricing page for Linear, Jira, and Asana โ extract plan names, prices, and seat limits into a comparison table"
Person research
"Find public information about OpenClaw founder Peter Steinberger โ LinkedIn, blog, recent interviews. Summarise in 3 paragraphs"
News briefing
"Find the top 5 AI agent news stories from the last 48 hours. Include source links and one-sentence summaries"
Scheduled research (daily briefings)
Use OpenClaw's built-in cron to run research on a schedule. This is useful for daily competitor monitoring or news briefings delivered to Telegram every morning.
{
"crons": [
{
"name": "Morning briefing",
"schedule": "0 8 * * *",
"task": "Find the top 5 AI agent news stories from the last 24 hours. Post a summary with source links to Telegram."
}
]
}Common issues
โ Browser control fails to launch
Chrome/Chromium must be installed. Run: npx puppeteer browsers install chrome. On Linux, also install: apt-get install -y libgbm-dev libnss3.
โ Agent gets blocked by Cloudflare or bot detection
Set headless: false to use a real browser profile, or add a short delay between page loads in your SOUL.md. Some sites require authentication โ note this in the task.
โ Research results are shallow or miss key sources
Be more specific in your prompt about which sources to check. List 3โ5 URLs if you have them, or specify "check at least 5 sources including official documentation".
โ Reports are too long
Add a word limit to your SOUL.md: "Reports should be under 500 words unless explicitly asked for detail". Or ask for a "3-bullet summary" instead of a full report.
Did this guide solve your problem?