SAM.gov Deadline & Watchlist Change Monitor avatar

SAM.gov Deadline & Watchlist Change Monitor

Pricing

Pay per event

Go to Apify Store
SAM.gov Deadline & Watchlist Change Monitor

SAM.gov Deadline & Watchlist Change Monitor

Monitor SAM.gov watchlists for response deadline, status, attachment, and amendment-like metadata changes.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Orbiscribe Labs

Orbiscribe Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

4 days ago

Last modified

Share

Monitor a watchlist of SAM.gov opportunities and get structured event rows when watched solicitations materially change.

This Actor is built for GovCon proposal teams, consultants, and RevOps operators who already track active pursuits and need a scheduled feed into Slack, Airtable, Google Sheets, HubSpot, Make, Zapier, n8n, or an internal dashboard.

It is not another SAM.gov search scraper. The useful output is the event row: deadline moved, status changed, attachment added, source lookup became ambiguous, or a watched opportunity could not be resolved.

Run This First

Start with dry-run mode to inspect the event shape without a SAM.gov API key:

{
"dryRun": true,
"emitInitialFound": true,
"watchlist": [
{
"id": "FA8750-26-R-0001",
"type": "solicitationNumber",
"label": "Demo cybersecurity pursuit",
"owner": "Proposal lead",
"client": "Internal BD"
}
],
"profileFilters": {
"naicsCodes": ["541512"],
"pscCodes": ["DA01"],
"keywords": ["cybersecurity", "cloud"],
"excludeKeywords": ["janitorial"]
}
}

Look first at eventType, severity, changedFields, recommendedAction, uiLink, SLACK_ALERTS, and BUYER_BRIEF. A practical workflow recipe is in docs/workflow-recipes/sam-gov-pursuit-deadline-watch.md in the GitHub repository.

What it monitors

  • SAM.gov opportunity watchlists by notice ID or solicitation number
  • response deadline changes
  • status, active, and archive changes
  • material metadata changes such as title, notice type, NAICS, PSC, set-aside, agency path, or SAM.gov URL
  • attachment/resource-link additions and removals when those links are available from the source
  • solicitation metadata changes when the source exposes a reliable signal in notice type, metadata, or resource links
  • optional discovery matches from official SAM.gov search when you provide an API key and profile filters
  • unresolved watchlist items

Input

Start with a watchlist:

{
"watchlist": [
{
"id": "FA8750-26-R-0001",
"type": "solicitationNumber",
"label": "Cybersecurity pursuit",
"owner": "Proposal lead",
"client": "Internal BD"
}
],
"samApiKey": "optional",
"enrichmentMode": "api_if_key_present",
"emitInitialFound": true,
"includeDiscovery": false,
"dryRun": false
}

You can also paste CSV:

solicitationNumber,label,owner,client,externalId
36C10B26Q0123,VA data integration,Sam,Client A,hubspot-123

Useful fields:

  • watchlist: JSON watchlist items
  • watchlistCsv: pasted CSV watchlist
  • samApiKey: optional SAM.gov API key for live API lookup and richer resource-link monitoring
  • dataSourceUrl: optional CSV or JSON URL with SAM.gov-like records
  • snapshotStoreName: named key-value store for persistent state
  • emitInitialFound: emit baseline new_watchlist_item_found rows
  • emitCosmeticChanges: include title-only punctuation/case changes
  • includeDiscovery: use profile filters to find new matching opportunities with the SAM.gov API
  • profileFilters: optional NAICS, PSC, set-aside, agency, keyword, and location filters for fit scoring

Output

Each dataset item is an event row:

{
"eventType": "response_deadline_changed",
"severity": "urgent",
"solicitationNumber": "FA8750-26-R-0001",
"changedFields": ["responseDeadline"],
"previous": { "responseDeadline": "2026-06-07T21:00:00.000Z" },
"current": { "responseDeadline": "2026-06-14T21:00:00.000Z" },
"fitScore": 82,
"recommendedAction": "Update proposal calendar and recheck submission timing.",
"uiLink": "https://sam.gov/opp/demo-notice-001/view"
}

The Actor also stores:

  • RUN_SUMMARY
  • CURRENT_SNAPSHOT
  • EVENT_SUMMARY
  • BUYER_BRIEF
  • SLACK_ALERTS
  • FAILED_OR_UNRESOLVED

What to expect

Run 1 creates the baseline for your watchlist. If emitInitialFound is on, it also emits new_watchlist_item_found rows so you can test your Slack, Sheets, CRM, or webhook workflow immediately.

Runs 2 and later are where the monitor earns its keep. Scheduled runs compare the latest source data against the saved baseline and emit rows only when a watched item changes, cannot be resolved, or matches a discovery profile.

Pay-per-event charges are based on monitored opportunity checks. Dry runs are free, unavailable sources are not charged, and free-plan runs get a small sample before paid checks begin.

How to use it

  1. Run the Actor once with dryRun: true to see the output shape.
  2. Add your SAM.gov API key or a CSV/JSON dataSourceUrl.
  3. Paste a watchlist or paste CSV rows.
  4. Run once to create the baseline snapshot.
  5. Optionally enable includeDiscovery with NAICS, PSC, agency, keyword, or set-aside filters.
  6. Schedule the Actor daily.
  7. Connect dataset or key-value-store outputs to webhooks, Slack, Sheets, Airtable, HubSpot, Make, Zapier, n8n, or your internal pipeline.

Use With n8n, Make, or Zapier

Save the watchlist as an Apify Task, schedule it daily, and send only changed event rows to the proposal team. In workflow tools, wait for the Actor run to finish, then read the default dataset and SLACK_ALERTS.

Useful fields to route downstream:

  • eventType
  • severity
  • solicitationNumber
  • changedFields
  • recommendedAction
  • uiLink
  • owner
  • client

Limits and compliance

SAM.gov is the authoritative source. This Actor does not provide procurement advice, legal advice, real-time alerts, or a complete replacement for SAM.gov, GovWin, HigherGov, GovTribe, or other capture platforms.

The public SAM.gov Opportunities API requires a SAM.gov API key and date parameters. This Actor uses targeted one-request lookups for watchlist notice IDs or solicitation numbers and does not exhaust every page for ambiguous solicitation-number searches. SAM.gov documents that the public API returns the latest active version of an opportunity, while all versions are available via Data Services. This Actor stores its own snapshots between runs to detect changes over time.

Attachment monitoring depends on whether resource links are available from the source used for the run. The Actor does not claim full attachment content diffs unless you add that in a later workflow. A user-supplied dataSourceUrl is accepted as provided and is not independently verified as official SAM.gov data.

Pricing suggestion

Use pay-per-event pricing by monitored opportunity check:

  • opportunity-check: $0.002
  • enriched-opportunity-check: $0.005

Keep dry runs and the first small sample free. The value is predictable daily monitoring, including quiet days when nothing changed.