How maan034/sales-research-agent works
Sales Research Agent is a C++ HTTP service for company research. Its principal flow accepts a company name at POST /api/research, validates it, delegates research through ResearchService, and returns company details and an ICP score. The tree and README also describe web-evidence gathering and LLM-backed extraction; the HTTP handler shown constructs an OpenAIResearchProvider directly, while Application.cpp assembles a separate web-research pipeline. Some provider internals and scoring logic were not sampled, so those links are limited to documented behavior and visible construction.
Main entry points: Application.cpp Application bootstrap · ResearchService.cpp Research service · WebResearchProvider.cpp Web research provider · ResearchResult.h Research result
Components 16
HTTP entry
- HTTP server
src/main.cpp - Research controller
src/api/ResearchController.cpp - Application bootstrap
src/app/Application.cpp
Research pipeline
- Research service
src/research/ResearchService.cpp - Provider interface
include/sra/research/ResearchProvider.h - Web research provider
src/research/WebResearchProvider.cpp
Research domain
- Evidence records
include/sra/domain/Evidence.h - Research signals
include/sra/domain/ResearchSignal.h - Company model
include/sra/domain/Company.h - Research result
include/sra/domain/ResearchResult.h
Research integrations
- OpenAI provider
src/research/OpenAIResearchProvider.cpp - Demo provider
src/research/DemoResearchProvider.cpp - Web search client
src/research/DuckDuckGoSearchClient.cpp - Search interface
include/sra/research/IWebSearchClient.h
Other components
- API caller
- LLM service
Connections 19
- API caller → HTTP server: sends request
- HTTP server → Research controller: dispatches request
- Research controller → Research service: calls research
- Research controller → OpenAI provider: constructs provider
- Research service → Provider interface: dispatches research
- Research service → Research result: returns result
- Web research provider → Search interface: searches web
- Web search client → Evidence records: returns evidence
- OpenAI provider → LLM service: requests extraction
- Application bootstrap → Web search client: constructs client
- Application bootstrap → OpenAI provider: constructs provider
- Application bootstrap → Web research provider: constructs pipeline
- Application bootstrap → Research service: constructs service
- Application bootstrap → Research service: calls research
- Application bootstrap → Research result: prints summary
- Web research provider → Research signals: produces signals
- Web research provider → Evidence records: uses evidence
- Research result → Company model: includes company
- Research result → Research signals: includes signals