AI Crews
Example: Government Contracts

Example: Government Contracts Pipeline

This crew monitors GovWin for government contracts relevant to Stilo Solutions, shortlists the best opportunities, and drafts the full bid package — proposal, technical approach, and supporting documents — ready for human review before submission.

What it does

GovWin search URL


┌─────────────────┐
│  Contract Scout │  Scrapes GovWin, filters by Stilo's capabilities,
│                 │  extracts key requirements
└────────┬────────┘
         │ shortlist + requirements

┌─────────────────┐
│   Fit Analyst   │  Scores each contract: incumbent risk, competition,
│                 │  win probability, estimated effort
└────────┬────────┘
         │ scored + ranked shortlist

┌─────────────────┐
│ Proposal Writer │  Writes full proposal for top contracts:
│                 │  executive summary, technical approach, staffing plan
└────────┬────────┘
         │ draft proposals

┌─────────────────┐
│  Doc Assembler  │  Organises all documents into a submission folder
│                 │  in Obsidian, flags missing items for human review
└─────────────────┘


  ~/obsidian/contracts/
  ├── shortlist.md
  ├── scored-opportunities.md
  └── proposals/
      ├── proposal-W52P1J-24-R-0001.md
      └── proposal-FA8771-24-R-0005.md

Setting it up

1. Create the project

bash /srv/shared/projects/new-project.sh research-crew govwin-pipeline
cd ~/projects/govwin-pipeline
source .venv/bin/activate

2. Write a company profile note

Create ~/obsidian/company/stilo-profile.md in Obsidian with:

# Stilo Solutions — Capability Profile
 
## Core capabilities
- Custom software development (web, mobile, embedded)
- IT infrastructure and cloud (AWS, Azure)
- Systems integration
- Video surveillance and physical security systems
- Data engineering and analytics
 
## NAICS codes
541512 — Computer Systems Design Services
541519 — Other Computer Related Services
561621 — Security Systems Services
 
## Contract vehicles
- GSA MAS (Schedule 70)
- SeaPort-NxG
 
## Past performance
- [Add examples here]
 
## Team size
- [Current headcount and key disciplines]

This note becomes the agent's reference for deciding which contracts fit.

3. Configure .env

SCOUT_MODEL=qwen3-general
ANALYST_MODEL=claude-sonnet
WRITER_MODEL=claude-sonnet
ASSEMBLER_MODEL=qwen3-general
OBSIDIAN_VAULT=/home/yourname/obsidian
LITELLM_BASE_URL=http://localhost:4000/v1
LITELLM_API_KEY=sk-...  # from ~/.config/litellm/key

4. Add a GovWin login tool

GovWin requires authentication. Create src/govwin_crew/tools/govwin.py:

import os
from crewai.tools import BaseTool
from playwright.sync_api import sync_playwright  # or use httpx with session cookies
 
class GovWinSearchTool(BaseTool):
    name: str = "Search GovWin"
    description: str = (
        "Search GovWin IQ for government contract opportunities. "
        "Input: a search query or NAICS code."
    )
 
    def _run(self, query: str) -> str:
        # Use your GovWin credentials from environment variables
        username = os.environ["GOVWIN_USERNAME"]
        password = os.environ["GOVWIN_PASSWORD"]
 
        # Implement login + search using httpx with session handling
        # or Playwright once Ubuntu 26.04 support is added
        # For now: use WebScrapeTool with a pre-authenticated session cookie
        raise NotImplementedError(
            "Add GovWin session cookie to GOVWIN_SESSION env var and implement here"
        )

Add to .env:

GOVWIN_USERNAME=your@email.com
GOVWIN_PASSWORD=yourpassword

Note: Playwright (full browser automation) is not yet supported on Ubuntu 26.04. Until it is, use GovWin's export feature to download a CSV of opportunities and point the scout agent at a local file instead.

5. Run the pipeline

# Point at an exported GovWin search results file
PYTHONPATH=src python -m govwin_crew.main "~/obsidian/contracts/govwin-export.csv"
 
# Or with a direct URL once Playwright is available
PYTHONPATH=src python -m govwin_crew.main "https://iq.govwin.com/neo/oppSearchCriteria/..."

Check your Obsidian vault — results appear in contracts/ within minutes.

Customising for your pipeline

Add a compliance checker agent

def compliance_checker() -> Agent:
    return Agent(
        role="FAR Compliance Reviewer",
        goal="Verify that proposals comply with FAR/DFARS requirements and solicitation instructions.",
        backstory="You are a contracts attorney with 15 years of federal procurement experience.",
        tools=[ObsidianReadTool(), ObsidianWriteTool()],
        llm=_llm("claude-opus"),  # use the strongest model for legal review
    )

Schedule it to run weekly

Add a cron entry on the server:

crontab -e
# Add:
0 7 * * 1 cd ~/projects/govwin-pipeline && PYTHONPATH=src .venv/bin/python -m govwin_crew.main >> ~/obsidian/contracts/run.log 2>&1

Every Monday at 7am the crew runs, updates your shortlist, and the results sync to your Obsidian on your desktop before you start work.