Govly
Government contracting tools
- Category
- Sales & CRM
- Primary Subcategory
- Government Procurement & Contract Search
Integration details
Description
Govly helps users find and analyze government contracting opportunities, awards, contacts, procurement signals, places, and contract pricing; manage saved searches and inbox matches; and collaborate in workspaces through ChatGPT.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Government Procurement & Contract Search
- Secondary Subcategories
- None listed
- Brand
- Govly
- Access
- Account required
- First tracked
- 2026-09-02
- Tool count
- 48
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Government Procurement & Contract Search
View Category48 tools agents can invoke
Add a user or team member to a workspace by creating or reactivating its workspace follow.
Create an award saved search from structured filters. Stores a replayable search the caller can run later via execute_award_saved_search; award saved searches do not send notifications. The date window is stored as relative day-offsets, defaulting to the last year.
Create an opportunity saved search from structured filters. The organization receives email notifications when new opportunities match. Buyer filtering takes government-entity IDs directly (federal searches only). The date window is stored as relative day-offsets, defaulting to the last year; an omitted searchType resolves from the caller's market focus.
Create a workspace, optionally associated to a visible opportunity as its primary focus. When organizationDefault is true and a default workspace already exists for that focus, update the existing default workspace instead of creating another one.
Post a Markdown comment to a workspace visible to the authenticated user. On opportunity workspaces, this may email eligible followers and return the workspace to other followers' worklists.
Get a temporary direct-download URL for an authorized document's original file.
Read bounded content from an authorized document. Start with documentType and id, then pass only cursor and optional maxChars while continuing. Available representations are reported by the first read.
Execute an award saved search and return the awards it currently matches. Runs the saved search live against the award index, so results reflect the index at call time rather than a cached match list. The saved search's own date window is applied; meta.dateRange reports the window actually searched.
Fetch visible opportunities by Govly ID using the same public shape as the Tools API.
Follow or unfollow a Govly entity. Following creates or reuses the entity's default workspace: the default opportunity workspace for opportunities, the default award workspace for awards, the default contact workspace for contacts. Pass action unfollow to stop following instead. Use this for requests like "follow this opp", "track this opportunity", "follow this award", "track this contact", "subscribe to changes", or "stop following this award".
Accept (follow) a Govly inbox item the user wants to pursue. This follows the underlying opportunity, award, or signal and creates or reuses its default workspace. The response's meta includes the resulting workspaceId and the new state so the action can be audited. Accept is FINAL — it cannot be undone via inbox_restore (that only reverses dismiss/reject). Confirm intent before calling.
Dismiss (hide) a Govly inbox item the user is not interested in. Removes it from the default inbox without recording a bad-fit reason. Use inbox_reject instead when the item is a poor match and the reason should improve future matching. Reversible with inbox_restore.
Fetch a single Govly inbox item by ID, with its match metadata (fit score, fit reason, deadline, source). Read-only — does not mark the item as seen.
List the authenticated user's Govly inbox items — AI matches and saved-search matches surfaced for them — newest first. Returns active items (unread, seen, actioned). Use inbox_search for full-text queries or filters, and inbox_get for a single item's detail.
Mark a Govly inbox item as a bad fit, optionally with a reason. Unlike inbox_dismiss this records bad-fit feedback that feeds the organization's matching-exclusions memory to improve future matches. Reversible with inbox_restore.
Restore a previously dismissed or bad-fit Govly inbox item back to the active inbox, unwinding any bad-fit feedback. Only dismissed or bad-fit items can be restored — an accepted (followed) item cannot be undone via this tool.
Full-text search and filter the authenticated user's Govly inbox items. Searches title, description, buyer/entity names, and identifier. Filter by matchable type (Opp, Award, ProcurementSignal::Cluster), record type, source (govly_ai or saved_search), NAICS, and created/deadline date ranges. Returns matchable-type aggregation counts. Capped at 100 results per page.
List award saved searches visible to the authenticated user.
List cached opportunity results for a saved search visible to the authenticated user.
List opportunity saved searches visible to the authenticated user.
Enumerate every canonical Govly Place of a category within a jurisdiction — every county in California, every school district in Texas. Use search_places instead to look up a place by name; this tool takes no query and does no relevance ranking. Results are cursor-paginated. Keep calling with meta.nextCursor until it comes back null, or you have only part of the set — reporting a first page as the complete answer is the most likely way to be confidently wrong here. meta.total is the exact size of the full set, so compare it against what you have collected. Ordering is stable but arbitrary, not alphabetical; sort client-side if you present a list. At least one of categories or isoCodes is required. isoCodes matches the place's own code exactly and is not a hierarchy: "US" matches only the country record, so use "US-XX" to enumerate inside a state, while a bare foreign code like "JP" correctly scopes overseas military installations. hasRecords false means the place matches no opportunities or awards, so filtering by it returns nothing. Unlike search_places, this value is computed from live data and is accurate in every environment. Place ids are market-agnostic, but opportunity and award searches are market-scoped, so an id returned here may not be searchable under this organization's subscription. Non-enterprise MCP access is capped at 25 results per page.
List the government contract price lists (product catalogs) available to you — public catalogs plus any owned by your organization. Returns each catalog's id, name, group, contract vehicle, and item count, but no pricing. Call this before search_product_catalog to discover catalog ids and groups to filter on. Takes no arguments and is not paginated; the catalog set is small.
List attachments for a workspace visible to the authenticated user.
List workspaces associated with a visible entity, using the same public workspace shape as the Tools API.
Mark a Govly opportunity as not interested / dismissed for the authenticated user, or undo it. Sets a team-visible disinterested status, unfollows the user, and removes the opportunity from the user's inbox. Use only when the user explicitly expresses disinterest, e.g. "not interested", "dismiss this", "we're not bidding". Pass undo=true to reverse a previous mark; undoing returns the user to a neutral (not following) state.
Run a read-only Elasticsearch query for Govly reporting. Govly sys-admin only. Provide an Elasticsearch query DSL body as a JSON object string and the index to search. A single bucket aggregation is flattened into columns/rows; otherwise hits are returned. Set "size" in the query body for the page size (this tool caps it). Returns JSON text with columns, rows, row_count, duration_ms, and truncated. For hits, row_count is the total matching documents (not the number of rows returned, which is capped by size); truncated is true when more matched than were returned.
Run read-only SQL for Govly reporting. Govly sys-admin only. Only a single SELECT/WITH statement is allowed. Use show_report_schema first when table or column names are unknown. Returns JSON text with columns, rows, row_count, duration_ms, and truncated.
Search awarded government contracts for pricing analysis, vendor research, and historical spending patterns. Searches all time unless dateRange is given. searchType defaults to the authenticated user's market focus (fed or sled); sled and international require the matching organization subscription. The response's meta.searchType reports the market actually searched — tell the user which market these results cover, since other markets need a separate call. Paginate by passing each response's meta.nextCursor into the next request until meta.nextCursor is null. Cursors are bound to the query, filters, and sort inputs. Non-enterprise MCP access is capped at 50 results per page. Full award pages are limited separately.
Search government points of contact (buyers, contracting officers, program staff) surfaced from opportunities and awards, for outreach and account research. Returns a summary per contact; email and phone are never included here — use show_contact for a single contact's detail. Paginate by passing each response's meta.nextCursor into the next request until meta.nextCursor is null. Cursors are bound to the query, filters, and sort inputs. Non-enterprise MCP access is capped at 50 results per page.
Search government contracting opportunities visible to the authenticated user. Defaults to open, actionable opportunities. Use non-open statuses only when the user asks for historical, expired, cancelled, awarded, or specific known opportunity lookups. Search results exclude prediction records. searchType selects the market (fed, sled, or international) and defaults to the authenticated user's market focus; sled and international require the matching organization subscription. The response's meta.searchType reports the market actually searched — tell the user which market these results cover, since other markets need a separate call. Paginate by passing each response's meta.nextCursor into the next request until meta.nextCursor is null. Cursors are bound to the query, filters, and sort inputs, and represent the current search index state rather than a frozen snapshot. Non-enterprise MCP access is capped at 50 results per page. Full opportunity pages are limited separately.
Resolve a place name to canonical Govly Place ids — counties, municipalities, states, ZIP codes, school districts, military installations, and countries. Use this to turn a place a user names ("Redstone Arsenal", "Mecklenburg County") into an id. Results are ordered records-bearing first; hasRecords false means the place is in the gazetteer but matches no opportunities or awards, so filtering by it returns nothing. nameMatch reports how the name matched: exact, partial, or semantic. Treat semantic as a prompt to confirm with the user before filtering on it — vernacular geography like "the Bay Area" has no canonical record and will resolve to whatever is nearest. partial is normal and expected for county and municipality lookups, because canonical names carry a category suffix ("Bexar County"), so a bare "bexar" can never be exact. isoCodes matches the place's own code exactly and is not a hierarchy: "US" matches only the country record, so use "US-XX" to scope inside a state, while a bare foreign code like "JP" correctly scopes overseas military installations. Place ids are market-agnostic, but opportunity and award searches are market-scoped, so an id returned here may not be searchable under this organization's subscription. Results are ranked by relevance to the query, so this pages through matches — it does not enumerate. No text query matches all 58 California counties, so page until meta.nextCursor is null and relevance still bounds what you get. Non-enterprise MCP access is capped at 25 results per page.
Search line items across government contract price lists (product catalogs) for negotiated pricing, part numbers, and availability. query is a fuzzy search over item descriptions, manufacturers, and part numbers. productCatalogIds, group, category, manufacturer, and priceRange are exact filters, AND-combined with query, so a filter is a recall ceiling. Call list_product_catalogs first to discover catalog ids and groups — productCatalogIds is always intersected with the catalogs you may access, so ids you do not have access to simply drop out rather than erroring. Paginate with the page parameter until the results run out. Maximum 100 results per page; non-enterprise MCP access is capped at 50. Results are relevance-ordered; there is no sort control.
Search procurement and market signals — clustered news, hearings, laws, events, analysis, policy, regulatory actions, and public meetings. query is a fuzzy, semantic search over signal content. contentTypes, categories, and dateRange are exact filters, AND-combined with query: a result must pass every filter, and query only ranks what survives, so a filter is a recall ceiling. categories is a HARD filter — it returns only clusters tagged that category and will miss relevant but differently-tagged signals, which query cannot recover while the filter is on. Put topics you are searching for in query (even recognizable ones like "cybersecurity"); reach for categories only to narrow on a dimension query does not already express (e.g. query "laptops" with categories ["cybersecurity"]). Paginate with the page parameter until the results run out. Maximum 50 results per page. meta.aggregations lists facet counts on the first page only, covering the filter dimensions (categories, contentTypes) plus jurisdictions, which is discovery-only and has no filter input; facets come from the indexed snapshot and can lag the result fields, which reflect current data. When linking a user to a signal, use signalUrl — each result's page in Govly. To inspect one result's source records and source-level details, call show_signal with that result's id.
Show a single awarded government contract, including transactions, sub-awards, related opportunities, program links, line items, places, classification codes, and contacts. Accepts either the Govly award id or the award uniqueKey (such as CONT_AWD_... or CONT_IDV_...) from search_awards results. Non-enterprise MCP access is capped at 200 full award pages per day.
Show an award saved search visible to the authenticated user.
Show a single government point of contact by Govly contact id (from search_contacts results), including titles, associated buyers, vendors, and contract vehicles, plus email and phone. Non-enterprise access is capped at 200 contact reads per day.
Show a single opportunity visible to the authenticated user, including source metadata and attachments. Rich source data blobs are not exposed via the public surface. Non-enterprise MCP access still returns the opportunity shell and source list, but attachment URLs are omitted and full opportunity pages are capped at 200 per day.
Show an opportunity saved search visible to the authenticated user.
Show Postgres table and column metadata for writing read-only report SQL. Govly sys-admin only. Use this before run_report when table or column names are unknown.
Show one procurement signal cluster and its source records.
Show a workspace visible to the authenticated user, including recent comments and attachments.
Read-only: is a job class present anywhere in Sidekiq in prod? Govly sys-admin only. Defaults scan everywhere a straggler can hide: work (executing), queues (enqueued), retry, scheduled, dead. Returns a per-set three-state result: found (with a sample), absent (set fully swept with every entry decoded — trustworthy), or inconclusive (budget exhausted, unreadable entries, OR a live surface: queues and work can prove presence but never absence — the work snapshot refreshes on a ~10s heartbeat). Treat any inconclusive as NOT drained; for a drain check, run twice at least 15s apart. Use for pre-deploy drain checks when deleting/renaming a job class. Samples carry jid/queue/class/error_class/retry_count but NOT job args or error messages (they can contain credentials and customer PII) — look a jid up in Sidekiq Web if you need the payload. Returns JSON.
Read-only Sidekiq per-job-class execution metrics for prod. Govly sys-admin only. Omit job_class for the top jobs by throughput; pass job_class for one class. Returns JSON with processed, failed, failure_rate, and avg_ms over a recent window (max 8h). This is Sidekiq's own Redis-side counters — exact, but short-windowed; for longer history use AppSignal's background-job performance data.
Read-only Sidekiq/Redis dashboard summary for prod. Govly sys-admin only. Returns JSON with per-queue depth + latency, retry/scheduled/dead sizes, cumulative processed/failed counters, process/busy counts, per-process-group queue coverage (which worker lane consumes which queues, with thread counts — plus unserved_queues nothing live is subscribed to; queues are consumed in strict list order, so a busy lane starves its tail queues), and a capped snapshot of jobs running right now. This is the LIVE point-in-time truth; for history and trends use AppSignal's sidekiq_queue_latency / sidekiq_queue_length metrics instead of polling this tool. Use sidekiq_set_profile to see what a backlog is made of. No arguments.
Read-only: what is a Sidekiq backlog MADE OF in prod? Govly sys-admin only. Groups a bounded sample of a set or queue by job class — the discovery complement to sidekiq_find_job (which confirms a class you already suspect). retry/scheduled/dead: random sample with per-class counts and earliest/latest score times (fire time for retry/scheduled, death time for dead). queue: newest+oldest pages of the LIST — newest reveals active inflow, oldest what has been stuck longest. work: full snapshot of executing jobs grouped by class. Shares are estimates unless exact:true (the whole set fit in the sample). Returns class names, counts, and timestamps only — never job args. Returns JSON.
Update an award saved search. Only provided fields change; omitted fields keep their current values. Set active=false to deactivate. Authorization matches the web UI (any saved search the caller can see per their organization's visibility settings).
Update an opportunity saved search. Only provided fields change; omitted fields keep their current values. Set active=false to deactivate. Buyer filtering takes government-entity IDs directly. Authorization matches the web UI (any saved search the caller can see per their organization's visibility settings).
Update a workspace visible to the authenticated user.
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Govly alternatives on ChatGPT?
As of 2026-09-02, Govly competes with Bidaya, BidPrime, Civic Marketplace, CLEATUS, DC PASS Contracts, egp · งานประมูลภาครัฐ, European Union Tender Search, GovTribe, LicitaLAB, SCOUT for Federal Contracting, SourceFlag, Sweetspot, Tango MCP, Townline, VectorGov, Znajdź Przetargi in ChatGPT Government Procurement & Contract Search, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.