Daily arXiv watcher for authors and topics you follow

By General Input

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.

Integrations

  • arXiv
  • Google Sheets
  • Slack Bot

Type

Deterministic Code

Categories

  • Operations
  • Personal Productivity

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board