# Search Pursuits

`Search_Pursuits` returns GovTribe pursuit records for capture-management workflows, including each pursuit's pipeline and stage placement, ownership context, and linked supporting records.

## When To Use

Typical questions this tool answers well:

* Which pursuits are in a specific pipeline or stage right now?
* Which pursuits belong to a specific owner or were created by specific users?
* Which pursuits should be included or excluded by explicit GovTribe pursuit IDs?
* How many pursuits match my filter set before I fetch full rows?
* Which pursuits are semantically similar to an existing pursuit or related capture record?

## Required Reading

1. [Search\_Query\_Guide](https://docs.govtribe.com/user-guide/mcp/guides/search_query_guide): Required before setting free-text query strings when search\_mode is used.
2. [Search\_Mode\_Guide](https://docs.govtribe.com/user-guide/mcp/guides/search_mode_guide): Required before choosing keyword vs semantic retrieval.

## Input Contract

* `query`: Free-text query string. See Required Reading: [Search\_Query\_Guide](https://docs.govtribe.com/user-guide/mcp/guides/search_query_guide).
  * `type`: `string`
  * `required`: `no`
  * `default`: `n/a`
* `page`: 1-based page index.
  * `type`: `null|number`
  * `required`: `no`
  * `default`: `1`
* `per_page`: Rows per page.
  * `type`: `null|number`
  * `required`: `no`
  * `default`: `10`
* `search_mode`: Query interpretation mode. See Required Reading: [Search\_Mode\_Guide](https://docs.govtribe.com/user-guide/mcp/guides/search_mode_guide).
  * `type`: `string`
  * `required`: `no`
  * `default`: `keyword`
  * `options`: `keyword`, `semantic`
* `pipeline_ids`: Filter by pipelines. Use GovTribe IDs.
  * `type`: `array<string>`
  * `required`: `no`
  * `default`: `n/a`
* `pipeline_ids_operator`: Choose whether to include or exclude values for Pipeline GovTribe IDs.
  * `type`: `null|string`
  * `required`: `no`
  * `default`: `in`
  * `options`: `in`, `not_in`
* `stage_ids`: Filter by stages. Use GovTribe IDs.
  * `type`: `array<string>`
  * `required`: `no`
  * `default`: `n/a`
* `stage_ids_operator`: Choose whether to include or exclude values for Stage GovTribe IDs.
  * `type`: `null|string`
  * `required`: `no`
  * `default`: `in`
  * `options`: `in`, `not_in`
* `creator_ids`: Filter by creators. Use GovTribe IDs.
  * `type`: `array<string>`
  * `required`: `no`
  * `default`: `n/a`
* `creator_ids_operator`: Choose whether to include or exclude values for Creator GovTribe IDs.
  * `type`: `null|string`
  * `required`: `no`
  * `default`: `in`
  * `options`: `in`, `not_in`
* `owner_ids`: Filter by owners. Use GovTribe IDs.
  * `type`: `array<string>`
  * `required`: `no`
  * `default`: `n/a`
* `owner_ids_operator`: Choose whether to include or exclude values for Owner GovTribe IDs.
  * `type`: `null|string`
  * `required`: `no`
  * `default`: `in`
  * `options`: `in`, `not_in`
* `similar_filter`: Find similar to the provided govtribe\_type + govtribe\_id.
  * `type`: `null|object`
  * `required`: `no`
  * `default`: `n/a`
  * `shape`: `{ govtribe_type: string, govtribe_id: string }`
* `pursuit_ids`: Include or exclude results by GovTribe IDs.
  * `type`: `array<string>`
  * `required`: `no`
  * `default`: `n/a`
* `pursuit_ids_operator`: Choose whether to include or exclude values for GovTribe IDs.
  * `type`: `null|string`
  * `required`: `no`
  * `default`: `in`
  * `options`: `in`, `not_in`
* `sort`: Sort configuration.
  * `type`: `object`
  * `required`: `no`
  * `default`: `n/a`
  * `shape`: `{ key?: null|string, direction?: null|string }`
  * `options`: `key`: `updated_at`, `dueDate`, `created_at`, `estimatedAwardDate`, `estimatedValue`, `probableValue`, `stagesFromCompletion`, `_score`; `direction`: `asc`, `desc`
* `fields_to_return`: Optional field list for row payloads. If omitted and `per_page > 0`, rows default to `govtribe_id`. For `per_page: 0` aggregation/meta calls, this field may be omitted. Specify `fields_to_return` whenever the user asks for fields beyond `govtribe_id`, and prefer omitting it in pure aggregation workflows.
  * `type`: `array<string>`
  * `required`: `no`
  * `default`: `n/a`
  * `options`: `govtribe_id`, `govtribe_ai_summary`, `govtribe_type`, `govtribe_url`, `name`, `description`, `due_date`, `created_at`, `estimated_award_date`, `estimated_duration`, `set_aside`, `estimated_value`, `updated_at`, `owner`, `stage`, `pipeline`, `user_files`, `federal_agency`, `naics_category`, `psc_category`, `state`, `associated_records`, `contacts`

## Output Contract

* Top-level keys:
  * `current_page`: Current page number when `per_page > 0`.
  * `data`: Array of result rows when `per_page > 0`.
  * `from`: First row position in the current page.
  * `last_page`: Last page number for current filters.
  * `path`: GovTribe search URL for this result set.
  * `per_page`: Applied page size.
  * `to`: Last row position in the current page.
  * `total`: Total matched row count for current query filters.
  * `contains`: Dataset label for the returned result set.
  * `search_results_id_can_generate_saved_search`: Saved-search eligibility flag.
  * `search_results_id`: Server-side search result identifier.
  * `view_search_results_url`: URL to open this exact result set.
  * `per_page: 0` behavior: response omits row pagination keys and returns metadata keys (`path`, `total`, `contains`, `search_results_id_can_generate_saved_search`, `search_results_id`, `view_search_results_url`).
* Row keys:
  * `govtribe_id`
  * `govtribe_ai_summary`
  * `govtribe_type`
  * `govtribe_url`
  * `name`
  * `description`
  * `due_date`
  * `created_at`
  * `estimated_award_date`
  * `estimated_duration`
  * `set_aside`
  * `estimated_value`
  * `updated_at`
  * `owner`
  * `stage`
  * `pipeline`
  * `user_files`
  * `federal_agency`
  * `naics_category`
  * `psc_category`
  * `state`
  * `associated_records`
  * `contacts`
* Relationship retrieval map:
  * `associated_records`
    * `resource_type`: `federal_contract_award`
    * `tool`: `Search_Federal_Contract_Awards`
    * `filter`: `federal_contract_award_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `federal_contract_idv`
    * `tool`: `Search_Federal_Contract_IDVs`
    * `filter`: `federal_contract_i_d_v_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `federal_contract_opportunity`
    * `tool`: `Search_Federal_Contract_Opportunities`
    * `filter`: `federal_contract_opportunity_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `federal_forecast`
    * `tool`: `Search_Federal_Forecasts`
    * `filter`: `federal_forecast_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `federal_grant_award`
    * `tool`: `Search_Federal_Grant_Awards`
    * `filter`: `federal_grant_award_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `federal_grant_opportunity`
    * `tool`: `Search_Federal_Grant_Opportunities`
    * `filter`: `federal_grant_opportunity_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `nigp_category`
    * `tool`: `Search_Nigp_Categories`
    * `filter`: `nigp_category_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `state_local_contract_award`
    * `tool`: `Search_State_And_Local_Contract_Awards`
    * `filter`: `state_and_local_contract_award_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `state_local_contract_idv`
    * `tool`: `Search_State_And_Local_Contract_IDVs`
    * `filter`: `state_and_local_contract_i_d_v_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `state_local_contract_opportunity`
    * `tool`: `Search_State_And_Local_Contract_Opportunities`
    * `filter`: `state_and_local_contract_opportunity_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `state_local_contract_vehicle`
    * `tool`: `Search_State_And_Local_Contract_Vehicles`
    * `filter`: `state_and_local_contract_vehicle_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
    * `resource_type`: `unspsc_category`
    * `tool`: `Search_Unspsc_Categories`
    * `filter`: `unspsc_category_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
  * `contacts`
    * `resource_type`: `contact`
    * `tool`: `Search_Contacts`
    * `filter`: `contact_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `name`, `email`, `govtribe_url`
  * `federal_agency`
    * `resource_type`: `federal_agency`
    * `tool`: `Search_Federal_Agencies`
    * `filter`: `federal_agency_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
  * `naics_category`
    * `resource_type`: `naics_category`
    * `tool`: `Search_Naics_Categories`
    * `filter`: `naics_category_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
  * `owner`
    * `resource_type`: `user`
    * `tool`: `Search_Users`
    * `filter`: `user_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `name`, `email`
  * `pipeline`
    * `resource_type`: `pipeline`
    * `tool`: `Search_Pipelines`
    * `filter`: `pipeline_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
  * `psc_category`
    * `resource_type`: `psc_category`
    * `tool`: `Search_Psc_Categories`
    * `filter`: `psc_category_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
  * `stage`
    * `resource_type`: `stage`
    * `tool`: `Search_Stages`
    * `filter`: `stage_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`, `type`
  * `state`
    * `resource_type`: `state`
    * `tool`: `Search_States`
    * `filter`: `state_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`
  * `user_files`
    * `resource_type`: `user_file`
    * `tool`: `Search_User_Files`
    * `filter`: `user_file_ids`
    * `nested_keys`: `govtribe_id`, `govtribe_type`, `govtribe_url`, `name`

## Usage Patterns

Pattern A: List pursuits in one pipeline stage (resolve IDs first with `Search_Pipelines` and `Search_Stages`). Tool: `Search_Pursuits`

```json
{
  "query": "",
  "search_mode": "keyword",
  "fields_to_return": [
    "govtribe_id"
  ],
  "pipeline_ids": [
    "<PIPELINE_ID>"
  ],
  "stage_ids": [
    "<STAGE_ID>"
  ],
  "page": 1,
  "per_page": 25
}
```

Pattern B: Owner worklist for weekly capture reviews. Tool: `Search_Pursuits`

```json
{
  "query": "",
  "search_mode": "keyword",
  "fields_to_return": [
    "govtribe_id"
  ],
  "owner_ids": [
    "<USER_ID>"
  ],
  "page": 1,
  "per_page": 20
}
```

Pattern C: Exclude terminal stages and return metadata only for dashboard counts. Tool: `Search_Pursuits`

```json
{
  "query": "",
  "search_mode": "keyword",
  "stage_ids": [
    "<WON_STAGE_ID>",
    "<LOST_STAGE_ID>",
    "<ABANDONED_STAGE_ID>"
  ],
  "stage_ids_operator": "not_in",
  "per_page": 0
}
```

Pattern D: Retrieve specific pursuits by known GovTribe IDs. Tool: `Search_Pursuits`

```json
{
  "query": "",
  "search_mode": "keyword",
  "fields_to_return": [
    "govtribe_id"
  ],
  "page": 1,
  "per_page": 10,
  "pursuit_ids": [
    "<PURSUIT_ID_1>",
    "<PURSUIT_ID_2>"
  ]
}
```

Pattern E: Find pursuits similar to a known pursuit anchor. Tool: `Search_Pursuits`

```json
{
  "query": "",
  "search_mode": "semantic",
  "fields_to_return": [
    "govtribe_id"
  ],
  "similar_filter": {
    "govtribe_type": "pursuit",
    "govtribe_id": "<PURSUIT_ID>"
  },
  "page": 1,
  "per_page": 20
}
```
