<?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: Rajesh kumar</title>
    <description>The latest articles on DEV Community by Rajesh kumar (@rajesh_kumar_f0fcef2bf626).</description>
    <link>https://dev.to/rajesh_kumar_f0fcef2bf626</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%2F4078602%2Fc479cae6-8e3c-4115-b0bb-9e7773c59a1a.gif</url>
      <title>DEV Community: Rajesh kumar</title>
      <link>https://dev.to/rajesh_kumar_f0fcef2bf626</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rajesh_kumar_f0fcef2bf626"/>
    <language>en</language>
    <item>
      <title>Building CareConnect: My 10-Day Journey Building an AI Health Access Voice Agent</title>
      <dc:creator>Rajesh kumar</dc:creator>
      <pubDate>Sat, 15 Aug 2026 08:53:48 +0000</pubDate>
      <link>https://dev.to/rajesh_kumar_f0fcef2bf626/building-careconnect-my-10-day-journey-building-an-ai-health-access-voice-agent-84n</link>
      <guid>https://dev.to/rajesh_kumar_f0fcef2bf626/building-careconnect-my-10-day-journey-building-an-ai-health-access-voice-agent-84n</guid>
      <description>&lt;p&gt;I started this challenge with a simple idea: what if accessing basic healthcare information could be as simple as talking to someone?&lt;/p&gt;

&lt;p&gt;I didn't want to build another chatbot where a user types a question and gets back a wall of text. I wanted something that felt like a conversation — where someone could just say &lt;em&gt;"Mujhe dermatologist ki appointment book karni hai,"&lt;/em&gt; or &lt;em&gt;"Mere father ko severe chest pain ho raha hai,"&lt;/em&gt; and have the system understand the situation, reply in their language, use the right tool, and know when to stop and bring in a human.&lt;/p&gt;

&lt;p&gt;That became &lt;strong&gt;CareConnect&lt;/strong&gt;, my AI health-access voice agent, built during &lt;strong&gt;10 Days of Voice Agents – VoiceForBharat Edition&lt;/strong&gt;. What started as a basic voice loop grew into a system with memory, healthcare tools, outbound calling, human escalation, call analytics, and specialist agent handoffs.&lt;/p&gt;

&lt;p&gt;Honestly, the hardest part wasn't making the AI talk. It was making it &lt;strong&gt;know what to do when things don't go as expected&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;![CareConnect cover image showing the voice assistant interface]&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8am35pwv2gxc44azfz1n.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8am35pwv2gxc44azfz1n.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem I wanted to solve
&lt;/h2&gt;

&lt;p&gt;Healthcare information is often available but still hard to reach. A user may need to search for a hospital, find the right department, understand a scheme, book an appointment, or figure out what to do next — often in a language they're not fully comfortable typing in.&lt;/p&gt;

&lt;p&gt;I wanted CareConnect to collapse that funnel from &lt;em&gt;open → search → read → find → act&lt;/em&gt; down to something closer to &lt;em&gt;speak → understand → guide → act&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;One boundary shaped almost every decision I made: &lt;strong&gt;CareConnect is a healthcare access assistant, not an AI doctor.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why voice changed the product
&lt;/h2&gt;

&lt;p&gt;Voice removes the step where a user has to figure out which button to press before asking a question — they just speak. CareConnect works across English, Hindi, and Hinglish, and a user can move between them naturally mid-conversation: &lt;em&gt;"Mujhe hospital ka information chahiye,"&lt;/em&gt; or &lt;em&gt;"Can you help me find a dermatologist?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The chest-pain example matters most. A generic chatbot might just generate a fluent-sounding answer. A healthcare voice agent has to treat the &lt;em&gt;right action&lt;/em&gt; as more important than a &lt;em&gt;confident-sounding response&lt;/em&gt; — recognizing an emergency and routing to urgent guidance instead of a normal appointment flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  How CareConnect works
&lt;/h2&gt;

&lt;p&gt;![CareConnect system architecture diagram]&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F573h865l2vvn72s16qmv.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F573h865l2vvn72s16qmv.png" alt=" " width="800" height="1059"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Real-time voice&lt;/td&gt;
&lt;td&gt;LiveKit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speech-to-text&lt;/td&gt;
&lt;td&gt;Deepgram&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM&lt;/td&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text-to-speech&lt;/td&gt;
&lt;td&gt;Murf Falcon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;SQLite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Next.js + TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Audio from the browser goes through LiveKit to a backend agent. Deepgram converts speech to text, Gemini handles reasoning and conversation state, and when the agent needs reliable domain data or an action, it calls a tool instead of generating an answer from scratch. Murf Falcon converts the response back into speech and streams it to the user.&lt;/p&gt;

&lt;p&gt;That sounds simple written out like this. It wasn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 10-day build
&lt;/h2&gt;

&lt;p&gt;Rather than trying to build everything at once, I treated each day as one architectural upgrade on top of the last.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 1 — Make the agent speak.&lt;/strong&gt; The goal was deliberately narrow: listen, understand, respond. Getting the real-time voice pipeline working became the foundation everything else sat on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 2 — Give it a personality and boundaries.&lt;/strong&gt; A healthcare agent can't behave like a generic assistant, so I added conversational tone, multilingual support, emergency handling, and a hard rule for diagnosis refusal. The rule sounds obvious — &lt;em&gt;CareConnect should never pretend to be a doctor&lt;/em&gt; — but it's much harder to hold when a user asks directly, "Do I have diabetes?" The system has to resist the pull toward a confident-sounding answer it has no business giving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 3 — Build the interface.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![CareConnect frontend screenshot showing the voice call interface]&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5cnq7zd892a56caerwhh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5cnq7zd892a56caerwhh.png" alt=" " width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wanted CareConnect to feel like a real product, not a raw developer demo, so I built a dedicated frontend around the voice experience — one that made it clear what the agent was doing and later gave me a home for analytics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 4 — Give it memory.&lt;/strong&gt; I added persistent memory with SQLite, but the goal wasn't to remember everything — it was to remember only what could genuinely improve a future conversation. In a healthcare context, that distinction matters: just because a system &lt;em&gt;can&lt;/em&gt; store something doesn't mean it &lt;em&gt;should&lt;/em&gt;. Data minimization became a working principle, not an afterthought.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 5 — Give the agent tools.&lt;/strong&gt; This is the day that changed how CareConnect actually worked. Instead of asking the LLM to generate every answer, I added domain-specific tools for symptom triage, facility information, healthcare scheme lookups, medication-related assistance, and general health-access workflows. The lesson: LLMs are good at reasoning, but tools are better for deterministic actions and factual data. If a real data source exists, I'd rather the agent call it than guess.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 6 — Make outbound calls.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![CareConnect outbound call feature demonstration]&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff3b9lxfihivi1pijssd4.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff3b9lxfihivi1pijssd4.png" alt=" " width="799" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CareConnect stopped being a browser-only assistant. Outbound calling introduces a different problem entirely: when the user didn't initiate the conversation, the agent needs to immediately establish who's calling, why, and how to opt out. Outbound voice isn't just inbound voice run in reverse — the opening carries far more weight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 7 — Know when to ask a human.&lt;/strong&gt; This was one of the more important architectural changes. An agent shouldn't try to solve every problem itself, so I built a human escalation flow: detect a potential need for escalation, explain exactly what will be shared, get explicit consent, and only then create an escalation record with a reference ID — storing a short structured summary rather than the full conversation. Human escalation needed to be a controlled system action, not a silent side effect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 8 — Build call analytics.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![CareConnect analytics dashboard showing call metrics]&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj9je5hitc9x0uszye49y.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj9je5hitc9x0uszye49y.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once CareConnect could handle real calls, I needed a way to answer "is this actually working?" I built a dashboard tracking total, successful, and failed calls — all generated from real call records in SQLite. A dashboard showing hardcoded numbers isn't useful; I wanted it to reflect what actually happened.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 9 — Give it a specialist.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![CareConnect specialist handoff to Clinic &amp;amp; Appointment Specialist]&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F98979u44804qmuqs86xb.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F98979u44804qmuqs86xb.png" alt=" " width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The final major feature was specialist routing. The main CareConnect agent handles general healthcare access; a dedicated &lt;strong&gt;Clinic &amp;amp; Appointment Specialist&lt;/strong&gt; takes over for appointment requests, rescheduling, cancellations, department selection, and clinic information. When a user says &lt;em&gt;"Mujhe dermatologist ki appointment book karni hai,"&lt;/em&gt; CareConnect recognizes the intent, announces the handoff, and transfers the relevant context so the user never has to repeat themselves. This is where the project stopped feeling like a single assistant and started feeling like a small multi-agent system.&lt;/p&gt;

&lt;h2&gt;
  
  
  The safety layer
&lt;/h2&gt;

&lt;p&gt;Healthcare was the reason strong guardrails came first, not last. CareConnect is built to never diagnose, never prescribe, never pretend to be a doctor, and to handle emergencies as a separate path from normal workflows. It escalates when appropriate, but always asks for consent first, and it avoids exposing more personal information than a situation requires.&lt;/p&gt;

&lt;p&gt;If a user asks "Do I have diabetes?", the correct response isn't a yes or no — it's an honest explanation that CareConnect can't diagnose, paired with guidance toward the right kind of care. If a user reports a serious emergency symptom, that takes priority over any normal appointment flow. That distinction ended up shaping most of the architecture around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hardest parts
&lt;/h2&gt;

&lt;p&gt;The UI was never the hard part. Getting the different pieces of the system to behave correctly &lt;em&gt;together&lt;/em&gt; was.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice reliability.&lt;/strong&gt; Speech-to-text, LLM reasoning, text-to-speech, turn detection, and the LiveKit transport all have to stay in sync. A text app can absorb a small delay without anyone noticing. Voice can't hide it nearly as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outbound calling.&lt;/strong&gt; Beyond the technical setup, outbound calls demanded a much more intentional opening than I initially expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Persistent data.&lt;/strong&gt; Once memory, escalation records, and analytics all needed the database, it stopped being an afterthought. IDs, persistence, call outcomes, data minimization, and structured records all needed real thought.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent handoff.&lt;/strong&gt; A handoff isn't just relabeling which agent is "active." The specialist needs to know &lt;em&gt;why&lt;/em&gt; the user was transferred, what they already asked, what context is relevant, and what it's actually allowed to do. Getting that context transfer right took more iteration than anything else in the build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git hygiene across ten days.&lt;/strong&gt; A small but real lesson: checking &lt;code&gt;git status&lt;/code&gt; and &lt;code&gt;git branch&lt;/code&gt; before switching, and &lt;code&gt;git status&lt;/code&gt; plus &lt;code&gt;git log --oneline -3&lt;/code&gt; before pushing, saved me from accidentally losing or overwriting work more than once.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;The biggest takeaway from these ten days is that a voice agent is not just an LLM with a microphone. A system that's actually useful needs voice, an LLM, tools, memory, guardrails, human escalation, analytics, and specialist routing — each one solving a different problem. The LLM reasons, tools act reliably, memory gives continuity, guardrails set boundaries, escalation provides a safety net, analytics gives visibility, and specialists provide focused capability. The real engineering challenge is making all of that work together without the user ever feeling the complexity underneath.&lt;/p&gt;

&lt;h2&gt;
  
  
  Run CareConnect yourself
&lt;/h2&gt;

&lt;p&gt;The project is public on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/RajeshKumar92828282/murf-livekit-starter" rel="noopener noreferrer"&gt;CareConnect GitHub Repository&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/RajeshKumar92828282/murf-livekit-starter.git
&lt;span class="nb"&gt;cd &lt;/span&gt;murf-livekit-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configure your local environment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LIVEKIT_URL=your_livekit_url
LIVEKIT_API_KEY=your_livekit_api_key
LIVEKIT_API_SECRET=your_livekit_api_secret
MURF_API_KEY=your_murf_api_key
DEEPGRAM_API_KEY=your_deepgram_api_key
GOOGLE_API_KEY=your_google_api_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keep real credentials in local &lt;code&gt;.env&lt;/code&gt; or &lt;code&gt;.env.local&lt;/code&gt; files only — never commit API keys, tokens, phone numbers, or private caller information to GitHub. Then follow the repository's setup instructions to start the backend and frontend.&lt;/p&gt;

&lt;p&gt;Once it's running, try: &lt;em&gt;"Mujhe dermatologist ki appointment book karni hai."&lt;/em&gt; You should see CareConnect recognize the appointment intent, hand off, and continue the conversation through the Clinic &amp;amp; Appointment Specialist without making you repeat yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I tested it
&lt;/h2&gt;

&lt;p&gt;I tested failure paths as deliberately as I tested success paths:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Normal conversation&lt;/strong&gt; — "What are some healthy lifestyle tips?" → the main agent answers directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Appointment request&lt;/strong&gt; — "Mujhe dermatologist ki appointment book karni hai." → hands off to the specialist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diagnosis request&lt;/strong&gt; — "Do I have diabetes?" → the agent declines to diagnose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emergency&lt;/strong&gt; — "Mere father ko severe chest pain ho raha hai." → emergency handling takes priority.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human escalation&lt;/strong&gt; — the agent asks for explicit permission before creating an escalation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics&lt;/strong&gt; — after calls complete, the dashboard reflects the real outcome.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Failure behavior turned out to matter just as much as the happy path.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would build next
&lt;/h2&gt;

&lt;p&gt;CareConnect is still a starting point. If I keep building it, I'd focus on real hospital appointment APIs, more Indian languages, stronger healthcare knowledge grounding, production-grade database infrastructure, more specialist agents, deeper hospital and clinic integrations, better analytics, more robust voice failure handling, and improved accessibility for low-bandwidth users. I'd also like specialist routing to get smarter about picking the right specialist from intent alone, without loosening any of the safety boundaries around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Ten days ago, CareConnect was just an idea for a voice agent. Today it can talk, understand, remember, use tools, make calls, ask humans for help, track outcomes, and hand conversations off to specialists.&lt;/p&gt;

&lt;p&gt;But the real lesson wasn't learning how to make an AI speak — it was learning how to make an AI understand its limits. A good voice agent doesn't need to answer everything. It needs to know when to answer, when to use a tool, when to ask a question, when to ask for permission, when to hand off, and when to stop.&lt;/p&gt;

&lt;p&gt;That's what building CareConnect during &lt;strong&gt;10 Days of Voice Agents – VoiceForBharat Edition&lt;/strong&gt;, using &lt;strong&gt;Murf Falcon&lt;/strong&gt; for voice, taught me. And this is only the beginning.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/RajeshKumar92828282/murf-livekit-starter" rel="noopener noreferrer"&gt;CareConnect GitHub Repository&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Built with:&lt;/strong&gt; LiveKit Agents · Murf Falcon · Deepgram · Gemini · Python · SQLite · Next.js · TypeScript&lt;br&gt;
&lt;strong&gt;Challenge:&lt;/strong&gt; 10 Days of Voice Agents – VoiceForBharat Edition&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>healthcare</category>
      <category>aivoice</category>
    </item>
  </channel>
</rss>
