SAM.gov Contract Opportunities Monitor
Pricing
from $0.06 / 1,000 opportunity saveds
SAM.gov Contract Opportunities Monitor
Monitor US federal contract opportunities from SAM.gov with filters, normalized fields, direct notice links, and relevance scoring.
Pricing
from $0.06 / 1,000 opportunity saveds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Find and monitor US federal contract opportunities from SAM.gov with keyword, agency, date, NAICS, PSC, notice type, and active-status filters.
Use this Actor to turn public federal procurement notices into a clean dataset for capture management, bid/no-bid triage, sales prospecting, research, and recurring opportunity monitoring.
What does SAM.gov Contract Opportunities Monitor do?
This Actor searches US federal contract opportunity notices and saves matching opportunities as structured records.
It is designed for repeat monitoring workflows where you need clean rows, useful filters, and direct links back to the original notice.
You can search by capability terms such as cybersecurity, construction, janitorial, cloud, medical supplies, staffing, training, or logistics.
Each saved row includes opportunity title, solicitation number, notice type, agency hierarchy, dates, status, summary, direct SAM.gov link, relevance score, and matched keywords when available.
Who is it for?
- ๐๏ธ Government contractors tracking new federal opportunities
- ๐ฏ Capture managers building a qualified pursuit pipeline
- ๐ Sales teams looking for public-sector leads
- ๐งพ Proposal consultants monitoring opportunities for clients
- ๐ Market researchers analyzing agency demand
- ๐ง Competitive intelligence teams following procurement trends
- ๐๏ธ Vendors that need fast filtering by agency, NAICS, PSC, or notice type
Why use this Actor?
SAM.gov is the official source, but recurring monitoring can be time-consuming when teams need exports, filters, automation, and repeatable searches.
This Actor gives you a clean dataset that can be exported, joined with CRM records, sent to alerts, or processed by your own scoring workflow.
Typical use cases
- Track new opportunities for a capability area every morning
- Monitor a target agency or office
- Build a weekly capture pipeline spreadsheet
- Watch sources-sought and solicitation notices separately
- Feed opportunity records into a CRM or BI dashboard
- Research federal demand for a NAICS or PSC code
- Send new matching opportunities to Slack, email, or a database
What data can you extract?
| Field | Description |
|---|---|
noticeId | SAM.gov notice identifier |
solicitationNumber | Solicitation or reference number |
title | Opportunity title |
typeCode | SAM.gov notice type code |
typeLabel | Human-readable notice type |
agency | Department name |
subAgency | Agency name |
office | Contracting office when available |
postedDate | Original posted date |
modifiedDate | Most recent modification date |
responseDeadline | Response deadline when available |
isActive | Whether the notice is currently active |
isCanceled | Whether the notice is canceled |
naics | NAICS codes when available |
psc | Product Service Codes when available |
setAside | Set-aside information when available |
placeOfPerformance | Place of performance when available |
summary | Cleaned short description |
descriptionText | Optional full cleaned description |
uiUrl | Direct public SAM.gov notice URL |
sourceUrl | Source search URL used for the record |
relevanceScore | Search relevance score normalized for sorting |
matchedKeywords | Input keywords matched in the record text |
estimatedValue | Estimated value when exposed |
How much does it cost to monitor SAM.gov contract opportunities?
The Actor uses pay-per-event pricing.
There is a small $0.005 run-start event and a per-opportunity event for each saved dataset row.
| Plan tier | Price per saved opportunity | Approx. cost for 1,000 opportunities |
|---|---|---|
| Free | $0.000115 | $0.115 |
| Starter / Bronze | $0.0001 | $0.100 |
| Silver | $0.000078 | $0.078 |
| Gold | $0.00006 | $0.060 |
| Platinum | $0.00004 | $0.040 |
| Diamond | $0.000028 | $0.028 |
For early testing, start with maxItems between 10 and 50.
For recurring monitoring, choose the smallest keyword and filter set that captures the opportunities your team actually reviews.
Quick start
- Open the Actor on Apify.
- Enter one or more keywords.
- Keep
activeOnlyenabled if you only want open opportunities. - Set
maxItemsto the maximum number of records you want. - Optionally add agency, NAICS, PSC, date, or notice type filters.
- Run the Actor.
- Export the dataset as JSON, CSV, Excel, XML, or RSS.
Input options
Keywords
Use one or more search terms.
Examples:
cybersecurityconstructioncloud migrationmedical suppliesjanitorial services
Posted date range
Use postedFrom and postedTo to keep only opportunities posted in a specific date window.
Notice types
Use notice type codes or labels to focus on specific procurement stages.
Examples:
rfor Sources Soughtpfor Presolicitationofor Solicitationkfor Combined Synopsis/Solicitation
Agency filter
Use agency text to keep records whose department, agency, or office contains your target phrase.
Examples:
Department of DefenseVeterans AffairsGeneral Services Administration
NAICS and PSC filters
Use these when your capture process is code-driven.
Examples:
- NAICS
541512 - NAICS
236220 - PSC
D399 - PSC
R499
Active opportunities only
When enabled, inactive or closed notices are skipped.
Some searches may require scanning many records to find active notices.
Include full description
Enable this when you need long notice descriptions in the dataset.
Keep it disabled when you only need short summaries and smaller exports.
Example input
{"keywords": ["cybersecurity", "cloud migration"],"activeOnly": true,"maxItems": 50,"sort": "modifiedDate","agency": "Department of Defense","includeDescription": false}
Example output
{"noticeId": "a63176dfde62490abfbc1ddce723754d","solicitationNumber": "W912HNA044275","title": "Construction and Alteration of Polygraph Office at Ft. Gordon","typeLabel": "Sources Sought","agency": "DEPT OF DEFENSE","subAgency": "DEPT OF THE ARMY","office": "W074 ENDIST SAVANNAH","postedDate": "2026-06-04T19:10:01+00:00","responseDeadline": "2026-06-01T11:00:00-04:00","isActive": false,"summary": "As of 4 June 2026, this Sources Sought Notice is hereby concluded...","uiUrl": "https://sam.gov/opp/a63176dfde62490abfbc1ddce723754d/view","relevanceScore": 100,"matchedKeywords": [],"estimatedValue": null}
Tips for better results
- Use precise capability keywords instead of very broad words.
- Combine keyword searches with agency or NAICS filters for cleaner exports.
- Keep
maxItemslow while testing a new search. - Use recurring Apify schedules for daily or weekly monitoring.
- Export to CSV when sharing with proposal teams.
- Enable full descriptions only when you need long-form text analysis.
Monitoring workflows
You can schedule the Actor to run every day and compare new dataset rows against your previous run.
Common workflow:
- Run a daily keyword search.
- Export only new notice IDs.
- Send selected rows to a CRM, spreadsheet, Slack channel, or email digest.
- Assign capture owners to high-fit opportunities.
Integrations
Use Apify integrations to connect results to your workflow.
- Google Sheets for opportunity trackers
- Make or Zapier for alerts
- Slack for team notifications
- Airtable for capture pipelines
- Webhooks for custom apps
- BI tools for procurement trend dashboards
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/sam-gov-contract-opportunities-monitor').call({keywords: ['cybersecurity'],activeOnly: true,maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/sam-gov-contract-opportunities-monitor').call(run_input={'keywords': ['cybersecurity'],'activeOnly': True,'maxItems': 25,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~sam-gov-contract-opportunities-monitor/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"keywords":["cybersecurity"],"activeOnly":true,"maxItems":25}'
MCP usage
Use the Apify MCP Server to run this Actor from AI tools that support MCP.
MCP URL format:
https://mcp.apify.com/?tools=fetch_cat/sam-gov-contract-opportunities-monitor
Claude Code setup:
$claude mcp add apify-sam-gov-contracts "https://mcp.apify.com/?tools=fetch_cat/sam-gov-contract-opportunities-monitor"
Claude Desktop JSON configuration:
{"mcpServers": {"apify-sam-gov-contracts": {"url": "https://mcp.apify.com/?tools=fetch_cat/sam-gov-contract-opportunities-monitor"}}}
Example prompts:
- "Find active cybersecurity opportunities from SAM.gov and summarize the top 10."
- "Run a SAM.gov search for construction opportunities and group results by agency."
- "Monitor cloud migration solicitations and prepare a bid/no-bid shortlist."
Data quality notes
SAM.gov records vary by notice and agency.
Some fields are not present on every record.
Estimated value, place of performance, set-aside, NAICS, and PSC fields may be missing for some opportunities.
The direct SAM.gov URL is included so your team can review the official notice before acting.
Legality and ethical use
This Actor works with public government procurement opportunity information.
Always review the official notice on SAM.gov before making business decisions.
Respect applicable procurement rules, deadlines, and agency instructions.
Do not use exported data for spam or misleading outreach.
Troubleshooting
Why did I get fewer results than maxItems?
Your filters may be too narrow, active-only filtering may skip many closed records, or the search may have fewer matching opportunities.
Try disabling activeOnly, broadening keywords, or removing agency/code filters.
Why is estimated value empty?
Many notices do not expose an estimated value in the searchable record.
Use the official SAM.gov link for final review.
Why are NAICS or PSC arrays empty?
Some records do not include these codes in the search result.
Try a broader search or inspect the official notice details.
FAQ
Can I monitor multiple keywords at once?
Yes. Add multiple keywords and the Actor will collect matching opportunities across them while deduplicating by notice ID.
Can I export to Excel?
Yes. Apify datasets can be exported as Excel, CSV, JSON, XML, RSS, or HTML.
Can I run this every day?
Yes. Use Apify schedules to run the Actor daily or weekly.
Does this submit bids or contact agencies?
No. It only collects opportunity records for monitoring and analysis.
Is this US-only?
Yes. Version 1 focuses on US federal opportunities from SAM.gov.
Related Apify Actors
Explore related FetchCat actors for lead generation, market research, and public data workflows:
- Google Maps Reviews Scraper โ monitor local business reputation and customer feedback.
- Shopify Products Scraper โ collect product catalog data for market and competitor research.
- Craigslist Search Scraper โ track classified listings and local-market opportunities.
Changelog
0.1
Initial version with keyword search, filters, normalized opportunity output, direct SAM.gov links, summaries, and relevance scoring.