Research briefings, sourced and cited
Point an agent at a question; get back a sourced briefing — market landscape, technical comparison, diligence pass — with every claim linked.
Research briefings, in brief
| The job | Point an agent at a question; get back a sourced briefing — market landscape, technical comparison, diligence pass — with every claim linked. |
|---|---|
| Tools it needs | Firecrawl, Notion, Google Drive, Slack, Obsidian |
| Setup | 4 steps, about ten minutes |
| Runs when | Something happens in Slack |
| Approval | Yours, per category — nothing is sent on your behalf unless you say so |
| Where it runs | Your own machine. Credentials stay in a local vault. |
What the agent actually does
An answer with sources, not a list of links
The agent searches, reads the promising results in full rather than skimming snippets, and reconciles what it finds. Where sources disagree it says so, which is usually the most informative sentence in the briefing.
Claims carry citations
Every substantive statement links to where it came from. You can check the ones that matter for your decision instead of accepting the whole document on trust or none of it.
Your format
Landscape scan, competitive comparison, technical evaluation, diligence memo — you specify the structure once as a template and every briefing arrives in it, which makes them comparable to each other.
The tools this job needs
Firecrawl
Where the work arrives. Clean page extraction for research-grade scraping. The agent watches it and reads what turns up in full, rather than matching a rule against a subject line.
Notion
Context the agent pulls in before deciding. The team wiki agents can actually keep current. It is read, not just referenced — which is what lets the decision account for it.
Google Drive
Context the agent pulls in before deciding. Where the documents live — and pile up. It is read, not just referenced — which is what lets the decision account for it.
Slack
Where the result lands. Team chat where operations actually surface. Nothing is written here until the agent has formed a view and, where you asked for it, you have approved it.
Get this agent
Research Analyst
Point an agent at a question; get back a sourced briefing — market landscape, technical comparison, diligence pass — with every claim linked.
Runs on your own machine. Asks for Firecrawl, Notion, Slack and nothing else — you approve the connection, and the agent inherits whichever AI model you already use.
You can see exactly what it did
Search results are not research
A list of ten links is the beginning of the work. Research is reading them, noticing that three are reprints of one press release, finding that the fourth contradicts the others, and forming a view about which to believe. That synthesis step is what takes an afternoon, and it is the part an agent can genuinely take on — provided it shows the work rather than asserting a conclusion.
Citations are what make it checkable
An uncited briefing has to be trusted entirely or discarded entirely, and both are bad options. When claims carry sources, you can verify the two or three that your decision actually turns on and move on. That is how human analysts have always been reviewed, and it is the only workable standard for machine-produced research too.
Where it stops and you start
An agent is strong at coverage, extraction and reconciliation, and weak at knowing which of two credible sources reflects how the market really behaves. Treat the briefing as a well-prepared analyst’s first draft: the facts assembled and cross-checked, the judgment still yours.
Build it in AGNT
- Write the question precisely, including what a good answer would let you decide.
- Give the agent its sources — the open web, a document set, an internal database, or all three.
- Specify the output template so briefings stay comparable over time.
- Read the briefing against its citations, and refine the question where the answer missed the point.
Build it: the workflow file
Here is the shape in full rather than in prose: a trigger, a decision, an action. Paste the definition below into a new workflow and it loads exactly as drawn.
{
"id": "55539979-4088-4272-afe7-45e5f4960ce8",
"name": "Research briefings, sourced and cited",
"nodes": [
{
"id": "1fd84d09-9e20-46d3-aaa7-963889f37f46",
"text": "Watch Slack",
"x": 512,
"y": 144,
"isEditing": false,
"type": "receive-slack-message",
"icon": "connect",
"category": "trigger",
"isSelected": false,
"parameters": {},
"description": "Listen for incoming Slack messages in a specified channel and trigger the workflow when a new message is received.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "a4af4a89-069c-4018-acad-cc698c528cb0",
"text": "Read it and decide",
"x": 512,
"y": 336,
"isEditing": false,
"type": "agnt-agent",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"instructions": "The agent searches, reads the promising results in full rather than skimming snippets, and reconciles what it finds. Where sources disagree it says so, which is usually the most informative sentence in the briefing."
},
"description": "Point an agent at a question; get back a sourced briefing — market landscape, technical comparison, diligence pass — with every claim linked.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "f3fc8717-db26-416b-a4eb-7ae86e7f8656",
"text": "Act in Firecrawl",
"x": 512,
"y": 528,
"isEditing": false,
"type": "firecrawl-api",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {},
"description": "Scrape web content using Firecrawl API",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
}
],
"edges": [
{
"id": "fc963cfb-7bb3-4326-a436-325913b7e9c0",
"start": {
"id": "1fd84d09-9e20-46d3-aaa7-963889f37f46",
"type": "output"
},
"end": {
"id": "a4af4a89-069c-4018-acad-cc698c528cb0",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "6f33d5b9-da3f-4401-ac0e-a40e23823bde",
"start": {
"id": "a4af4a89-069c-4018-acad-cc698c528cb0",
"type": "output"
},
"end": {
"id": "f3fc8717-db26-416b-a4eb-7ae86e7f8656",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
Get this running today
Free, local, and it asks for Firecrawl, Notion, Google Drive, Slack, Obsidian and nothing else.
Common questions
How do I know it did not invent a source?
Citations are links to material actually retrieved during the run, and the receipt records what was fetched. A claim without a source is visible as unsupported.
Can it research private or internal material?
Yes — point it at your own documents or databases. With a local model, none of that content leaves your machine.
How long does a briefing take?
Minutes rather than the afternoon it displaces, depending on how many sources you ask it to read in full.