Weekly journal club prep in Notion and Slack

Every Monday at 7am, get 2 to 3 new PubMed papers picked, written up in Notion with discussion questions, and put to a Slack vote for this week's meeting.

Agentic Task
PubMed / NCBI E-utilitiesNotionSlack BotOperationsResearch & MonitoringMeeting WorkflowsContent Generation
PromptCreate

Build an agent workflow that preps my team's weekly journal club. Trigger: cron, every Monday at 7:00am in my local timezone.

Inputs the workflow should collect at setup: (1) a configurable list of PubMed topics expressed as MeSH terms and/or free-text keywords the club tracks, (2) the Notion database ID for our Journal Club database, (3) the Slack channel (default #journal-club), (4) how many finalists to pick per week (default 3, allow 2 to 3), and (5) the vote emoji the team should react with (default 👍).

Each run, do the following:

1. Search PubMed. Use PubMed ESearch against each configured topic scoped to papers indexed in the last 7 days (use the [edat] date tag or an equivalent recent-window filter). Combine results and dedupe by PMID. Return at least a few dozen candidates per topic so the ranking step has something to work with.

2. Skip papers we have already covered. Query the Notion Journal Club database (Query a Data Source) for existing entries and read the PMID property. Drop any candidate whose PMID is already in the database. This dedupe is required. Never create a page for a paper we have covered before.

3. Pull details on the survivors. Use PubMed ESummary to get title, authors, journal, publication date, DOI, and PMID for each remaining candidate, then EFetch to retrieve the abstract text. Cap the shortlist to a manageable size (roughly 15 to 25 papers) before EFetching abstracts to stay under rate limits.

4. Pick 2 to 3 finalists. Do NOT just take the most recent papers. Reason about novelty (does this move the field), methodological rigor (sample size, controls, preregistration, replication), and clinical or scientific relevance to the club's stated topics. Prefer studies over commentary or editorials unless the commentary is exceptionally consequential. Briefly note in your working memory why each finalist was chosen.

5. Create one Notion page per finalist. Use Create a Page with the Journal Club database as the parent. Populate structured properties: Title, Authors (comma-separated), Journal, PMID, DOI (as a URL to https://doi.org/<doi>), Publication Date, and Tags (map to the matching topic). If the database has additional properties, fill in the ones you can infer and leave the rest empty rather than guessing.

For the page body, use this structure with headings:

• TL;DR: 2 to 3 plain-English sentences a non-specialist on the team can follow.

• Key methods: bullets covering study design, population or sample, intervention or comparison, and primary outcomes.

• Main findings: bullets covering the headline results with effect sizes or key numbers where the abstract reports them.

• Limitations to probe: 3 to 5 things the moderator should push on (confounds, generalizability, statistical concerns, conflicts of interest, unreplicated claims).

• Discussion questions: 4 to 5 questions the moderator can lead with, mixing methodological, interpretive, and 'what would you do differently' angles.

• Link back to the paper on PubMed (https://pubmed.ncbi.nlm.nih.gov/<pmid>/) and to the DOI if present.

6. Post one Slack message to the configured channel using the Slack Bot Send a Message operation. Format it as: a one-line intro (for example 'This week's candidates. React with 👍 on the one you want to discuss.'), then a numbered list where each item shows the paper title in bold, the journal and year, a one-sentence hook drawn from the TL;DR, and a link to the Notion page. Do NOT post one message per paper. It must be a single message so the team can react on it to vote.

7. If zero candidates clear the bar this week, post a short Slack message saying so and skip creating Notion pages. Do not lower the bar to fill slots.

Constraints and quality bars:

• Dedupe by PMID against the Notion database on every run. This is the single most important correctness rule.

• Never fabricate findings. Everything in the writeup must be grounded in the abstract you fetched. If the abstract is thin, say so in the TL;DR.

• Keep the writeup readable by a mixed-audience team (clinicians, scientists, and occasional non-specialists). Plain English wins.

• Respect PubMed rate limits by using a modest concurrency.

Additional information

What does this prompt do?
  • Scans PubMed each Monday morning for papers published in the last 7 days on the topics your journal club follows.
  • Picks 2 to 3 finalists based on novelty, methodological rigor, and clinical or scientific relevance, not just recency.
  • Creates a Notion page for each finalist in your Journal Club database with a plain-English TL;DR, key methods, main findings, limitations to probe, and 4 to 5 moderator discussion questions.
  • Posts one Slack message linking to each Notion page and asks the team to react with an emoji to vote for this week's paper.
  • Remembers what you have already covered so the same paper never gets picked twice.
What do I need to use this?
  • A PubMed account with a free NCBI API key so searches stay fast.
  • A Notion workspace with a Journal Club database shared with the General Input connection. Properties like title, authors, journal, publication date, DOI, PMID, and tags help the agent fill it in cleanly.
  • A Slack workspace with a channel for your journal club (for example #journal-club) and General Input added to it.
  • A short list of the topics your club follows, expressed as MeSH terms or keywords.
How can I customize it?
  • Change the schedule. Move it earlier or later, or run it on a different day of the week to match when your club meets.
  • Tune the topic list. Add or remove MeSH terms and keywords as your team's focus shifts, and adjust how strict the relevance filter should be.
  • Change how many finalists get picked, which Slack channel receives the vote message, and which emoji the team should react with.
  • Rewrite the writeup template. Ask for different section headings, a longer TL;DR, an equity or ethics lens, or a section that ties each paper back to a project on your team.

Frequently asked questions

How does it avoid picking the same paper twice?
Before creating anything new, the agent checks your Notion Journal Club database for papers already logged and skips any match. It uses the paper's PubMed ID as the unique key, so even if a title varies slightly, duplicates are caught.
What if my Journal Club database has different properties than the defaults?
The agent reads your database schema at runtime and fills in whichever properties exist. If you rename a field or add new ones like Reviewer or Meeting Date, tell the agent about them once and it will use them going forward.
Can it search preprints or other sources too?
This starter is PubMed only, which covers peer-reviewed biomedical literature. If you want to layer in arXiv, bioRxiv, or medRxiv, ask the agent to add those sources and merge the results before picking finalists.
Will it work if only some team members have Notion access?
Yes. The Slack message includes a short summary of each paper so people without Notion can still weigh in. The full writeup lives in Notion for the moderator and anyone who wants to prep.
What if no new papers on our topics show up that week?
The agent will tell you in Slack that nothing new met the bar this week, rather than lowering the bar to fill a slot. You can broaden the topic list or widen the window in one message if that happens too often.

Stop scrambling to pick a journal club paper on Sunday night.

Connect PubMed, Notion, and Slack once, and Geni queues up next week's paper vote every Monday at 7am.