{"id":"aab4dc73-9e5b-44f1-ab80-74e279f42433","slug":"crewai-crzyc0d3r-gtm-signal-crew","name":"gtm-signal-crew","description":"Three-agent CrewAI pipeline (signal hunter, people enricher, outreach strategist) using an MCP retrieval server, with a Streamlit UI and an offline demo mode.","canonicalUrl":"https://www.xpersona.co/skill/crewai-crzyc0d3r-gtm-signal-crew","sourceUrl":"https://github.com/crzyc0d3r/gtm-signal-crew","homepage":null,"source":"GITHUB_REPOS","vendor":{"slug":"crzyc0d3r","label":"Crzyc0d3r","url":"https://github.com/crzyc0d3r/gtm-signal-crew"},"protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-10-09T13:16:28.431Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Crzyc0d3r"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Crzyc0d3r","href":"https://github.com/crzyc0d3r/gtm-signal-crew","sourceUrl":"https://github.com/crzyc0d3r/gtm-signal-crew","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T13:16:28.440Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-gtm-signal-crew/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-gtm-signal-crew/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T13:16:28.440Z","isPublic":true},{"factKey":"docs_crawl","category":"integration","label":"Crawlable docs","value":"6 indexed pages on the official domain","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-gtm-signal-crew/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-crzyc0d3r-gtm-signal-crew/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["Trust evidence available"],"agentCard":{"name":"gtm-signal-crew","description":"Three-agent CrewAI pipeline (signal hunter, people enricher, outreach strategist) using an MCP retrieval server, with a Streamlit UI and an offline demo mode.","source":"GITHUB_REPOS","sourceId":"crewai:1359720428","repository":"https://github.com/crzyc0d3r/gtm-signal-crew","documentation":"https://www.xpersona.co/skill/crewai-crzyc0d3r-gtm-signal-crew/agent/crewai-crzyc0d3r-gtm-signal-crew","protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"languages":["python"],"install":{"command":"git clone https://github.com/crzyc0d3r/gtm-signal-crew.git","ecosystem":"git"},"examples":[{"kind":"example","language":"text","snippet":"gtm-signal-crew/\n├── gtm_crew/\n│   ├── __init__.py       re-exports the models\n│   ├── models.py         Signal / Profile / Role / OutreachDraft / Contact (+ *List wrappers);\n│   │                     event-type synonym normalisation\n│   ├── mcp_config.py     builds the MCP connection for agents 1 and 2: native\n│   │                     MCPServerHTTP config or the wrapper tool, chosen by GTM_MCP_MODE\n│   ├── mcp_tool.py       MCPSearchTool(BaseTool): thin streamable-HTTP client for the\n│   │                     server's `search` tool (fallback mechanism, see below)\n│   ├── llm.py            LLM from env: OpenAI, OpenAI-compatible base URL, or OpenRouter\n│   ├── agents.py         the three Agent definitions (+ AGENT_SUMMARY for the sidebar)\n│   ├── tasks.py          three Tasks with output_pydantic schemas and context chaining\n│   ├── crew.py           build_crew(companies, window_days, mcps) -> Crew (sequential);\n│   │                     run_pipeline() kicks off and post-processes\n│   ├── pipeline.py       pure Python: merge signals + profiles, recency x seniority\n│   │                     ranking, outreach templates, JSON extraction (unit tested)\n│   └── demo_data.py      fixture signals/profiles (fictional companies and people)\n├── app.py                Streamlit UI; DEMO_MODE=1 uses fixtures without LLM/MCP\n├── run.py                CLI: --demo prints the ranked list; otherwise runs the crew\n├── tests/\n│   ├── test_pipeline.py      scoring, merge, ranking, templates, JSON parsing\n│   ├── test_mcp.py           env config + round trip against a local FastMCP server\n│   ├── test_crew_offline.py  crew wiring and output post-processing, no LLM\n│   └── test_app_smoke.py     headless Streamlit run in demo mode (AppTest)\n├── .env.example          placeholder keys (copy to .env)\n├── requirements.txt\n└── pytest.ini"},{"kind":"example","language":"mermaid","snippet":"flowchart LR\n    U[run.py / app.py] --> C[build_crew<br/>Process.sequential]\n    C --> A1[Signal Hunter]\n    A1 -->|\"search(scope=news, from_date=now-30d)\"| M[(remote MCP server)]\n    A1 -->|SignalList| A2[People Enricher]\n    A2 -->|\"search(scope=people)\"| M\n    A2 -->|ProfileList| A3[Outreach Strategist<br/>no tools]\n    A3 -->|OutreachDraftList| P[pipeline.finalize<br/>merge, rank, overlay lines]\n    P --> R[ranked ContactList]\n    D[demo_data fixtures] -.DEMO_MODE.-> P\n    R --> UI[terminal list / Streamlit cards]"}]}}