How lucas-m-fr/sales-intel-engine works
Sales Intelligence Engine turns a user’s target into downloadable, evidence-backed business tables. The CLI and Streamlit UI each orchestrate planning, lead discovery, page capture, optional review enrichment, extraction, and verification; Streamlit also displays and offers CSV downloads. Shared batch files hold leads, evidence, and table outputs. NVIDIA supplies query refinement and structured extraction, while Firecrawl searches and scrapes public sites. The graph shows only relationships documented in the README or visible in the supplied excerpts; unsampled modules and unshown interactions are not inferred.
Main entry points: streamlit_app.py Streamlit app · main.py CLI runner · interaction.py Page capture · discovery.py Batch archive
Components 16
User entry points
- CLI runner
main.py - Streamlit app
streamlit_app.py
Lead research
- Search planner
src/planner.py - Lead discovery
src/discovery.py
Evidence capture
- Page capture
src/interaction.py - Review enrichment
src/review_enrichment.py
Extraction and output
- Table extraction
src/extractor.py - Evidence validation
src/validator.py - Progress monitor
src/monitor.py
Runtime services
- Batch archive
src/discovery.py - Runtime configuration
src/config.py - NVIDIA client
src/llm.py
Other components
- Target user
- Firecrawl service
- NVIDIA NIM
- Playwright browser
Connections 33
- Target user → CLI runner: provides target
main.py - Target user → Streamlit app: provides target
streamlit_app.py - CLI runner → Search planner: requests strategy
main.py - CLI runner → Lead discovery: requests leads
main.py - CLI runner → Page capture: starts capture
main.py - CLI runner → Review enrichment: starts enrichment
main.py - CLI runner → Table extraction: starts extraction
main.py - CLI runner → Evidence validation: validates tables
main.py - Streamlit app → Search planner: requests strategy
streamlit_app.py - Streamlit app → Lead discovery: requests leads
streamlit_app.py - Streamlit app → Page capture: starts capture
streamlit_app.py - Streamlit app → Review enrichment: starts enrichment
streamlit_app.py - Streamlit app → Table extraction: starts extraction
streamlit_app.py - Streamlit app → Evidence validation: validates tables
streamlit_app.py - Streamlit app → Target user: shows downloads
streamlit_app.py - Search planner → NVIDIA client: requests completion
src/planner.py - Table extraction → NVIDIA client: requests extraction
src/extractor.py - NVIDIA client → NVIDIA NIM: sends prompts
src/llm.py - Lead discovery → Firecrawl service: searches leads
src/discovery.py - Page capture → Firecrawl service: scrapes fallback
src/interaction.py - Page capture → Playwright browser: captures pages
src/interaction.py - Review enrichment → Firecrawl service: searches and scrapes
src/review_enrichment.py - Lead discovery → Batch archive: writes lead batch
src/discovery.py - Page capture → Batch archive: writes page evidence
src/interaction.py - Review enrichment → Batch archive: writes review evidence
src/review_enrichment.py - Table extraction → Batch archive: reads evidence; writes tables
src/extractor.py - Evidence validation → Batch archive: checks evidence and tables
src/validator.py - Progress monitor → Batch archive: reports batch status
src/monitor.py - Lead discovery → Runtime configuration: loads API key and archive path
src/discovery.py - Page capture → Runtime configuration: loads API key
src/interaction.py - Review enrichment → Runtime configuration: loads API key
src/review_enrichment.py - Search planner → Runtime configuration: reads model settings
src/planner.py - NVIDIA client → Runtime configuration: reads NVIDIA settings
src/llm.py