Claude-powered Granola to Linear action items with a Slack recap

By General Input

When Granola finishes a new meeting note, Claude pulls out your action items, files them in Linear, dedupes duplicates, and drops a clean recap in Slack.

Integrations

  • Granola
  • Anthropic
  • Linear
  • Slack Bot

Type

Agentic Task

Categories

  • Personal Productivity
  • Operations

Build me a Claude-powered agent workflow that turns every new Granola meeting note into filed Linear issues and a clean Slack recap, so my commitments never die inside a notes doc.

Trigger: poll Granola on new_note. Whenever a new meeting note shows up, kick off the agent.

Step 1. Call Granola Get Note for the new note id. Ask for the full note including the transcript, and grab the meeting title, the Granola URL, the attendees with their emails, and the meeting host.

Step 2. Call Anthropic Create Message with a Claude prompt that reads the note and returns two things: (a) a short executive summary of the meeting, maybe three to five bullets max, and (b) a structured list of action items where each item has an owner name, a one-sentence description, and an urgency of low, medium, or high. Ask Claude to only pull items with a real verb and a real commitment. Skip vague 'we should think about' lines.

Step 3. Filter the action items down to the ones the meeting host is on the hook for. That means items where the owner matches the meeting host, plus any items where no owner was named. Skip items owned by other attendees by default. Keep this rule configurable.

Step 4. Dedupe against Linear before creating anything. For each filtered action item, use Linear Search Issues to pull recent open issues in the configured team whose titles look related. Ask Claude to judge whether any of those existing issues are essentially the same task as the action item. If Claude says yes, mark that action item as a duplicate and remember the existing issue's URL and identifier. If Claude says no, mark it for creation.

Step 5. For each action item marked for creation, call Linear Create Issue in the configured team. Use the action item description as the issue title. In the issue description, reference the meeting title, paste the Granola URL, and include the short bit of context Claude captured. Set priority from the urgency field when possible.

Step 6. Post a single Slack recap using Slackbot Send a Message to a configurable channel. Keep it tight and Slack-friendly. Tag the meeting host at the top. Use bullets, not walls of text. Include the executive summary, then a 'Filed in Linear' section listing each newly created issue with its Linear URL, then a 'Duplicate, linked instead' section listing each skipped item with the matching existing Linear issue URL. Close with a one-line 'Filed X issues, linked Y duplicates' summary.

Configuration I want to control: the Linear team new issues land in, the Slack channel the recap posts to, the ownership rule (mine only vs whole team), and the dedupe strictness. Defaults are fine to start, but make these easy to change.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them