Signals
Research Service for Rapid Analysis of Complex Topics: A research service designed for quick consumption of recent developments on complex subjects, delivering concise insights in text and audio formats suitable for on-t
Core trick
Runs Gemini Deep Research as a background job polled to completion, then converts the summary to audio via ElevenLabs and emails a secure link.
Description
Research Service for Rapid Analysis of Complex Topics:
A research service designed for quick consumption of recent developments on complex subjects, delivering concise insights in text and audio formats suitable for on-the-go consumption -> walking, commuting, or during transit, for example.
How it works:
Users submit a research topic and email address through a simple web interface. The system validates user access, initiates a long-running Gemini Deep Research job, and then distills the output into a concise executive summary ready for immediate review.
README excerpt
# Signals Signals is a FastAPI service for whitelisted recent-developments research requests. Authorized users submit a topic and email address through a single-page app, the service runs a Gemini Deep Research job in the background, generates a concise executive summary, converts that summary to audio with ElevenLabs, uploads the audio to Azure Blob Storage, and emails the requester a secure deep link to their result page. ## What It Does - Serves a SPA at `/` for topic submission and status polling. - Validates each requester against MongoDB-backed `whitelisted_emails` and `whitelisted_email_domains` collections. - Starts Gemini Deep Research with `background=True` using the configured Deep Research agent. - Polls Gemini every `RESEARCH_POLL_INTERVAL_SECONDS` seconds until the interaction completes. - Stores the raw research report and citations in MongoDB. - Summarizes the report with the configured Gemini summary model using the prompt at [`prompts/system_prompt_1.md`](/Users/oleg/VSCodeProjects/signals/prompts/system_prompt_1.md). - Synthesizes the concise summary with ElevenLabs and uploads the MP3 to Azure Blob Storage. - Sends a completion email through Agentmail with a token-protected result URL. ## Repository Layout - [`main.py`](/Users/oleg/VSCodeProjects/signals/main.py): ASGI entrypoint exporting `app`. - [`signals_service/app.py`](/Users/oleg/VSCodeProjects/signals/signals_service/app.py): FastAPI app factory, lifespan setup, routes, and background polling