ULTRARIA
BETA — Everything is free during the beta. Real customers, real data, no charges until full launch.BETA — Everything is free during the beta. Real customers, real data, no charges until full launch.BETA — Everything is free during the beta. Real customers, real data, no charges until full launch.BETA — Everything is free during the beta. Real customers, real data, no charges until full launch.BETA — Everything is free during the beta. Real customers, real data, no charges until full launch.BETA — Everything is free during the beta. Real customers, real data, no charges until full launch.
e0cb4c0
All posts

Blog

How to filter SAM.gov for set-asides without losing your morning

8 min read
A person reviewing federal contract listings on a laptop with a mug of coffee — the morning SAM.gov filter workflow.
Photo: Unsplash — illustrative only.

SAM.gov is the official, mandatory, federally-operated marketplace for U.S. government contracting opportunities. It's also a difficult website. Records are inconsistently formatted, search filters behave unpredictably across notice types, and the same set-aside designation can appear under three different field names depending on the contracting office.

If you're a small business certified for set-aside work — WOSB, EDWOSB, SDVOSB, HUBZone, 8(a), or general SBA Small Business — the daily question is the same: which of the few thousand opportunities posted today are actually relevant to me?

This post is the workflow we recommend, distilled from a couple hundred hours staring at the SAM.gov UI ourselves.

Step 1: get specific about your set-aside posture

Before you write a single search query, write down which set-asides you can claim. Be precise — partial set-aside is not the same as full set-aside, and SAM.gov treats them as different fields.

The eleven categories you'll see most often:

  • SBA — Total Small Business Set-Aside
  • 8A — 8(a) Competitive
  • 8AN — 8(a) Sole Source
  • HZC — HUBZone Competitive
  • HZS — HUBZone Sole Source
  • SDVOSBC — SDVOSB Competitive
  • SDVOSBS — SDVOSB Sole Source
  • WOSB — WOSB Competitive
  • WOSBSS — WOSB Sole Source
  • EDWOSB — EDWOSB Competitive
  • EDWOSBSS — EDWOSB Sole Source

If you hold one of these, you bid on its set-asides plus the general "SBA" total small business set-asides plus full-and-open opportunities where small business preferences apply. If you skip one of those buckets in your filter, you'll miss winnable contracts.

Step 2: build your NAICS shortlist (and stop there)

A common mistake is filtering on too many NAICS codes "just in case." Each code you add multiplies the noise. Pick the 1–8 codes you actively bid on, plus any closely-adjacent codes you've delivered work under in the last 24 months. Skip everything else.

If you don't know your codes off the top of your head, pull your past performance and group by the NAICS in each contract. The codes that show up more than once are your real shortlist.

Step 3: use SAM.gov's "Notice Type" filter to remove noise

By default, the SAM.gov search returns everything: pre-solicitation, sources sought, special notices, awards, justifications, sale of surplus property. For an active bidder, the categories that matter are:

  • Solicitation (Combined Synopsis/Solicitation) — usually called "RFP" or "RFQ" in the body
  • Solicitation — formal RFP
  • Sources Sought — pre-RFP market research, where you can position yourself before competition shows up
  • Pre-solicitation — heads-up that an RFP is coming

If you're not actively trying to influence requirements, you can drop "Sources Sought" — but if you have a strong past performance match, those are arguably the *highest-leverage* notices on SAM.gov, because the contracting officer is asking you to help shape the requirement.

Step 4: layer in keyword include + exclude lists

Keywords are where SAM.gov filtering breaks down for most users. The platform's full-text search is fine for finding individual postings, but it's bad at consistent daily filtering because the same concept can appear in titles, descriptions, agency names, and classification codes — and the description field is often a 5,000-word PDF dump.

The keyword strategy that works:

  • Include keywords = the 5–10 specific terms that almost always appear in postings you want to bid on. For HVAC: "HVAC", "mechanical contractor", "chiller", "boiler replacement", "BAS", "EMS".
  • Exclude keywords = terms that consistently show up in postings you can't or don't want to bid on. For HVAC, this might be "design only", "engineering services only", "manufacturer authorized" (if you aren't), or specific brand-required terms you don't qualify for.

The exclude list is what saves you the most time — it removes 60–80% of the noise that an include-only filter lets through.

Step 5: cap your geographic and deadline windows

Two more filters that meaningfully reduce volume:

  • Place of Performance state(s) — if you can't deliver in Alaska, don't read Alaska postings.
  • Response window — most small contractors need at least 14 days from posting to deadline to write a competitive proposal. Set a minimum of 14 days; opportunities with shorter windows are usually pre-wired (someone already knows they're winning).

Step 6: automate the daily check

SAM.gov lets you save a search and email yourself the results. The email format is rough but functional. The two limitations: (1) the saved-search emails come at irregular times depending on SAM.gov's queue, and (2) you can't easily exclude on keyword from a saved search — only include.

The right answer for most small contractors is to run the search through a tool that supports proper include/exclude semantics, sends at a predictable time, and deduplicates against what you've already seen. Ultraria does exactly this — plans start at $29/mo — but you can also build it yourself against the SAM.gov Opportunities API, which is free and well-documented if you're comfortable with a few hundred lines of Python.

What "good" looks like

A correctly-configured SAM.gov daily workflow returns 3–15 opportunities per day for a typical small contractor. If you're getting more than 50, your filters are too loose. If you're getting fewer than 1, they're too tight or your NAICS shortlist is too narrow. Iterate weekly for the first month — most contractors find a stable filter set within 3–4 iterations.

The goal is not to find every conceivable opportunity. The goal is to never miss the ones you'd have actually bid on, while keeping your inbox readable. A filter that's 95% precise on a manageable volume beats a filter that's 100% recall on 200 daily emails you'll start ignoring by week two.

Take this further

Try Ultraria for the next two weeks.

Daily SAM.gov alerts filtered to your NAICS, set-asides, and keywords. Plans from $29/mo, 14-day free trial, no card required.