Skip to content
GTM Agent Weekly

A morning signal check on every target account, read by Claude Haiku

Every morning this open-source script checks each target company's job board, website and news for changes, names any buying signal with a quote and link, and ranks who to contact first. It never sends anything.

Paste this into ChatGPT, Claude or your agent tool. See the prompt

  • Prospecting / Outbound
  • intermediate
  • SDR manager
  • SDR / BDR
  • Sales leader
  • Founder
Category
Prospecting / Outbound
Difficulty
Intermediate
Est. cost
Sourced estimate: about $0.50 a day for 1,000 accounts at API list price, no extra cost on a Claude subscription

Problem

Vendor intent alerts fire for every competitor on the same list at the same time, and checking job boards and news by hand only covers a few dozen accounts a week. Reps end up emailing on stale or weak signals, or on accounts that do not fit.

Setup

A Python script, scheduled with cron for 7am, fetches each account's public Greenhouse, Lever or Ashby job board, four site pages (home, about, careers, pricing) and a week of headlines, and hashes them. Only pages that changed go to Claude Haiku 5.5, which returns the signal name, a quote, the date and the source link in a fixed JSON schema. Once a month Haiku also answers ten fit questions per account from the company's own pages. Plain code, not the model, then applies the ICP gate, signal age windows and a 100-point score, and writes a morning digest plus a CSV where every account is marked act, hold or suppress with a reason.

Prompt

Starter prompt by The GTM Agent Weekly, written from the setup described on this page. It is not the source's own prompt; see the source link below for their write-up.

Starter prompt · 25 lines
# ROLE
You read changed public pages for one target account and report buying signals in a fixed
format. You do not score or rank; a separate step does that.

# INPUTS
- {{ACCOUNT}}: company name and domain.
- {{CHANGED_PAGES}}: only the pages that changed since the last run: job board postings,
  home, about, careers, pricing, and recent headlines, each with URL and fetch date.
- {{SIGNAL_LIST}}: the signals we care about, with a definition each (e.g. hiring for a
  role we sell to, new pricing tier, new leader, expansion, funding).

# TASK
For each signal in {{SIGNAL_LIST}} that the changed pages clearly show:
1. Name the signal.
2. Quote the exact text that shows it.
3. Give the date (posting or article date; else the fetch date, marked as such) and the URL.

# OUTPUT FORMAT (JSON array, empty if nothing)
[{"signal": "", "quote": "", "date": "", "date_type": "published|fetched", "url": ""}]

# GUARDRAILS
- Quote or it didn't happen. No signals inferred from vibes.
- Only signals from {{SIGNAL_LIST}}. Nothing else in the output.
- Your output feeds code that applies the ICP gate, signal age and scoring, then writes a
  morning digest marking each account act, hold or suppress with a reason.

Replace every {{PLACEHOLDER}} before running. Works with any capable LLM and runner.

Tools

Steps

  1. Clone the repository, install it and log Claude Code in with a Claude subscription, or add an API key to pay per token instead.
  2. Import a two-column CSV of company names and domains; the importer finds each company's public job board.
  3. Edit the config file with your ICP (industry, size, region and one must-have), buyer titles and how long each signal type stays fresh.
  4. Run it once to take a baseline, then schedule the daily run for 7am.
  5. Each morning, read the digest, click through to the quoted evidence and write the first message yourself from the opener fact.
  6. Before trusting it on your own list, hand-label about 100 page changes and run the included test that compares Haiku with a larger model.

Results

On a first run across 11 public companies, the author reports 21 signals for under 10 cents at API list price, with 6 companies dropped for being over the size limit before scoring. He estimates about 50 cents a day for 1,000 companies and says the first-run quality is his own judgment, not a measurement.

What goes wrong

Gotchas

  • It does not find emails or phone numbers; the email column stays blank until you add an enrichment tool.
  • Job titles missing from your sales keyword list get lower confidence; on day one it was unsure whether an Account Manager role counted as a sales hire.
  • Day one has nothing to compare against, so page changes and reposts only show up from the second run.
  • Companies that do not use Greenhouse, Lever or Ashby are watched only through their site pages and news.
  • Everything it reads is public, so assume competitors see the same signal; the edge is acting that morning with a specific opener.

Source and credit

github.com ›

Alex Vacca, Frontal · vendor

Source dated 2026-10-09 · last reviewed 2026-10-12. Summarized in our own words; see the source for details.

Related.

Deliver a one-page account brief to the rep before every meeting

Before every sales meeting, this agent sends the rep a one-page brief on the account: recent news, past conversations and open questions. Reps walk in prepared without digging through notes.

Works with any of Google CalendarOutlookSalesforce +7

  • Prospecting / Outbound
  • intermediate
  • Reference setup

Plan a rep's field day: scored stops, an optimized route and leave-behinds

For reps who visit accounts in person, this agent picks the best accounts nearby, plans an efficient route, and preps a brief and leave-behind page per stop. Afterward it logs visits and next steps in the CRM.

Works with any of SalesforceHubSpotGoogle Maps +5

  • Prospecting / Outbound
  • intermediate
  • Reference setup