agentsclimarketplace

Sam gov monitor

Skill tinh2/skills-hub-registry/analysis/sam-gov-monitor

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".From its SKILL.md

Install
npx -y skills add tinh2/skills-hub-registry --skill sam-gov-monitor

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

11.5 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it

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):

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:

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 TypeStageAction
Special NoticePre-pre-RFPRead. Mark agency for future intel.
RFIMarket researchRESPOND. Get on agency's vendor list. Free intel ride.
Sources SoughtMarket researchRESPOND. Strongest signal of upcoming SOL. Capture begins.
PresolicitationRFP draftEngage agency BD POC. Influence requirements (legal!).
SolicitationRFP issuedDecide pursue/no-pursue NOW.
Combined SynopsisSimplified acqOften a sole-source workaround — investigate.
AwardWon by competitorRead winning company. Track who has the work.
JustificationSole-sourceRead 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:

DimensionScore 1-5
Incumbent strength1 = strong incumbent, low Pwin. 5 = no incumbent or weak.
Customer intimacy1 = no prior touch. 5 = sold-to in last 12 months.
Set-aside fit1 = full + open. 5 = your set-aside category restricted.
Past performance match1 = adjacent. 5 = exact past work.
NAICS / PSC fit1 = secondary code. 5 = primary code.
Solution maturity1 = new build. 5 = productized.
Bid value (annual)(raw $).
Strategic value1 = 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.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.