Daily arXiv watcher for authors and topics you follow
Every morning at 7am, check arXiv for new papers by the authors and on the topics you follow, log them to Google Sheets, and ping Slack.
Build me a deterministic code workflow that runs every morning at 7am and watches arXiv for new papers by specific authors and on specific topics I care about. No LLM calls anywhere; every step is a structured sheet read, API call, or sheet write.
Trigger: cron, every day at 7am in my local timezone.
Configuration lives in a Google Sheet with two tabs. The Watchlist tab has columns type, value, label. type is either 'author' or 'topic'. value is the name or phrase to search. label is a short tag I use to group results. The Seen tab has columns arxiv_id, title, authors, category, url, label, first_seen_date and is the permanent log of every paper that has already been alerted. The sheet is the user-facing config so I can add or remove watchlist entries without editing the workflow.
For each run, do the following in order:
1. Call Google Sheets Get Values on the Watchlist tab to load the rows.
2. Call Google Sheets Get Values on the Seen tab to load the set of arxiv_ids that have already been alerted. Build an in-memory set for O(1) dedupe.
3. For each Watchlist row, call arXiv Search Papers scoped to submissions from the last 24 to 48 hours. Use the au: field prefix for author rows (handle both 'Lastname_F' and quoted 'Firstname Lastname' styles). Use the all: field prefix for topic rows, with the phrase quoted for multi-word topics. Sort by submittedDate descending. Sleep at least 3 seconds between arXiv requests to respect arXiv's documented rate limit, and set a descriptive User-Agent. Implement exponential backoff on 429 or 503.
4. Combine the results across all watchlist rows. Drop any paper whose arXiv ID is already in the Seen set. Also de-dupe within this run so a paper matched by two watchlist entries is processed exactly once, keeping the label of the first matching row.
5. For each genuinely new paper, call Google Sheets Append Values on the Seen tab with a single row: arxiv_id, title, authors (comma-joined), primary category, the abs URL (https://arxiv.org/abs/<id>), the matching watchlist label, and today's date in YYYY-MM-DD.
6. For each new paper, call Slack Send a Message to a configured channel with a short structured one-liner: '[label] Title — Authors — abs_url'. Keep it concise so a stack of them is easy to skim. Do not summarize the paper; the link to the abstract is enough.
If no new papers match on a given day, post nothing to Slack and leave the Seen tab untouched. Treat an empty result as a successful run.
Defaults to assume when generating: Watchlist tab name 'Watchlist', Seen tab name 'Seen', spreadsheet ID and Slack channel surfaced as workflow inputs the user fills in once at setup. The point is a deterministic, no-LLM tracker that watches a curated list of researchers and topics, never misses a drop, builds a permanent searchable log in Sheets, and pings Slack in real time.
Integrations: arXiv, Google Sheets, Slack.
Additional information
What does this prompt do?
- Reads your watchlist of authors and topics from a Google Sheet, so you can add or remove entries any time without touching the workflow.
- Checks arXiv every morning at 7am for papers submitted in the last 24 to 48 hours that match anyone on your list.
- Drops duplicates against everything you have already logged, so each paper only pings you once even if it matches two watchlist entries.
- Posts a one-line Slack message for every genuinely new paper and appends it to a permanent, searchable log in Google Sheets.
What do I need to use this?
- A Google Sheet with a Watchlist tab (type, value, label) and a Seen tab for the log.
- A Google account that can read and write that sheet.
- A Slack workspace and a channel where the alerts should land.
How can I customize it?
- Change the time of day, or run it twice a day if you want even faster pickup of new submissions.
- Add or remove rows in the Watchlist tab to follow new authors or topics, or retire old ones, without editing the workflow.
- Send each label to a different Slack channel, so theory, applied, and benchmark papers can land in separate rooms.
Frequently asked questions
Will this miss papers that drop on a weekend?
How do I start following a new researcher?
Does this use AI to summarize the papers?
What happens if the same paper matches two of my watchlist entries?
Can different topics post to different Slack channels?
Never miss a relevant arXiv drop again.
Connect Google Sheets and Slack once, and Geni checks arXiv every morning at 7am for the authors and topics on your watchlist.