Pursuvo / GovCon capture platformForm PRSV-1 / Rev 07-2026
D-02Docs

Connecting sources

Every adapter Pursuvo ships, what each needs from you, and what it never asks for.

PRSV-DOC D-02 / 02 of 06

A source is where opportunities come from. Every adapter below feeds the same pipeline: ingest, dedupe, score, enrich, enroll. What differs is what each source needs from you, and Pursuvo is deliberate about asking for as little as possible.

How sources work

Each source in your workspace has a name, an adapter type, an optional cron schedule, and a set of parameters you control. The worker runs enabled sources on the daily ingestion cycle, or on the schedule you set per source, and hands anything new to the scoring engine. The sources page shows each source's last run time, last run status, and consecutive failure count, and any source can be disabled without being deleted.

SAM.gov

Federal contract opportunities from the official SAM.gov opportunities API. The API requires an API key; keys are free to generate from a SAM.gov account. Per source, you control the keyword list and the lookback window in days:

{
  "keywords": ["cybersecurity", "cloud"],
  "lookbackDays": 7
}

Run several SAM.gov sources with different keyword lists if your practice areas are distinct; each one dedupes against the rest, so overlap is harmless.

GSA eBuy

eBuy has no public API, and its login requires a one-time password on every sign-in, so Pursuvo never asks for your eBuy credentials. Instead it works from the RFQ notification emails eBuy already sends you, roughly every four hours:

  • Create an eBuy source; Pursuvo shows a forwarding address unique to it
  • In the mailbox that receives your eBuy notices, add a rule forwarding them to that address
  • Each forwarded notice becomes a scored opportunity on the next ingestion run

The forwarding address embeds the source's own id, so it is not guessable, and no eBuy credentials are ever stored.

State bid boards

Five state portals ship as curated presets: one click to add, no configuration. Each preset is a vetted parameter set for the generic adapters, verified against a live capture of the portal, and tagged with its state so state-tier scoring rules apply.

StatePortal
VirginiaeVA, the Virginia Business Opportunities list
TexasElectronic State Business Daily (ESBD)
FloridaMyFloridaMarketPlace vendor bid system
New YorkNYS Contract Reporter
CaliforniaCal eProcure, the state contracts register

Presets ingest what each portal publishes publicly. Some portals keep detail pages behind a vendor login, so the listing metadata is what gets scored; the source record always links back to the portal for the full notice.

Inbound webhook

For systems that push instead of being polled: a partner's pipeline, an internal tool, anything that can make an HTTP POST. You name the source, describe the sending agency, and map fields with JSON paths; external id and title are required, and description, dates, NAICS code, and estimated value are optional. On creation Pursuvo shows two things:

  • The endpoint: POST /api/webhooks/ingest/<source-id>
  • A secret, shown once; save it when it appears

Every request must carry the secret in the X-Pursuvo-Secret header:

POST /api/webhooks/ingest/<source-id>
X-Pursuvo-Secret: <your-secret>
Content-Type: application/json

RSS, REST, and HTML adapters

The long tail of agency bulletin boards runs on three generic adapters. They are the same machinery the state presets are built from, so anything a preset can read, you can wire up yourself.

  • RSS and Atom: any public feed URL, with include and exclude keyword filters, an agency name and optional state code, and an optional cron schedule
  • REST: any JSON endpoint, GET or POST, with custom headers, an optional POST body, a results path pointing at the array of items, and per-field JSON path mapping
  • HTML: for portals that publish server-rendered listings and nothing else; items are selected with XPath expressions and mapped the same way. This is the adapter behind the New York and California presets