<?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: Tej Pandya</title>
    <description>The latest articles on DEV Community by Tej Pandya (@tej_pandya_a973bc2256ba93).</description>
    <link>https://dev.to/tej_pandya_a973bc2256ba93</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4141519%2Fa63b18cd-6839-4c3b-b662-4e30eac5927e.png</url>
      <title>DEV Community: Tej Pandya</title>
      <link>https://dev.to/tej_pandya_a973bc2256ba93</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tej_pandya_a973bc2256ba93"/>
    <language>en</language>
    <item>
      <title>Agents Need Better APIs, Not Just Fewer Screens</title>
      <dc:creator>Tej Pandya</dc:creator>
      <pubDate>Mon, 28 Sep 2026 18:47:04 +0000</pubDate>
      <link>https://dev.to/tej_pandya_a973bc2256ba93/agents-need-better-apis-not-just-fewer-screens-3e8i</link>
      <guid>https://dev.to/tej_pandya_a973bc2256ba93/agents-need-better-apis-not-just-fewer-screens-3e8i</guid>
      <description>&lt;p&gt;A human interface is not the whole product. If software's main job is to make a person repeat clicks, an agent may eventually take those clicks away. But the database, permission checks, payment network and message delivery still have to work.&lt;/p&gt;

&lt;p&gt;Here is how I would redesign one workflow for that future: a customer asks to move an appointment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Today: a screen-led workflow
&lt;/h2&gt;

&lt;p&gt;A staff member opens a calendar, finds the customer, checks the original appointment, looks up the available slots, changes the booking, sends a message and writes a note. The screen holds all the steps together because a person is doing the work.&lt;/p&gt;

&lt;p&gt;An agent-facing workflow cannot just expose a button that says "edit booking." It needs specific operations and rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the agent a narrow set of tools
&lt;/h2&gt;

&lt;p&gt;I would separate the capabilities:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;get_booking(booking_id)&lt;/code&gt;: return the current time, status and owner.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_available_slots(service_id, date_range)&lt;/code&gt;: return slots the business can actually honor.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;propose_change(booking_id, new_slot)&lt;/code&gt;: check policy and hold the slot briefly, without yet telling the customer it is booked.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;commit_change(proposal_id)&lt;/code&gt;: make one durable change, with an idempotency key so a retry does not create two bookings.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;send_confirmation(booking_id)&lt;/code&gt;: send the new details only after the commit succeeds.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The model can interpret a customer's request. The service should enforce the booking rules. If the slot disappears or the booking belongs to someone else, the API must reject the change clearly rather than letting the model invent a success.&lt;/p&gt;

&lt;p&gt;This is the boundary between reasoning and execution. Anthropic's &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;agent design guide&lt;/a&gt; distinguishes fixed workflows from more flexible agents. Its &lt;a href="https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; offers a way for systems to expose tools and context. OpenAI's &lt;a href="https://platform.openai.com/docs/guides/function-calling" rel="noopener noreferrer"&gt;function-calling guide&lt;/a&gt; likewise describes models requesting tool calls while the application executes them. These documents show the design route, not proof that every business workflow is ready to automate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What cannot be left to the model
&lt;/h2&gt;

&lt;p&gt;A useful agent tool needs a contract:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Identity:&lt;/strong&gt; who is requesting the change, and can they touch this booking?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consent:&lt;/strong&gt; can the business contact the customer on this channel?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State:&lt;/strong&gt; what changed since the agent last read the record?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Undo:&lt;/strong&gt; when can a change be reversed, and what does that cost?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit:&lt;/strong&gt; which tool call changed what, and who approved it?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback:&lt;/strong&gt; what happens when a rule, payment or availability check fails?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The old app may still need a screen for a person to review an exception. "No UI" is not the goal. Fewer unnecessary human steps is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The infrastructure test
&lt;/h2&gt;

&lt;p&gt;Before building a chat front end, ask a harder question: can a machine call the core service safely, and can the service say no? If not, the new interface only hides a brittle process behind fluent words.&lt;/p&gt;

&lt;p&gt;My prediction is that more value moves to these callable capabilities and the systems that carry them. Telecom still delivers the call. A payment rail still settles the charge. A database still records the change. An agent changes who operates the workflow, not whether those systems exist.&lt;/p&gt;

&lt;p&gt;At GrowEasy.ai, where we build AI-assisted sales workflows, this is the design question I keep returning to: when an agent hands a lead to a human, is that a chat message, or a durable, permissioned state change the next person can trust?&lt;/p&gt;

&lt;p&gt;Tej Pandya, founder of GrowEasy.ai&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
    </item>
    <item>
      <title>Build for Tasks, Not Only Prompts</title>
      <dc:creator>Tej Pandya</dc:creator>
      <pubDate>Sun, 27 Sep 2026 18:41:33 +0000</pubDate>
      <link>https://dev.to/tej_pandya_a973bc2256ba93/build-for-tasks-not-only-prompts-a2</link>
      <guid>https://dev.to/tej_pandya_a973bc2256ba93/build-for-tasks-not-only-prompts-a2</guid>
      <description>&lt;p&gt;The web was designed around a person looking at a page. A personal agent changes the caller: software may read the data, compare options and ask a person to approve the last step.&lt;br&gt;
That does not make every website obsolete. It makes the hand-off between information and action a product design problem.&lt;br&gt;
OpenAI's ChatGPT search provides answers with links to web sources. ChatGPT agent can navigate websites and do multi-step work, while asking permission before consequential actions. Those are different layers. One helps answer "what is true?" The other attempts "what should happen next?"&lt;br&gt;
For developers, I think the second layer changes what a good integration looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with a real task
&lt;/h2&gt;

&lt;p&gt;Take a small retailer that wants an assistant to help a customer choose a desk chair. The customer says: "I need one under my budget, delivered by Friday, with a return policy I can live with."&lt;br&gt;
A brittle integration hands the agent a catalogue page and hopes it can read the cards. A useful one makes the relevant facts explicit: exact variant, price, stock, delivery area and date, return terms, and when those facts were checked. The agent can then compare candidates and cite the records that support the choice.&lt;br&gt;
The request is not "generate a chair recommendation." It is a workflow with inputs, live checks and a decision gate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make failure legible
&lt;/h2&gt;

&lt;p&gt;Suppose stock changes between the shortlist and checkout. The integration should not silently substitute another chair. It should return an out-of-stock state, preserve the customer's constraints and ask for a new choice. The same applies when the delivery date moves, an API returns partial data, or the exact variant is missing.&lt;br&gt;
Useful interfaces distinguish "not found" from "not checked" and "unavailable." They also expose a timestamp. An agent cannot compensate for stale data by writing a more confident sentence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate reading from committing
&lt;/h2&gt;

&lt;p&gt;Discovery can be broad. A purchase, booking or message is narrower. Give an agent read access to compare options without giving it an unlimited right to spend money or speak for a user. At the committing step, show the final item, amount, destination and cancellation terms to the person who owns the decision.&lt;br&gt;
This separation also helps debugging. If the task fails, a trace should tell you whether the source data was wrong, the selection was wrong, or the final action failed. "The agent said it worked" is not an audit log.&lt;/p&gt;

&lt;h2&gt;
  
  
  Package repeat work
&lt;/h2&gt;

&lt;p&gt;A prompt is a poor place to store a recurring workflow. Write down the task's inputs, allowed tools, check cadence, success condition, exceptions and human review points. Keep mutable state outside the prompt. Then a different model or interface can run the same job without reconstructing the rules from old chat messages.&lt;br&gt;
I expect the prompt box to remain. It will be the place where a person changes a goal or asks for an explanation. But the value of an agent will come from whether it can complete the right task, check the result and stop at the right moment.&lt;br&gt;
I am not claiming search traffic or websites have already vanished. Search remains useful for navigation and source checks. The builder question is simpler: if a customer's assistant arrives tomorrow, can it tell what your service offers, whether the offer is current, and what action requires the customer's approval?&lt;br&gt;
Tej Pandya is the founder of GrowEasy.ai.&lt;br&gt;
Further reading: &lt;a href="https://openai.com/index/introducing-chatgpt-search/" rel="noopener noreferrer"&gt;OpenAI on ChatGPT search&lt;/a&gt;, &lt;a href="https://openai.com/index/introducing-chatgpt-agent" rel="noopener noreferrer"&gt;OpenAI on ChatGPT agent&lt;/a&gt;, and the &lt;a href="https://aiagentskills.biz/insights/chatgpt-replaced-search-box-personal-ai-agents-replacing-prompt-box/" rel="noopener noreferrer"&gt;AI Agent Skills team's related essay&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>product</category>
    </item>
    <item>
      <title>Build for Inbound: Why AI Receptionists and Chat Agents Beat AI Cold Callers</title>
      <dc:creator>Tej Pandya</dc:creator>
      <pubDate>Fri, 25 Sep 2026 07:19:52 +0000</pubDate>
      <link>https://dev.to/tej_pandya_a973bc2256ba93/build-for-inbound-why-ai-receptionists-and-chat-agents-beat-ai-cold-callers-5a40</link>
      <guid>https://dev.to/tej_pandya_a973bc2256ba93/build-for-inbound-why-ai-receptionists-and-chat-agents-beat-ai-cold-callers-5a40</guid>
      <description>&lt;p&gt;If you're building an AI voice or messaging product right now, the easy demo is outbound: an AI that calls or emails a thousand leads. I think that's the wrong thing to build. Here's the case for building inbound instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Outbound AI runs into people and rules
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Gartner found 64% of customers would prefer companies didn't use AI for customer service, and 53% would consider switching over it.&lt;/li&gt;
&lt;li&gt;The US FCC ruled in February 2024 that AI-generated voices count as "artificial" under the TCPA. AI cold calls get treated like robocalls.&lt;/li&gt;
&lt;li&gt;Only 19% of Americans generally answer unknown numbers anyway.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The one outbound use that works is calls people expect: reminders, delivery updates, payment due dates. The value is the information, not the pitch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inbound flips the problem
&lt;/h2&gt;

&lt;p&gt;When someone calls a clinic or a salon, they want an answer: price, slot, address. They'll talk to an AI if it's fast and correct. And small businesses miss a lot of these calls. One older study put it at 62% unanswered.&lt;/p&gt;

&lt;p&gt;So the build is different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low latency matters more than a clever voice. The caller wants the answer now.&lt;/li&gt;
&lt;li&gt;Ground answers in the business's real data: prices, hours, availability. A wrong slot is worse than no answer.&lt;/li&gt;
&lt;li&gt;Know when to hand off. Hot leads and upset callers should reach a person fast.&lt;/li&gt;
&lt;li&gt;Log everything to the CRM so the follow-up happens.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Email agents change what "delivered" means
&lt;/h2&gt;

&lt;p&gt;Gmail summary cards and Apple Mail's summaries mean an assistant often reads mail first. If you build email tooling, design for a machine reader: clear subject, the ask in the first line, no fluff. Also know the rules: Gmail requires bulk senders to keep spam complaints under 0.3%.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chat is the best interface for AI agents
&lt;/h2&gt;

&lt;p&gt;WhatsApp has 3B+ monthly users. Chat is async and started by the customer, so an AI reply doesn't feel like an interruption. Some things to get right:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tell people when they are chatting with an AI. It builds trust and avoids misleading them. Disclosure rules vary by place and use case.&lt;/li&gt;
&lt;li&gt;Keep a person in the loop for pricing exceptions and complaints.&lt;/li&gt;
&lt;li&gt;Connect the chat to ads (click-to-WhatsApp) and the website, so every entry point lands in one place.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;At GrowEasy.ai we took this path: TalkEasy, an AI receptionist for inbound calls, plus WhatsApp chat that replies to leads from ads. We don't do AI cold calling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Question for you
&lt;/h2&gt;

&lt;p&gt;if you're building voice or chat agents, where have you seen people accept AI, and where do they hang up?&lt;/p&gt;

&lt;p&gt;Tej Pandya, founder of GrowEasy.ai&lt;/p&gt;

&lt;p&gt;Sources: &lt;a href="https://www.gartner.com/en/newsroom/press-releases/2024-07-09-gartner-survey-finds-64-percent-of-customers-would-prefer-that-companies-didnt-use-ai-for-customer-service" rel="noopener noreferrer"&gt;Gartner&lt;/a&gt;, &lt;a href="https://www.fcc.gov/document/fcc-makes-ai-generated-voices-robocalls-illegal" rel="noopener noreferrer"&gt;FCC&lt;/a&gt;, &lt;a href="https://www.pewresearch.org/short-reads/2020/12/14/most-americans-dont-answer-cellphone-calls-from-unknown-numbers/" rel="noopener noreferrer"&gt;Pew&lt;/a&gt;, &lt;a href="https://support.google.com/mail/answer/81126" rel="noopener noreferrer"&gt;Google&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What Dropbox Can Teach Us About Sharing AI Tools</title>
      <dc:creator>Tej Pandya</dc:creator>
      <pubDate>Thu, 24 Sep 2026 15:16:53 +0000</pubDate>
      <link>https://dev.to/tej_pandya_a973bc2256ba93/what-dropbox-can-teach-us-about-sharing-ai-tools-4fa</link>
      <guid>https://dev.to/tej_pandya_a973bc2256ba93/what-dropbox-can-teach-us-about-sharing-ai-tools-4fa</guid>
      <description>&lt;p&gt;Dropbox gave you 500 MB of free space for every friend who signed up, and gave your friend the same. It didn't ask people to be generous. It made sharing the smart thing to do for yourself.&lt;/p&gt;

&lt;p&gt;A lot of AI tools at work need that same push, because right now most people keep them quiet.&lt;/p&gt;

&lt;h2&gt;
  
  
  People hide the AI tools they use
&lt;/h2&gt;

&lt;p&gt;Surveys from Microsoft, LinkedIn and Slack all point the same way. Many people use AI at work and don't tell their manager or their teammates. The top reasons are that it feels like cheating, or that sharing it means giving away a head start.&lt;/p&gt;

&lt;p&gt;That makes sense if the tool only helps one person. But many AI tools work better when more people use them. An assistant that can work with a teammate's assistant, share notes on a customer, or pass along a follow-up gets more useful with every person who joins. If you keep it to yourself, you get only a small part of what it can do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some tricks really do stop working when everyone copies them
&lt;/h2&gt;

&lt;p&gt;It's worth being honest about the other side. Some advantages exist only because few people have them. Early banner ads got clicked. Cold email used to get replies. When everyone automates the same channel, it wears out for everyone, and nobody gets read.&lt;/p&gt;

&lt;h2&gt;
  
  
  One question to ask
&lt;/h2&gt;

&lt;p&gt;Before you pick up any AI tool, ask: does this get better or worse when the people around me use it too?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;If it gets better:&lt;/strong&gt; share it early. Bring in your team and make it easy for them to join.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If it gets worse:&lt;/strong&gt; expect your advantage to fade. Use it while it lasts and spend that time building trust with real people.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers building AI features, the same question applies to what you ship. If your feature gets better as more of a team uses it, build the invite into the product, the way Dropbox did.&lt;/p&gt;

&lt;p&gt;That's the idea behind GrowEasy.ai. CRM, WhatsApp and calling live on one platform, so a whole sales team gets better together instead of one person keeping a private trick.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tej Pandya, founder of GrowEasy.ai&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
