← All runbooks
gooseworks-ai / composites-funding-signal-monitor

Funding Signal Monitor

Detect recently funded startups that may be ready for outreach after a Seed, Series A, Series B, or Series C raise. This runbook aggregates public funding signals from web search, Hacker News, Twitter, Reddit, and manual verification sources, then deduplicates and scores companie

agent codexmodel gpt-5.5snapshot python312-uveval programmatic8 stepsv1.0.0

Deploy Funding Signal Monitor to your jetty.io

One-click installs this runbook into a collection on your Jetty account. You can run it from the Spot dashboard, schedule it, or pipe inputs in via the API.

The shape of the run

8 steps · start to finish.

  1. 1
    Step 1

    Environment Setup

    Create the results directory, install lightweight dependencies, and capture the resolved inputs.

    mkdir -p /app/results
    python -m pip install requests
    python - <<'PY'
    import json, os, datetime
    params = {
      "target_stages": os.getenv("TARGET_STAGES", "Series A, Series B, Series C"),
      "target_industries": os.getenv("TARGET_INDUSTRIES", "all"),
      "min_amount": os.getenv("MIN_AMOUNT", "none"),
      "lookback_days": int(os.getenv("LOOKBACK_DAYS", "7")),
      "results_dir": "/app/results",
      "created_at": datetime.datetime.utcnow().replace(microsecond=0).isoformat() + "Z",
    }
    open("/app/results/search_provenance.json", "w").write(json.dumps({"parameters": params, "queries": [], "sources": []}, indent=2))
    PY
    
  2. 2
    Step 2

    Configure Search Strategy

    Build 4-6 search queries per requested stage and industry. Include direct announcement phrases such as `raised Series A`, `announces Series B funding`, `startup funding round`, and `excited to announce raised`, plus industry-specific variants when `target_industries` is not `all`

  3. 3
    Step 3

    Multi-Source Search

    Run searches across available sources in parallel where the execution environment permits it:

  4. 4
    Step 4

    Consolidate and Deduplicate

    Normalize company names, announcement dates, stages, and amounts. Merge records that refer to the same company and keep every source URL in a `sources` array.

  5. 5
    Step 5

    Score and Rank Companies

    Apply this scoring rubric:

  6. 6
    Step 6

    Generate Outputs

    Write `/app/results/funding_signal_companies.json` with structured records:

  7. 7
    Step 7

    Human Review Guardrails

    Do not launch outreach from this runbook. Present the ranked list and require explicit user confirmation before chaining to contact discovery or cold-email workflows. Mark any result without a primary announcement URL as `needs_manual_verification`.

  8. 8
    Step 8

    Iterate on Errors (max 3 rounds)

    If validation fails or the report contains fewer qualified companies than expected, perform targeted retries for max 3 rounds: