<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tori</title>
    <description>The latest articles on DEV Community by Tori (@toriseidenstein).</description>
    <link>https://dev.to/toriseidenstein</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2982873%2F73952180-75c7-4403-a1db-5fa4442c08fe.jpeg</url>
      <title>DEV Community: Tori</title>
      <link>https://dev.to/toriseidenstein</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/toriseidenstein"/>
    <language>en</language>
    <item>
      <title>I built an agent that turns customer calls into Linear tickets</title>
      <dc:creator>Tori</dc:creator>
      <pubDate>Mon, 12 Jan 2026 17:11:56 +0000</pubDate>
      <link>https://dev.to/toriseidenstein/i-built-an-agent-that-turns-customer-calls-into-linear-tickets-39mc</link>
      <guid>https://dev.to/toriseidenstein/i-built-an-agent-that-turns-customer-calls-into-linear-tickets-39mc</guid>
      <description>&lt;h2&gt;
  
  
  The goal: get more ideas into production faster
&lt;/h2&gt;

&lt;p&gt;We’re a small startup, and spend lots of time on video calls with users. We faced a problem that after calls ended, those good ideas would often drop, especially lots of small product improvements that would add up to level-up the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built
&lt;/h2&gt;

&lt;p&gt;We created an agent that reviews customer call recordings and automatically creates Linear tickets with the implementations for the suggested new features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2q1i9dzmhg53u2igke7n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2q1i9dzmhg53u2igke7n.png" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The outcome:
&lt;/h2&gt;

&lt;p&gt;In the first week, the agent implemented 3 small feature improvements for us.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmqsrctun2ry4r4wystj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmqsrctun2ry4r4wystj.png" alt=" " width="800" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The implementation:
&lt;/h2&gt;

&lt;p&gt;At a high level, the agent is defined with a prompt and a set of MCP tools.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are a product intelligence agent that analyzes customer calls to identify actionable insights. You have access to Fathom (call recordings), Linear (issue tracking), and Slack through the MCP server.

You also have access to the local codebase at ${config.platformCodebasePath} to validate and find concrete solutions.

Your workflow:
1. Fetch and analyze customer call data from Fathom
2. Identify bugs and small improvements from conversations
3. Scan the codebase to validate issues and find concrete solutions
4. Create Linear tickets ONLY for high-certainty, actionable items (prefix all titles with "[AGENT]" and tag with "agent" label)
5. Notify the team via Slack with updates
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What made the agent effective
&lt;/h2&gt;

&lt;p&gt;A few details mattered a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Being conservative:&lt;/strong&gt;
If the agent is noisy, we'd disregard it's output. So we say &lt;code&gt;Be SELECTIVE. It's better to create 0 tickets than to create tickets for vague or uncertain issues.&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codebase access&lt;/strong&gt;
We check out the repo via a GitHub Action so the agent can grep, inspect files, and validate feasibility. The ticket contains the proposed code implementation (and in a next step, we can go all the way to opening the PR for the new feature).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict ticket norms&lt;/strong&gt;
The agent follows our existing Linear conventions. &lt;code&gt;Create a Linear ticket with title prefixed with "[AGENT]". Put the ticket in the "Engineering" team. Set status to "Triage". Add labels: "Agent" (always), plus "Bug" or "Feature" as appropriate.
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate prevention&lt;/strong&gt;
Before creating a ticket, the agent checks for similar existing issues to avoid noise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Want to try it?
&lt;/h2&gt;

&lt;p&gt;If you want to create your own agent, our platform &lt;a href="https://tadata.com?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=calls-to-tasks" rel="noopener noreferrer"&gt;Tadata&lt;/a&gt; offers a free tier where you can grab MCP connectors, and create agents customized to your team's specific needs.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aiops</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
