Skip to content
Back to skills

Sam Gov Monitor

ASecurity

Monitor SAM.gov federal contract opportunities (and follow-on awards) by NAICS, PSC, agency, set-aside, and keyword — produces a daily pipeline report with pursue/no-pursue scoring, capture-management cadence, RFI / Sources-Sought pre-RFP signal tracking (engaging early on draft-stage notices wins later), team-incumbent intelligence (look up prior awardees via USAspending and SAM contract data), small-business set-aside eligibility check, and proposal-readiness scoring (Pwin × value × strateg...

  • 15 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aipythongosqlnodeapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add tinh2/skills-hub-registry --skill sam-gov-monitor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sam Gov Monitor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sam Gov Monitor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tinh2-sam-gov-monitor/badge)](https://www.skillsdirectory.com/skills/tinh2-sam-gov-monitor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sam-gov-monitor
description: Monitor SAM.gov federal contract opportunities (and follow-on awards) by NAICS, PSC, agency, set-aside, and keyword — produces a daily pipeline report with pursue/no-pursue scoring, capture-management cadence, RFI / Sources-Sought pre-RFP signal tracking (engaging early on draft-stage notices wins later), team-incumbent intelligence (look up prior awardees via USAspending and SAM contract data), small-business set-aside eligibility check, and proposal-readiness scoring (Pwin × value × strategic fit). Generates: SAM.gov API client with rate-limit-aware paging, saved-search definitions, slack/email digests, BD pipeline CSV import, color/teaming proposal cover sheet, and FAR clause flagging for first-time GovCons. TRIGGER on "SAM.gov", "federal contracts", "GovCon", "RFP monitoring", "government contracting", "set-aside", "NAICS code search", "Sources Sought", "RFI", "8(a)", "WOSB", "SDVOSB", "HUBZone", "capture management", "proposal pipeline".
version: "1.0.0"
category: analysis
platforms:
  - CLAUDE_CODE
---

# SAM.gov Federal Contract Opportunity Monitor

You generate a complete capture-management pipeline anchored on SAM.gov as the source of truth. Saved searches beat email alerts (email rolls in 24-72 hours late). Pre-RFP engagement (RFI, Sources Sought) is where the bid is won — by the time the solicitation drops, the requirement is often written around an incumbent.

============================================================
=== PRE-FLIGHT ===
============================================================

Verify:

- [ ] **NAICS codes**: at minimum primary code; ideally a full list (most companies are credible across 3-8 NAICS). Incomplete NAICS limits which opportunities surface.
- [ ] **PSC codes**: Product Service Codes — narrower than NAICS, helps eliminate noise.
- [ ] **Set-aside status**: small business, 8(a), WOSB / EDWOSB, SDVOSB, HUBZone, none. If certified, restrict searches; if not, expand.
- [ ] **Geographic preferences**: any place-of-performance restrictions?
- [ ] **Capacity**: what's your annual capture bandwidth (number of proposals you can credibly write)? Default 12-20/year for a mid-size GovCon.
- [ ] **SAM.gov API key**: register at api.sam.gov; free tier 1,000 requests/day.

Recovery:

- Without API key, fall back to RSS feed at https://sam.gov/rss/ and HTML scraping (lower fidelity, no full-record retrieval).
- If no PSC codes provided, derive from primary NAICS using NAICS→PSC crosswalk.

============================================================
=== PHASE 1: SAM.GOV API CLIENT ===
============================================================

Generate `sam_client.py` (or Node equivalent):

```python
class SAMClient:
    BASE = "https://api.sam.gov/opportunities/v2"

    def search(self, *, posted_from, posted_to, naics=None, psc=None,
               keyword=None, set_aside=None, agency=None, limit=1000):
        """Returns list of opportunities. Handles pagination + rate limit."""
        params = {
            "limit": min(limit, 1000),  # API max per page
            "postedFrom": posted_from.strftime("%m/%d/%Y"),
            "postedTo": posted_to.strftime("%m/%d/%Y"),
            "api_key": self.api_key,
        }
        if naics: params["ncode"] = ",".join(naics)
        if psc:   params["ccode"] = ",".join(psc)
        if keyword: params["q"] = keyword
        if set_aside: params["typeOfSetAside"] = set_aside
        if agency: params["organizationCode"] = agency
        # Paginate, respect 429s with exp backoff, dedupe by noticeId
        ...

    def get_details(self, notice_id):
        """Full opportunity record including attachments URL list."""
        ...
```

Cache responses to local SQLite — re-running same search shouldn't burn quota.

VALIDATION: Client paginates correctly past 1000 results. 429 (rate limit) triggers exp backoff, not crash. Dedupes by `noticeId`.

============================================================
=== PHASE 2: SAVED SEARCHES ===
============================================================

Generate `searches.yaml` — one entry per pursuit profile:

```yaml
searches:
  - name: "IT modernization at HHS"
    naics: [541511, 541512, 541513, 541519, 518210]
    psc: [DA01, DA02, DA10, DA12, DJ01]
    keywords: ["modernization", "legacy", "cloud migration", "FedRAMP"]
    agencies: [HHS, CMS, FDA, NIH]
    set_aside: ["SBA", "8A", "TOTAL_SMALL"]

  - name: "Cyber assessments DoD"
    naics: [541511, 541512, 541513, 541690, 541990]
    psc: [DA10, R425, R408]
    keywords: ["pentest", "red team", "RMF", "ATO", "FedRAMP"]
    agencies: [DOD, USAF, USN, USA, USMC, DISA]
```

Run searches daily via cron. Surface deltas (new notices, amended notices, awarded notices).

VALIDATION: Search YAML is human-editable. Cron runs without intervention. Deltas dedupe against prior runs.

============================================================
=== PHASE 3: PRE-RFP SIGNAL TRACKING ===
============================================================

The bid is often won before the RFP is published. Track notice types:

| Notice Type       | Stage             | Action                                                     |
| ----------------- | ----------------- | ---------------------------------------------------------- |
| Special Notice    | Pre-pre-RFP       | Read. Mark agency for future intel.                        |
| RFI               | Market research   | RESPOND. Get on agency's vendor list. Free intel ride.     |
| Sources Sought    | Market research   | RESPOND. Strongest signal of upcoming SOL. Capture begins. |
| Presolicitation   | RFP draft         | Engage agency BD POC. Influence requirements (legal!).     |
| Solicitation      | RFP issued        | Decide pursue/no-pursue NOW.                               |
| Combined Synopsis | Simplified acq    | Often a sole-source workaround — investigate.              |
| Award             | Won by competitor | Read winning company. Track who has the work.              |
| Justification     | Sole-source       | Read carefully — sometimes contestable.                    |

Generate `pre_rfp_pipeline.csv` that surfaces all RFI / Sources Sought / Presolicitation notices in your saved-search domain, with response deadlines.

VALIDATION: RFI / Sources Sought items get auto-flagged as P0 in the digest. Deadlines tracked.

============================================================
=== PHASE 4: CAPTURE-MANAGEMENT SCORING ===
============================================================

Each opportunity scores on Pwin × value × strategic fit:

| Dimension              | Score 1-5                                                      |
| ---------------------- | -------------------------------------------------------------- |
| Incumbent strength     | 1 = strong incumbent, low Pwin. 5 = no incumbent or weak.      |
| Customer intimacy      | 1 = no prior touch. 5 = sold-to in last 12 months.             |
| Set-aside fit          | 1 = full + open. 5 = your set-aside category restricted.       |
| Past performance match | 1 = adjacent. 5 = exact past work.                             |
| NAICS / PSC fit        | 1 = secondary code. 5 = primary code.                          |
| Solution maturity      | 1 = new build. 5 = productized.                                |
| Bid value (annual)     | (raw $).                                                       |
| Strategic value        | 1 = no follow-on. 5 = pipeline gate for $10M+ multi-year work. |

Composite **Pwin** = average of first 6, multiplied by strategic-value adjustment.

**Pursue threshold**: Pwin ≥ 3.5 AND capacity available AND no calendar conflict with higher-Pwin pursuit.

VALIDATION: Each scored opp produces a single pursue/hold/no-pursue decision with rationale.

============================================================
=== PHASE 5: INCUMBENT + COMPETITOR INTELLIGENCE ===
============================================================

For each opportunity, query USAspending.gov + SAM.gov contract-data API for:

- Prior awards with same NAICS + agency + matching scope.
- Top 5 competitors by revenue in that lane.
- Their typical award size + win rate.
- GSA Schedule holders (if applicable).

Output `competitor_dossier.md` per pursuit.

VALIDATION: Each pursuit has a competitor dossier with ≥ 3 named competitors and their prior award value.

============================================================
=== PHASE 6: SMALL BUSINESS ELIGIBILITY CHECK ===
============================================================

If the opportunity is set-aside, verify your company's eligibility _automatically_:

- SBA Dynamic Small Business Search (DSBS) registration current?
- 8(a) program: in program & not within 9-year graduation window?
- WOSB / EDWOSB: SBA-certified (no longer self-cert as of 2020)?
- SDVOSB: VA-verified via SBA after 2023 transition?
- HUBZone: SBA-certified AND principal office in HUBZone AND 35% workforce in HUBZone?
- Size standards: revenue & employee count below NAICS-specific cap?

Generate `eligibility_check.md` per pursuit — green/yellow/red per dimension.

VALIDATION: Real-time SBA DSBS check or fallback to user-supplied certs.

============================================================
=== PHASE 7: PROPOSAL READINESS PACKAGE ===
============================================================

Once a "pursue" decision is made, generate the proposal-readiness scaffold:

- **Color teaming template**: Pink team (concept review), Red team (writeable), Gold team (final).
- **Proposal compliance matrix**: maps each RFP requirement (Section L instructions, Section M evaluation criteria, FAR clauses) to a proposal section + owner.
- **Pricing prep template**: BOE format (Basis of Estimate), labor categories, indirect rates.
- **Past performance template**: 3-5 contracts maximum, with CPARS reference if applicable.
- **Tech volume outline**: aligned to Section M factors.
- **Capability statement** (one-pager, agency-specific tailoring).

VALIDATION: Compliance matrix has 100% coverage of RFP requirements (no orphan Section L instructions).

============================================================
=== SELF-REVIEW ===
============================================================

Score 1–5:

- **Complete**: API client + searches + pre-RFP tracker + scoring + intel + eligibility + proposal scaffold?
- **Robust**: Handles pagination + rate limits? Respects set-aside semantics correctly?
- **Clean**: Pursue decisions traceable to scoring rubric?
- **GovCon-credible**: Would a capture manager at a $50M-$500M GovCon recognize the workflow?

Common gap: chasing every RFP. The discipline is no-bid more than bid.

============================================================
=== LEARNINGS CAPTURE ===
============================================================

Append to `~/.claude/skills/sam-gov-monitor/LEARNINGS.md`:

## <YYYY-MM-DD> — <NAICS focus, agency cluster>

- **What worked:**
- **What was awkward:**
- **Suggested patch:**
- **Verdict:** [Smooth / Minor friction / Major friction]

============================================================
=== STRICT RULES ===
============================================================

- Never bid every RFP. Win rate × proposal cost is the real metric.
- Never miss the response deadline on RFIs / Sources Sought — those are the cheapest seat at the agency table.
- Never reveal incumbent intelligence sources (USAspending data) in client deliverables. Synthesize, don't cite raw export.
- Never assume set-aside eligibility — verify against SBA real-time data.
- Capacity discipline: if you're at proposal capacity, raise the pursue threshold rather than over-commit.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.