AI providers
BidderOps’s AI features are powered by a pluggable provider layer. You bring your own model access, configure it per feature, and BidderOps routes each request to the provider you chose.
Supported providers
| Provider | Models | Notes |
|---|---|---|
| OpenAI | GPT-4o, GPT-4o Mini | Direct API. |
| Anthropic | Claude Opus 4, Claude Sonnet 4, Claude Haiku 4 | Direct API; native web search. |
| Gemini 1.5 Pro, Gemini 1.5 Flash | Direct API. | |
| OpenRouter | Any model in the OpenRouter catalog | A gateway to many providers; the live catalog is fetched and cached. |
| Local | Any model on an OpenAI-compatible endpoint | Runs on your hardware. See Local LLM. |
A model is identified by a provider:model string — for example openai:gpt-4o,
anthropic:claude-sonnet-4-6, or local:mistral.
Model prices on OpenRouter
When you pick an OpenRouter model, in Settings → AI or in the model selector of any AI feature, its price appears next to the selector: the cost per 1M tokens for input (what you send) and output (what the model writes), for example $3.00 in / $15.00 out per 1M tokens. Free models show Free. Models with variable pricing, such as OpenRouter’s auto router, show no price.
Prices come from OpenRouter’s model list, which BidderOps caches. To update them, open Settings → AI and choose Refresh model list. If you connected OpenRouter before prices were shown, they appear after your first refresh. The built-in list used before the first refresh has no prices. The prices are a guide: what you pay is whatever OpenRouter bills.
The AI features
Each of these features can be pointed at a different model, with its own editable instructions, in Settings → AI. Each one is run by one of your agents, and Settings lists them in that order with the agent’s badge beside each feature:
| Agent | Feature | Purpose |
|---|---|---|
| Scout | Discovery Boost | Scores how well sourced tenders fit your bid profile. |
| Analyst | RFx Analyzer | Extracts scope, criteria, milestones, dates, and submission documents from tender text. |
| Advisor | Go/No-Go Advisor | Recommends whether to pursue an opportunity. |
| Researcher | Bid Intelligence Agent | Researches a single opportunity into a dossier. |
| Researcher | Bid Intelligence Deep Dive | Expands one section of a dossier in depth. Deep dives run on the model picked on the Competitive Edge panel; this default only applies when the Bid Intelligence Agent has none. |
| Matcher | Experience Import | Extracts references and CVs from documents. |
| Matcher | Capability Match | Judges how well your references and experts fit an opportunity. |
| Strategist | Portfolio Insights | Summarizes win/loss patterns across your portfolio. |
| Strategist | Pipeline Report | Produces an executive briefing on the active pipeline. |
| Copilot | Chat Assistant | Answers questions in the chat panel and proposes changes for your approval. |
Where keys live
API keys and your local endpoint settings are stored per organization, server-side. They are never shipped to the browser — the AI calls are made from the server, so your credentials stay on the server. You can configure keys for several providers at once and switch between them per feature.
Your keys are encrypted at rest with AES-256-GCM; the encryption key is held in the application environment, never in the database, so a database dump yields ciphertext rather than your keys. They are also masked and write-only in Settings — a configured key shows only as dots and a “Configured” badge, and only owners and admins can set, replace, remove, or read them. For the full data-flow and privacy details of the local option, see Local LLM.
Web-search grounding
Two features — Bid Intelligence and its Deep Dive — are far more useful when the model can search the live web. Grounding support depends on the provider:
| Provider | Grounding | How |
|---|---|---|
| Anthropic | Yes (native) | web_search tool |
| OpenRouter | Yes | OpenRouter’s web search, with the pages it cites added to the sources |
| OpenAI | Best-effort | Responses API web_search_preview |
| Best-effort | Google Search grounding | |
| Local | No | falls back to ungrounded generation |
When a provider cannot ground, the report is still produced — it is simply marked
grounded: false. This matters most when running a local model.
Customizing instructions
Every feature ships with sensible default instructions describing the model’s role. You can override them per organization in Settings → AI. A fixed output contract (the required JSON shape) is always appended in code so responses stay machine-readable — that part is not editable.