Agresource
Scanned@brianppetty
npx machina-cli add skill @brianppetty/agresource --openclawAgResource Newsletter Scraper
Use this skill to scrape, summarize, and analyze AgResource grain marketing newsletters.
Implementation
- Scraper:
scraper.js(Playwright/Node.js) - Sentiment Analyzer:
agresource_sentiment.py(Python) - Login: Automatic using
AGRESOURCE_EMAILandAGRESOURCE_PASSWORDenv vars
Capabilities
- Log in to AgResource dashboard (https://agresource.com/dashboard/#/reports/daily)
- Scrape daily newsletter content using Playwright
- Save screenshot for reference/debugging
- Extract corn/soybean sales advice and recommendations
- Generate concise summaries with key news and weather tidbits
- Analyze sentiment (bullish/bearish) across newsletters
- Compare to previous newsletters to detect trends
- Store summaries in
~/clawd/memory/agresource/YYYY-MM-DD.md(morning) - Store summaries in
~/clawd/memory/agresource/YYYY-MM-DD-noon.md(noon) - Store summaries in
~/clawd/memory/agresource/YYYY-MM-DD-evening.md(evening) - Store summaries in
~/clawd/memory/agresource/YYYY-MM-DD-saturday.md(saturday) - Store summaries in
~/clawd/memory/agresource/YYYY-MM-DD-sunday.md(sunday) - Track sentiment history in
~/clawd/memory/agresource/sentiment_history.json - Send Telegram alerts on new sales advice
Commands
Manual Trigger
"Check AgResource newsletter"
"Summarize today's grain report"
"Show full newsletter" (detailed view)
To run scraper manually:
cd /home/brianppetty/clawd/skills/agresource
# Morning newsletter (default)
node scraper.js
node scraper.js --type=morning
# Noon/midday newsletter
node scraper.js --type=noon
# Evening newsletter
node scraper.js --type=evening
# Saturday newsletter
node scraper.js --type=saturday
# Sunday newsletter
node scraper.js --type=sunday
Cron Job Triggers
When a cron event fires, match the time/type to the correct --type parameter:
| Cron Message | Type to Use | Time |
|---|---|---|
| "Check AgResource newsletter (morning)" | --type=morning | 8:30 AM ET (Mon-Fri) |
| "Check AgResource newsletter (afternoon)" | --type=noon | 1:30 PM ET (Mon-Fri) |
| "Check AgResource newsletter (evening - positioning)" | --type=evening | 7:00 PM ET (Mon-Sat) |
| "Check AgResource newsletter (weekend)" | --type=saturday or --type=sunday | ~3:00 PM ET (Sat/Sun) |
For weekend jobs, determine which day it is and use:
- Saturday:
--type=saturday - Sunday:
--type=sunday
Sentiment Queries
"What's the current market sentiment?"
"Show sentiment trends"
"What's the sentiment history?"
Sentiment Dimensions (PRICE-IMPACT FOCUSED)
CRITICAL: Sentiment analysis tracks PRICE IMPACT, not general "good/bad" news.
Key inverse relationships to remember:
- โ๏ธ Favorable weather in SA/NA = More supply = BEARISH for prices
- ๐ฝ Record yields = More supply = BEARISH for prices
- ๐๏ธ Drought/crop stress = Less supply = BULLISH for prices
- ๐ญ Strong export demand = More demand = BULLISH for prices
- ๐ฆ South American competition = Less US exports = BEARISH for prices
Track these dimensions across newsletters:
- market_mood: bullish | bearish | neutral
- BULLISH = Prices expected to go UP
- BEARISH = Prices expected to go DOWN
- weather_impact: positive_for_crops | negative_for_crops | mixed | neutral
- Tracks weather impact on PRODUCTION (inverted for price impact)
- Positive weather for crops = BEARISH for prices (more supply)
- Negative weather for crops = BULLISH for prices (less supply)
- production_outlook: optimistic | cautious | uncertain
- Optimistic = more supply = BEARISH for prices
- Cautious = supply concerns = BULLISH for prices
- trend_direction: improving | declining | stable
- confidence: high | medium | low
Sales Advice Detection
Status phrases to detect:
- "New sales advice detected" (buy/sell/recommend keywords)
- "Catch up sales recommended" (catch up phrase)
- "No sales recommended at this time" (hold/no action)
- "Position status unchanged" (no change from previous)
Keywords for sales advice:
- buy, sell, hold, recommend, recommendation, position, catch up, current positioning
Telegram Alert Format
Brief summary sent for every newsletter:
๐พ AgResource - 2026-01-08 8:30 AM
Summary: No sales recommended
Sentiment: Bullish (โ๏ธ improving)
Full details in ~/clawd/memory/agresource/
Output Format
Daily Summary File (YYYY-MM-DD.md)
# AgResource Newsletter - 2026-01-08 8:30 AM
## Quick Summary
[2-3 sentence overview]
## Key Newsworthy Items
- [Grain production relevant news]
- [Weather tidbits]
## Sales Advice Status
- Corn: [New sales advice / No change / No sales recommended]
- Soybeans: [New sales advice / No change / No sales recommended]
## Current Positions (from end of newsletter)
- [Summary of current positioning]
## Sentiment & Trends
- **Market Mood:** Bullish / Bearish / Neutral
- **Previous Mood:** [from last newsletter]
- **Trend:** Improving / Declining / Stable
- **Weather Impact:** Positive / Negative / Mixed
- **Production Outlook:** Optimistic / Cautious / Uncertain
## Full Content
[Optional: full newsletter content for reference]
Sentiment History File (sentiment_history.json)
{
"last_updated": "2026-01-08T08:30:00",
"sentiment_history": [
{
"date": "2026-01-08",
"time": "08:30 AM",
"market_mood": "bullish",
"weather_impact": "positive",
"production_outlook": "optimistic",
"trend_direction": "improving",
"confidence": "high",
"key_phrases": ["prices advancing", "favorable weather"],
"sales_advice": "No sales recommended"
}
]
}
Configuration
Credentials: Loaded from environment variables
AGRESOURCE_EMAILAGRESOURCE_PASSWORD
Dependencies:
- Node.js (built-in on Clawdbot)
- Playwright (installed locally:
/home/brianppetty/clawd/skills/agresource/node_modules/playwright)
Schedule: 4x daily (cron jobs)
- Morning: 8:30 AM ET
- Afternoon: 1:30 PM ET
- Evening: 7:00 PM ET
- Weekend: ~3:00 PM ET
History window: Keep last 15-20 newsletters for sentiment tracking
Notes
- Only send Telegram alerts when sales advice CHANGES
- Always store summaries and sentiment data
- Refine sentiment detection patterns over time
- Evening newsletters include current positioning section
- Login credentials should be handled securely
Overview
AgResource Newsletter Scraper automates logging in, scraping daily AgResource grain newsletters, and generating concise summaries with key news and weather tidbits. It analyzes bullish/bearish sentiment, tracks trends, and stores daily memos in memory files, with Telegram alerts when new sales advice appears.
How This Skill Works
A Playwright/Node scraper (scraper.js) logs in to the AgResource dashboard and fetches daily newsletters, saving a reference screenshot for debugging. A Python sentiment analyzer (agresource_sentiment.py) evaluates sentiment (bullish/bearish) and compares against prior newsletters, with results stored under ~/clawd/memory/agresource/ and Telegram alerts sent when new sales guidance is detected.
When to Use It
- Morning workflow: fetch and summarize the dayโs newsletter for a fresh starting memo.
- Noon update: capture afternoon content to adjust positions or expectations.
- Evening wrap-up: generate a sentiment-trend summary and daily news highlights.
- Weekend summaries: produce weekend-specific notes and trend checks.
- Trend detection: compare current newsletter to previous ones to spot shifts in sentiment or sales advice.
Quick Start
- Step 1: Install dependencies and set AGRESOURCE_EMAIL and AGRESOURCE_PASSWORD in your environment.
- Step 2: Run the morning fetch: node scraper.js (or node scraper.js --type=morning).
- Step 3: Check ~/clawd/memory/agresource/ for the daily summary and review Telegram alerts for new sales guidance.
Best Practices
- Set AGRESOURCE_EMAIL and AGRESOURCE_PASSWORD in environment variables for automatic login.
- Verify login success and ensure the scraper can access https://agresource.com/dashboard/#/reports/daily.
- Familiarize with sentiment dimensions: market_mood, weather_impact, production_outlook, trend_direction, confidence.
- Review outputs in ~/clawd/memory/agresource/YYYY-MM-DD.md and the corresponding time-stamped files.
- Enable Telegram alerts to receive near real-time notices on new sales advice.
Example Use Cases
- Morning memo shows bullish sentiment despite favorable weather, prompting cautious positioning.
- Latest newsletter indicates drought stress, triggering bullish price expectations and updated sales guidance.
- Sentiment history reveals a shift from neutral to bullish over a week, prompting faster reaction.
- New sales advice detected after a weekend readout; Telegram alert triggers action plan.
- Comparison with yesterdayโs summary highlights decreasing supply risk and a revised weather outlook.