Personalized morning news brief in your inbox before standup
Every weekday at 7am, get a clean email with the latest on the topics you care about, with citations, ready to read before standup.
Build me a deterministic code workflow that delivers a personalized morning news brief to my inbox every weekday at 7am in my local time zone, before standup.
Trigger: cron, every weekday (Mon-Fri) at 07:00 in my local time zone.
Workflow config (static, no model-driven branching):
- topics: a static list of strings I edit by hand. Seed it with three example topics: "generative AI infrastructure", "my portfolio companies", and "industry-x regulation". I will replace these with my real beats.
- recipient: a single configurable email address (allow a comma-separated list of addresses too) that the brief is sent to.
- sender: my connected Gmail account.
Steps:
1. For each topic in the topics list, call Perplexity AI "Create Chat Completion" once. Use model sonar-pro and search_recency_filter=day so results are from the last 24 hours. The user message should ask for the most important news on that topic from the last 24 hours and request 3 to 5 concise bullet points with inline citations. Keep the system prompt short and consistent across topics so the output stays uniform.
2. From each Perplexity response, extract the assistant message text and the citations list (and search_results when present) so links can be rendered.
3. Concatenate the per-topic results into one HTML email body. Layout: one <h2> section per topic in the same order the topics appear in the config, followed by an unordered list of 3 to 5 bullets. Render citations as inline numbered links (e.g. [1], [2]) that point to the source URLs Perplexity returned. Include a short header at the top with the date (formatted in my local time zone) and a one-line footer noting the brief was generated by Perplexity Sonar.
4. Call Gmail "Send a Message" once to deliver the email. Subject line: "Morning brief — {date}" where {date} is today in my local time zone. Body: the assembled HTML. From: my connected Gmail. To: the configured recipient(s).
Determinism requirements:
- Topics, format, and recipient are fixed in config. No branching based on model output.
- If Perplexity fails for a single topic, still send the email with the remaining sections and a short note in place of the failed section. Do not block the whole brief on one topic failing.
- If Gmail send fails, surface the error in the run logs so I can fix and retry.
Integrations to use: Perplexity AI (Create Chat Completion) and Gmail (Send a Message). Do not introduce any other services.
Additional information
What does this prompt do?
- Runs automatically every weekday morning at 7am in your local time zone.
- Pulls the latest news on each of your configured topics from the past 24 hours, with linked sources.
- Builds a single tidy email with one section per topic, three to five bullets each, and inline source links.
- Sends the brief to whichever address you choose, so it is waiting in your inbox before standup.
What do I need to use this?
- A Perplexity account with API access and a small balance of credits.
- A Gmail account you can sign in with to send the email.
- A short list of topics you want covered, for example a market you track, a competitor set, or a regulation beat.
- The email address that should receive the brief.
How can I customize it?
- Change the topic list to whatever beats you actually follow. Add or remove topics any time.
- Move the delivery time or run it on different days. Mornings before standup are the default, but any cadence works.
- Send the brief to a different inbox, a shared distribution list, or your own address only.
Frequently asked questions
Will it actually find news from the last day?
Can I add or remove topics later?
Does every bullet include a source?
Can I send it to more than one person?
What if I want it on weekends too?
Stop opening ten tabs every morning to catch up.
Connect Perplexity and Gmail once, pick your topics, and Geni delivers a fresh brief to your inbox every weekday at 7am.