//Intel
Opposition and media monitoring
Facts checked against official sources · September 9, 2026
The Intel section of the dashboard has three pages: Opponents, Mentions, and Pulse. Together they answer what your opponents are saying in paid ads, what the press and paid advertisers are saying about you, and what your voters are complaining about this month. All three read public sources only and use Claude to triage what they find, so a two-person campaign can keep up.
This page describes each of the three as the code runs them: the sources, the daily schedule, what the AI does and does not decide, the geographic gates that keep out-of-area noise off your screen, and the limits.
What it is
Opponents is a registry of the people you are running against, with their public political ad activity from the Meta Ad Library, any public finance filing that matches them, and an AI synopsis of their messaging and attacks.
Mentions is a feed of news stories and political ads that name your candidate, each classified for whether it is really about you, its sentiment, whether it is an attack, and how urgently the campaign manager should see it.
Pulse is a ranked list of local issues in your jurisdiction, potholes to property taxes, extracted from local news and community posts and from what your volunteers hear at the door, with a suggested campaign angle for each.
Opponents: how it works
Add an opponent with a name and, optionally, their office, numeric Facebook Page ID, Instagram handle, website, and notes. The Page ID is what makes ad scanning work, and the form explains how to find it. If a scraped public candidate filing matches the name exactly (today that means Texas Ethics Commission filings), the card also shows total raised, total spent, cash on hand, and the last report date.
- Daily ad scan. Once a day the platform pulls each registered opponent's U.S. political and issue ads from the Meta Ad Library by Page ID: creative text, spend range, impressions range, and delivery dates, deduplicated by ad id. The card shows the ad count, the last scan date, and the five most recent ads with their spend range.
- AI synopsis. Generate or Refresh sends up to 60 captured ad texts to Claude and writes a short synopsis: dominant message themes, who or what they attack and how, tone, rough spend, and one line on what to be ready to respond to. The prompt forbids inventing claims, and if there are no attack ads it says so.
- Public data only. The scan reads the same transparency data anyone can see at the Ad Library. Nothing is scraped from private pages or personal accounts.
- Token dependency. Ad capture runs only when a Meta Ad Library API token is configured on the platform. Until it is, the Opponents page shows a banner saying monitoring is idle; you can still register opponents and record notes, and the scan starts automatically once the token is set.
Mentions: how it works
Mentions runs daily and on demand with Scan now. It needs a candidate name and the campaign's state and jurisdiction set, and it refuses to run without them, because a bare name search pulls every same-named person in the country.
- News. Google News is searched for the candidate's name plus the county and state, limited to the last 21 days. Local outlets are the point; that is where down-ballot races get covered.
- Ads that name you. When the Ad Library token is configured, the scan also searches all advertisers for ads containing the candidate's name, which is how PAC and third-party attack ads surface.
- Classification. Each new item goes to Claude once with the candidate, office, and state, and comes back as: is this about our candidate, sentiment (positive, neutral, negative), is it an attack, an importance score from 0 to 100, a one-sentence note, and the U.S. state the story is about. Anything the model places in a different state is dropped before it is stored.
- The page. Three tallies at the top (in support, in opposition, attacks), a Worth your attention rail with full cards for anything scoring 70 or higher, and a compact Everything else list, newest first, with a sentiment dot and an attack marker. Items age out after 60 days.
Pulse: how it works
Pulse starts from the campaign's real geography: the county or the district, the cities inside it, and the named subdivisions where its voters live, derived from the voter universe itself. That is what keeps a district race from being flooded with county-wide noise.
- Sources. A jurisdiction-wide Google News search on issue terms (potholes, traffic, crime, flooding, schools, property taxes, zoning, dumping, parks, utilities), a rotating batch of 20 subdivision-level searches per run so the whole county is swept over successive days, and a Reddit search for the area. Only the last 30 days are read.
- Extraction. Claude reads the batch as untrusted text and returns distinct issues with a theme from 12 categories, the specific area, urgency from 0 to 100, a one-sentence campaign angle, and the state and county the issue is physically in. Issues outside your state, or in a different county when yours is known, are discarded.
- Ranking. Each open issue gets a priority from its urgency plus boosts for recency, corroboration (several signals on one theme), a volunteer field report, and being marked watching. The top five, pinned ones first, sit in the Top issues to campaign on rail; the rest are grouped by theme.
- Working the list. Pin an issue to keep it in the top rail, mark it watching, addressed, or dismissed, open the source, and log an issue you heard at the door with a theme, title, area, and angle. Field reports earn the reporter leaderboard credit at twice the weight of a door knock. Auto-scanned issues expire after 45 days; field reports stay until acted on.
Schedule, sources, and roles
All three scans run once a day on the platform's cron schedule and can be triggered by hand. The Intel pages are open to the candidate, campaign manager, and staff; volunteers do not see them, but their field reports flow in through the report endpoint and earn credit.
| Page | Sources | Runs | Who uses it |
|---|---|---|---|
| Opponents | Meta Ad Library (public political ads), scraped public finance filings | Daily scan; synopsis on demand | Candidate, manager, staff |
| Mentions | Google News (last 21 days), Meta Ad Library ads naming the candidate | Daily, plus Scan now | Candidate, manager, staff |
| Pulse | Google News (jurisdiction plus rotating subdivisions), Reddit, volunteer field reports | Daily, plus Scan now and Log an issue | Candidate, manager, staff; volunteers submit field reports |
How a local campaign uses it
City council, two opponents. The manager registers both; one has a Facebook Page running ads and she pastes its numeric ID. After a week the card shows 14 ads captured with spend ranges and delivery dates. The synopsis says two of them attack the incumbent's vote to raise water rates and the rest are biography spots. The candidate writes a one-page response on water rates before it comes up at a forum, and the campaign's own sign crew notes where the opponent's yard signs cluster.
School board trustee, one weekly paper. Mentions catches a story from the local weekly scored 82 with the attack flag set: a parent group criticizing the candidate's position on a bond. It sits in Worth your attention on Monday morning with the AI note reading damaging story, likely needs a response. The tallies show six supportive pieces and two critical ones over the month. The manager drafts a response and sends a text to the parents list the same day.
County commissioner, precinct 3. Pulse shows Flooding and drainage at the top with seven corroborating signals in one subdivision over two weeks. Two volunteers log three more reports from the doors with street names. The candidate pins the issue, holds a drainage town hall, then marks it addressed. The next scan finds the town hall coverage in Mentions as a positive item.
Why it matters
Local races are decided on local issues, and the people running them rarely have time to read every outlet and community thread. Pulse does the reading and hands the candidate a ranked list with a talking point attached; what a city council actually does is the frame for turning a pothole complaint into a platform plank.
Attack ads at the local level are increasingly bought through Facebook and Instagram by PACs the candidate has never heard of. The Ad Library is the only public record of them, and Mentions watches it so the campaign learns about an attack from a screen instead of from a voter at the door. Opponent finance figures, where public filings exist, give the same early warning on money; campaign finance basics explains what those reports contain.
What it does not do
Monitoring is a first pass by a machine over public sources. Treat it that way.
- Public sources only. No private Facebook groups, no Nextdoor, no X, no TikTok, no television or radio monitoring, and nothing from personal accounts.
- Ad capture depends on Meta Ad Library API access configured at the platform level. Until it is, opponent ad cards stay empty and the banner says so; news mentions and Pulse run regardless.
- The AI triage can be wrong. Importance scores, attack flags, and one-sentence notes are a sorting aid; read the source before you respond to anything.
- News is what Google News indexes. A paywalled or unindexed local paper will not appear, and neither will a story older than 21 days at the time of the scan.
- Finance figures appear only where a scraped public filing matches the opponent's name exactly, currently Texas Ethics Commission filings. No matching filing, no numbers, and an ambiguous name match is left unlinked rather than guessed.
- No alerts. The pages do not send email or push notifications for new mentions or issues; the daily scan populates the page and you open it.
- Pulse and Mentions require a state and jurisdiction on the campaign; without them the scan refuses rather than searching nationwide.
- Nothing here writes to voter records. An issue is not a tag, and a mention is not a contact.
Works with
Field reports earn credit on the leaderboard described in dashboard and reporting, and the walkers who file them are managed through volunteer coordination. Opponent yard signs are tracked on the map in yard signs and field assets. An issue Pulse surfaces becomes a question in scripts and surveys, and a response to an attack goes out through SMS outreach or email outreach.
Frequently asked questions
Where does the opposition data come from, and is it legal to use?
Everything is public. Opponent ads come from the Meta Ad Library, the transparency archive Meta publishes for political and issue ads, including spend and impression ranges. News comes from Google News, community posts from Reddit's public search, and finance figures from public state filings. Nothing is scraped from private pages or accounts.
Why are my opponent's ad cards empty?
Three common reasons: the opponent has no numeric Facebook Page ID entered (the handle is not enough), the daily scan has not run yet since you added them, or the platform's Meta Ad Library API token is not configured, in which case the page shows a banner saying monitoring is idle. Registering opponents still works in every case.
Does it monitor X, TikTok, Nextdoor, or television?
No. The sources are the Meta Ad Library for Facebook and Instagram political ads, Google News for press coverage, and Reddit public search for community discussion. There is no social listening on other networks and no broadcast monitoring.
How does it avoid a same-named candidate in another state?
Searches are anchored to the campaign's county and state, and the classifier is told the race's state and asked which state each item is about. Any item placed in a different state is dropped before it is stored, and Pulse applies the same gate plus a same-state county check. Without a state on the campaign, the scans refuse to run.
Who can see the Intel pages?
The candidate, campaign manager, and staff. Volunteers do not see Opponents, Mentions, or Pulse, but a field report they submit lands in Pulse and earns them leaderboard credit at twice the weight of a door knock.
Will I get an alert when an attack ad appears?
Not today. The daily scan classifies new items and pins anything scoring 70 or higher in the Worth your attention rail, but the pages do not send email or push notifications. Check Mentions in the morning, or hit Scan now before a forum or interview.
Know what they are saying before the forum.
Keep reading