Tools reference
Fourteen tools are available. Your assistant chooses which to call based on what you ask, so you rarely name one directly. This page is for checking exactly what a tool does and what its results mean.
Which tools you can use depends on your plan. See Plans and limits.
Two conventions apply throughout:
- Every search tool accepts
filter_by_state, as a full name or a two-letter code ("Texas" or "TX"). Without it, a search covers every state your subscription includes. - Where a parameter takes a list, a single value is also accepted.
Search
search_rfps
Active or past RFPs and bids, by any combination of agency, keyword, state, agency type and status. At least one criterion is required. status_filter=["OPEN"] on its own returns the newest open RFPs.
| Parameter | |
|---|---|
agency_name | Fuzzy match, such as "City of Austin" |
search_keywords | List. Matches name, summary, document title, evaluation criteria and deliverables |
status_filter | List of OPEN, CLOSED, AWARDED, CANCELLED. Omitted means all statuses |
agency_type | List, such as ["City", "Higher Ed"] |
max_results_count | Default 10 |
sort_by | newest (default) or relevance |
Each extra keyword widens the search, because a row matching any one of them qualifies.
Results are de-duplicated: the same RFP posted on several sites appears once.
A row carrying data_quality_warning says it is open while its own dates contradict that, for example a deadline that has already passed. The row is flagged rather than hidden.
search_signals
Projects discussed in council and board meetings before any solicitation exists.
| Parameter | |
|---|---|
search_keywords | List, required |
max_results_count | Default 10, maximum 100 |
sort_by | relevance (default) or newest |
days_back | Default 90 |
Note that signals default to relevance, where RFP search defaults to newest.
Each signal returns its title, meeting date, project description, project value, notes, resolution number, agency details, associated companies, and a status giving the stage it has reached, such as Pre-RFP, Discussion or Contract Award.
Two fields are worth knowing:
vendor_decidedanddecided_vendormean the agency has already chosen a named vendor. It is not an open opportunity for someone else.pdf_urlandmd_urlboth point at the source meeting document.md_urlis the same document as markdown, which your assistant can read quickly instead of downloading the PDF. Both links are time-limited.
find_nearby_agencies
Agencies within a radius, nearest first.
| Parameter | |
|---|---|
radius_miles | Required, 1 to 500 |
zip_code or agency_name | The centre point. A zip code wins if both are given, and the centre agency is excluded from results |
agency_types | City, County, State, School, Mayoral Agency, Independent Agency, Public Authority, Fire District, Higher Ed, Local Housing Authority, State Housing Authority, MPO, Utility District, Public Hospital, Airport Authority, Library District, Special District |
max_results_count | Default 20, maximum 100 |
Returns each agency's name, type, sub-type, city, county, state, website and distance_miles.
Contacts
get_contacts
Decision-makers and staff at an agency.
| Parameter | |
|---|---|
agency_name | Required, fuzzy. A poor match returns nothing rather than a different agency |
filter_by_state | Recommended, because agency names repeat across states |
title | Such as "Procurement Officer" or "City Manager" |
max_results_count | Default 10 |
Returns name, title, email, phone, department, agency details and location.
Supplying a title changes what the tool does. It triggers live research of the agency's public sources, so an agency with nobody on file can still return results. Those searches take 15 to 40 seconds, and the contacts they find carry discovered and source_url.
Missing emails are looked up automatically. An empty email means none was found, not that it was withheld, unless you are on the Free plan, where email and phone are omitted entirely.
Spend and contracts
find_vendors
Agency spend records, searched by what was bought.
| Parameter | |
|---|---|
search_keywords | List |
max_results_count | Default 25, maximum 100 |
Returns one row per purchase line: vendor name, agency name, total price, purchase date, state, purchase description and category.
This does not total a vendor's business. Each row is one line.
search_vendor
Everything about one vendor across signals, spend and contracts, with fuzzy name matching.
| Parameter | |
|---|---|
vendor_name | Required |
max_results_count | Per source, default 10 |
Returns spend_results, contracts_results, projects_results and total_found. When total_found_capped is set, the count is a floor, meaning "at least this many".
discover_contracts
Public contracts and purchase orders.
| Parameter | |
|---|---|
search_keywords | List |
max_results_count | Default 25, maximum 100 |
Returns vendor name, note, tagline, document date, contract amount and state.
Workspaces
list_digest_workspaces
Your saved Civic IQ digest workspaces.
get_workspace_signals
The AI-scored signals a workspace produces each day, including its history.
| Parameter | |
|---|---|
workspace | Name (partial, case-insensitive) or id. Use "default" for the Default workspace |
filter_by_category | OPPORTUNITY, COMPETITOR, MARKET or GRANT_FUNDING |
days_back | Default 7, maximum 365 |
digest_date | A specific day, as YYYY-MM-DD, instead of days_back |
Returns each digest with its AI executive summary, and each signal with a headline, brief, category, urgency, a score from 0 to 100, a tag such as "RFP LIVE" or "WINDOW CLOSING", agency details, and source links.
Alerts
See Alerts for how these are used in practice.
create_alert
Saves a recurring search that emails you new results. Takes a name, the search to run (search_rfps or search_signals only), keywords, states as two-letter codes, and a frequency of daily or weekly.
Creating the same search twice updates the first rather than duplicating it. Up to 25 alerts per account.
This writes to your account.
list_alerts
Your saved alerts. Read-only.
delete_alert
Removes an alert. This writes to your account.
Outreach
launch_sequence
Enrols a contact in a three-step email sequence. Step 1 sends immediately, step 2 after three business days, step 3 after five, all at 9:00 AM Eastern.
| Parameter | |
|---|---|
contact_id | The contact to enrol |
sender_email | A connected, verified mailbox |
outreach_steps | One to three steps, each with a subject and an HTML body. Supports {{first_name}} and {{sender_name}} |
project_id | Optional |
This sends real email. It is not a draft or a preview.
Account
account_details
Your plan, the tools available to you, your per-tool row limits and omitted fields, your covered states, and your credit balance on metered plans.
This reads your account at the moment it is called, so it is always accurate about what you have, even when your client is showing a tool list it cached before your plan changed. It is free to call on every plan and is never charged.
Reading the results
A few characteristics of the underlying data affect how results should be read.
Spend descriptions are not always what was bought. The description field sometimes holds the agency's own expense account name, so a keyword can match an accounting category rather than a product. Results include the category so you can judge which one you are looking at.
Vendor names are inconsistent in the source records. Legal suffixes appear and disappear, names are truncated, and words are reordered. Two near-identical names are usually one company.
Solicitations are de-duplicated. The same solicitation is often published on several sites, and results are collapsed to one row per agency, title and deadline.
Contradictions are flagged, not corrected. A row whose own dates disagree with its status carries a data_quality_warning rather than being silently fixed or dropped.
State coverage follows your subscription. A request for a state outside your coverage is refused rather than returned as an empty result, so an explicit refusal means the data exists but is not in your plan.
Setup should only take a few minutes. If you have any questions along the way, just reach out at [email protected] and we'll help you get connected.