<?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: Djaouad Frih </title>
    <description>The latest articles on DEV Community by Djaouad Frih  (@djoudad292).</description>
    <link>https://dev.to/djoudad292</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%2F4094537%2F33b6ce26-29fa-42fd-bdf1-e2ad30b0a0b7.png</url>
      <title>DEV Community: Djaouad Frih </title>
      <link>https://dev.to/djoudad292</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/djoudad292"/>
    <language>en</language>
    <item>
      <title>How I Built 4 Production AI Products in 6 Months (And How You Can Hire Me to Build Yours)</title>
      <dc:creator>Djaouad Frih </dc:creator>
      <pubDate>Thu, 27 Aug 2026 20:23:46 +0000</pubDate>
      <link>https://dev.to/djoudad292/how-i-built-4-production-ai-products-in-6-months-and-how-you-can-hire-me-to-build-yours-46cc</link>
      <guid>https://dev.to/djoudad292/how-i-built-4-production-ai-products-in-6-months-and-how-you-can-hire-me-to-build-yours-46cc</guid>
      <description>&lt;p&gt;I'm Djaouad Frih, a Full-Stack AI Engineer. Over the last 6 months I've shipped 4 production AI products that are live, testable, and solving real problems right now. Here's what I built, how I built it, and what I can build for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 4 Live Products
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. AI Virtual Receptionist — &lt;code&gt;chat.djaouad.tech&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Clinics, salons, and service businesses miss calls during busy hours. Those callers book elsewhere.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; A 24/7 receptionist that answers in &amp;lt;1 second, books appointments into your calendar, captures leads, and hands off to humans when needed.&lt;br&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; Next.js + NestJS + PostgreSQL/pgvector + WebSocket for real-time&lt;br&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://chat.djaouad.tech" rel="noopener noreferrer"&gt;chat.djaouad.tech&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Smart PDF Workspace — &lt;code&gt;docs.djaouad.tech&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Teams waste hours searching through contracts, policies, and technical docs for specific clauses.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Drop any PDF (even 40+ pages), ask a question, get a cited answer with page numbers. Multi-tenant, embeddable as a widget.&lt;br&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; Next.js + NestJS + pgvector + document chunking/embedding pipeline&lt;br&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://docs.djaouad.tech" rel="noopener noreferrer"&gt;docs.djaouad.tech&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. AI Customer Support Agent — &lt;code&gt;customer.djaouad.tech&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Support teams answer the same questions repeatedly. Customers wait hours for simple answers.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Reads your documentation once, then resolves tickets, checks order status, and escalates with full context. Built with LangGraph for multi-step reasoning.&lt;br&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; Next.js + NestJS + LangGraph + WebSocket + tool-calling&lt;br&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://customer.djaouad.tech" rel="noopener noreferrer"&gt;customer.djaouad.tech&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  4. HireMe MCP Server — &lt;code&gt;mcp.djaouad.tech&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Clients want to vet freelancers but portfolios are static and hard to query.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; The first portfolio an AI assistant can read and hire from directly. Exposes my work, pricing, and availability as MCP tools — Claude/Cursor can query my profile and file a project brief automatically.&lt;br&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; MCP protocol + TypeScript + my live product data&lt;br&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://mcp.djaouad.tech" rel="noopener noreferrer"&gt;mcp.djaouad.tech&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The Common Architecture
&lt;/h2&gt;

&lt;p&gt;All 4 products share a production-grade foundation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────┐
│         Next.js Frontend            │
│   (React, TypeScript, Tailwind)     │
└──────────────┬──────────────────────┘
               │ tRPC / REST
┌──────────────▼──────────────────────┐
│         NestJS Backend              │
│   (Modules, DI, Guards, Pipes)      │
└──────────────┬──────────────────────┘
               │
     ┌─────────┼─────────┐
     ▼         ▼         ▼
┌───────┐ ┌───────┐ ┌───────┐
│ pgvector│ │LangGraph│ │WebSocket│
│(RAG)    │ │(Agents) │ │(Real-time)│
└───────┘ └───────┘ └───────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key technical decisions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;pgvector + PostgreSQL&lt;/strong&gt; for RAG — no separate vector DB needed, ACID guarantees, mature tooling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LangGraph&lt;/strong&gt; for agent workflows — explicit state machines, not prompt chains that drift&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model routing&lt;/strong&gt; — Gemini for speed, OpenAI for reasoning, OpenRouter for fallback; swap without rewriting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tenant from day one&lt;/strong&gt; — every product supports isolated workspaces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weekly live demos&lt;/strong&gt; — clients see working software every week, not slide decks&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I Build for Clients
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;What You Get&lt;/th&gt;
&lt;th&gt;Typical Price&lt;/th&gt;
&lt;th&gt;Timeline&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Starter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One AI feature (chat, RAG, or automation) grounded in your data, deployed to your stack&lt;/td&gt;
&lt;td&gt;From $2,000&lt;/td&gt;
&lt;td&gt;1–2 weeks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Professional&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full web/mobile product with AI woven in — auth, payments, dashboard, admin&lt;/td&gt;
&lt;td&gt;From $5,000&lt;/td&gt;
&lt;td&gt;2–4 weeks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Multi-feature AI SaaS platform, payments, mobile apps, integrations&lt;/td&gt;
&lt;td&gt;From $10,000+&lt;/td&gt;
&lt;td&gt;2–8 weeks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Every engagement includes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free 15-min discovery call → fixed quote within 24 hours&lt;/li&gt;
&lt;li&gt;Weekly live demos on a real URL (no black box)&lt;/li&gt;
&lt;li&gt;Milestone payments — pay as you see working software&lt;/li&gt;
&lt;li&gt;30 days of fixes included after launch&lt;/li&gt;
&lt;li&gt;Full source code ownership and handover docs&lt;/li&gt;
&lt;li&gt;Optional monthly retainer for ongoing improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fixed price, no hourly surprises&lt;/strong&gt; — scope is defined upfront, quote is fixed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-assisted development&lt;/strong&gt; — I use agents (Cursor, Claude Code, MCP) to cut timeline in half without cutting corners&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production-first&lt;/strong&gt; — every line of code is typed, tested, and deployed to your domain&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You own everything&lt;/strong&gt; — source code, infrastructure, data. No vendor lock-in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overlap US/EU hours&lt;/strong&gt; — I reply within a few hours, we sync on your schedule&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Open for New Projects
&lt;/h2&gt;

&lt;p&gt;I'm taking on 2–3 new clients for Q4 2026. If you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An AI chatbot that actually answers from your knowledge base (not hallucinations)&lt;/li&gt;
&lt;li&gt;Document intelligence / RAG over your PDFs and docs&lt;/li&gt;
&lt;li&gt;An AI agent that books appointments, qualifies leads, or resolves support tickets&lt;/li&gt;
&lt;li&gt;A full-stack AI product built and shipped in weeks, not months&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Book a free 15-min call:&lt;/strong&gt; &lt;a href="https://calendly.com/oufr29/30min" rel="noopener noreferrer"&gt;calendly.com/oufr29/30min&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or email me: &lt;a href="mailto:contact@djaouad.tech"&gt;contact@djaouad.tech&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://djaouad.tech" rel="noopener noreferrer"&gt;djaouad.tech&lt;/a&gt;. The live demos above are real products — try them before we talk.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>chatbot</category>
      <category>langgraph</category>
    </item>
    <item>
      <title>How I Built a 24/7 AI Receptionist That Books Appointments Inside Email</title>
      <dc:creator>Djaouad Frih </dc:creator>
      <pubDate>Wed, 26 Aug 2026 20:48:22 +0000</pubDate>
      <link>https://dev.to/djoudad292/how-i-built-a-247-ai-receptionist-that-books-appointments-inside-email-2jg0</link>
      <guid>https://dev.to/djoudad292/how-i-built-a-247-ai-receptionist-that-books-appointments-inside-email-2jg0</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Real estate firms lose 40% of leads because nobody answers after 5 PM. Traditional chatbots are glorified FAQ pages — they can't book appointments, capture leads, or hand off to humans when things get complex.&lt;/p&gt;

&lt;p&gt;I built something different: a production AI receptionist that lives at &lt;a href="https://chat.djaouad.tech" rel="noopener noreferrer"&gt;chat.djaouad.tech&lt;/a&gt;, answers questions 24/7, books calendar appointments, captures lead information, and escalates to humans when needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The twist:&lt;/strong&gt; it's deployed as an AMP email agent — prospects can test it &lt;em&gt;inside&lt;/em&gt; my outreach email before they ever click a link.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Message → NestJS API → LangGraph Agent → Gemini LLM
                                    ↓
                            Tool Calling:
                            - search_documents (RAG)
                            - book_appointment (Calendar API)
                            - capture_lead (CRM)
                            - escalate_to_human (WebSocket)
                                    ↓
                            Streaming Response → WebSocket → Next.js Frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js 14 with App Router, TailwindCSS, WebSocket streaming&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; NestJS with modular architecture&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; LangGraph for agent orchestration, Gemini for LLM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; PostgreSQL + pgvector for RAG embeddings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy:&lt;/strong&gt; Render (backend) + Vercel (frontend) with GitHub Actions CI&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Decisions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Hybrid Search (BM25 + Semantic)
&lt;/h3&gt;

&lt;p&gt;Pure semantic search misses keyword-heavy queries like "2BR Tribeca under $3M". Hybrid search with Reciprocal Rank Fusion gives 34% better recall.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// pgvector + tsvector hybrid&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`
  SELECT * FROM (
    SELECT *, ts_rank_cd(search_vector, plainto_tsquery('english', $1)) as text_rank
    FROM documents
    WHERE search_vector @@ plainto_tsquery('english', $1)
  ) text_results
  UNION ALL
  SELECT *, 0 as text_rank FROM (
    SELECT *, 1 - (embedding &amp;lt;=&amp;gt; $2::vector) as semantic_score
    FROM documents
    ORDER BY embedding &amp;lt;=&amp;gt; $2::vector
    LIMIT 20
  ) semantic_results
`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Cross-Encoder Re-ranking
&lt;/h3&gt;

&lt;p&gt;Adding a cross-encoder on top-20 candidates reduces hallucinations by 80% with only 120ms added latency. The precision gain is worth every millisecond.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Streaming Responses
&lt;/h3&gt;

&lt;p&gt;First token in under 500ms. WebSocket streaming means users see the response form character by character — feels instant, even though the LLM is still generating.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Tool Calling Pattern
&lt;/h3&gt;

&lt;p&gt;The agent decides when to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Search documents&lt;/strong&gt; — RAG retrieval for knowledge-based questions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Book appointments&lt;/strong&gt; — integrates with calendar APIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capture leads&lt;/strong&gt; — stores contact info in CRM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalate to human&lt;/strong&gt; — WebSocket handoff to live agent&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. AMP for Email
&lt;/h3&gt;

&lt;p&gt;The most unconventional decision: embedding the agent in email. Using AMP for Email, recipients can chat with the AI agent &lt;em&gt;inside Gmail&lt;/em&gt; — no link clicks, no signup, no friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lead capture rate&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;td&gt;47%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Response time&lt;/td&gt;
&lt;td&gt;4+ hours&lt;/td&gt;
&lt;td&gt;&amp;lt;1 second&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;After-hours inquiries answered&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appointment bookings&lt;/td&gt;
&lt;td&gt;Manual only&lt;/td&gt;
&lt;td&gt;24/7 automated&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Live Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Test it yourself:&lt;/strong&gt; &lt;a href="https://chat.djaouad.tech" rel="noopener noreferrer"&gt;chat.djaouad.tech&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ask it about properties, booking appointments, or anything — it's a real production agent, not a demo script.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;p&gt;I deploy these for clients at fixed quotes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Starter ($500+):&lt;/strong&gt; AI chatbot trained on your content, 1-2 weeks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Professional ($2,500+):&lt;/strong&gt; Full RAG + tools + dashboard, 2-4 weeks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom:&lt;/strong&gt; Scoped on a call — SaaS, mobile, multi-tenant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Book a free scoping call:&lt;/strong&gt; &lt;a href="https://calendly.com/oufr29/30min" rel="noopener noreferrer"&gt;calendly.com/oufr29/30min&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by Djaouad Frih — Full-Stack AI Engineer. Every product I sell runs live on my own site first. Source code goes to the client. Fixed quotes, no hourly surprises.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>langchain</category>
      <category>nextjs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Turned My Portfolio Into an MCP Server So AI Agents Can Hire Me</title>
      <dc:creator>Djaouad Frih </dc:creator>
      <pubDate>Tue, 25 Aug 2026 17:28:20 +0000</pubDate>
      <link>https://dev.to/djoudad292/i-turned-my-portfolio-into-an-mcp-server-so-ai-agents-can-hire-me-227l</link>
      <guid>https://dev.to/djoudad292/i-turned-my-portfolio-into-an-mcp-server-so-ai-agents-can-hire-me-227l</guid>
      <description>&lt;p&gt;Last month I got tired of sending cold emails that nobody answered. So I flipped the funnel: instead of me reaching out to people, I made it possible for AI agents to find me, read my work, and hire me — all through the Model Context Protocol.&lt;/p&gt;

&lt;p&gt;This is the story of HireMe MCP, what it does, how it works, and why I think every freelancer should build one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: portfolios don't talk to agents
&lt;/h2&gt;

&lt;p&gt;Here's how hiring works in 2026 for a lot of people: a founder opens Claude or Cursor and asks "find me someone who can build an AI chatbot with pgvector." The agent searches, reads GitHub profiles, maybe opens your portfolio site.&lt;/p&gt;

&lt;p&gt;And then it hits a wall. Your portfolio is HTML made for humans. An agent can scrape it, but it gets prose, navigation menus, and CSS — not structured facts like "here are my projects, here's my pricing, here's how to contact me."&lt;/p&gt;

&lt;p&gt;MCP fixes this. It's an open protocol (introduced by Anthropic, now widely adopted) that lets any AI client connect to a server through a standard interface of tools. If your data speaks MCP, agents don't have to guess — they just call your tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  What HireMe MCP exposes
&lt;/h2&gt;

&lt;p&gt;The server runs on Express + TypeScript and exposes four tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;search_projects&lt;/code&gt; — agents query my work by industry ("healthcare") or stack ("pgvector", "react-native")&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_pricing&lt;/code&gt; — transparent fixed prices ($500 chatbot / $2,000 full build), no "contact us for quote"&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_availability&lt;/code&gt; — next open slot&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;submit_brief&lt;/code&gt; — the agent submits a project brief directly, which lands in my CRM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So when an agent asks "can this person build a PDF Q&amp;amp;A system?", the answer comes back as structured JSON with links to live demos — not a guess from whatever Google indexed last month.&lt;/p&gt;

&lt;p&gt;Here's a trimmed version of a tool definition:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;search_projects&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Search Djaouad's portfolio by industry or tech stack&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;industry&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;optional&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="na"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;optional&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;industry&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stack&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;industry&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;industries&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;industry&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
      &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;some&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}]&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing exotic. That's the point — the whole server is about 400 lines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting listed where agents actually look
&lt;/h2&gt;

&lt;p&gt;Building the server was the easy part. Distribution matters more:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Official MCP Registry&lt;/strong&gt; — submitted a PR to the registry repo; once merged, clients like Claude Desktop can discover it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smithery&lt;/strong&gt; — the main MCP directory; it scores your server (mine scored 56/100 on first pass, mostly for missing metadata I've since added).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glama &amp;amp; mcpservers.org&lt;/strong&gt; — additional listing sites agents' users browse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your own endpoint&lt;/strong&gt; — mine lives at &lt;code&gt;mcp.djaouad.tech&lt;/code&gt;, and my portfolio README shows a one-liner config so anyone can plug it in:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"hireme"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.djaouad.tech/mcp"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Honest results so far
&lt;/h2&gt;

&lt;p&gt;I won't pretend this landed me five clients overnight. What it has done:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My profile is now readable by every MCP-capable agent without scraping&lt;/li&gt;
&lt;li&gt;Two people found me through the Smithery listing (zero emails sent by me)&lt;/li&gt;
&lt;li&gt;It makes a great conversation piece — "you built WHAT?" opens more doors than any cold email I've written&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point surprised me. The server itself became marketing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build your own in an afternoon
&lt;/h2&gt;

&lt;p&gt;If you freelance, you can clone this idea in a few hours:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scaffold an Express + TypeScript project, add &lt;code&gt;@modelcontextprotocol/sdk&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Define 3–4 tools: your work (searchable), pricing, availability, contact/brief submission&lt;/li&gt;
&lt;li&gt;Deploy anywhere cheap (Render free tier works)&lt;/li&gt;
&lt;li&gt;Submit to the official registry + Smithery&lt;/li&gt;
&lt;li&gt;Add the one-line config to your README&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The whole thing costs me $0/month to run. Compare that to any job board.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Live endpoint: &lt;a href="https://mcp.djaouad.tech/mcp" rel="noopener noreferrer"&gt;https://mcp.djaouad.tech/mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source code: &lt;a href="https://github.com/djoudad292/hireme-mcp" rel="noopener noreferrer"&gt;https://github.com/djoudad292/hireme-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio (human-readable version): &lt;a href="https://djaouad.tech" rel="noopener noreferrer"&gt;https://djaouad.tech&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you build one, reply here — I'd genuinely like to see other freelancers' takes on this.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>javascript</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
