<?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: Muhammad Yasir</title>
    <description>The latest articles on DEV Community by Muhammad Yasir (@buzdaryasir06).</description>
    <link>https://dev.to/buzdaryasir06</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%2F3802393%2F1b94c844-748a-4d17-abac-aae456895ad8.jpg</url>
      <title>DEV Community: Muhammad Yasir</title>
      <link>https://dev.to/buzdaryasir06</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/buzdaryasir06"/>
    <language>en</language>
    <item>
      <title>I Built an Open-Source “LinkedIn AI Copilot” to Hack the Job Search</title>
      <dc:creator>Muhammad Yasir</dc:creator>
      <pubDate>Mon, 02 Mar 2026 20:45:32 +0000</pubDate>
      <link>https://dev.to/buzdaryasir06/i-built-an-open-source-linkedin-ai-copilot-to-hack-the-job-search-4bkb</link>
      <guid>https://dev.to/buzdaryasir06/i-built-an-open-source-linkedin-ai-copilot-to-hack-the-job-search-4bkb</guid>
      <description>&lt;p&gt;When developers think of AI tools, we usually think of GitHub Copilot or ChatGPT. But when I was looking at optimizing my professional brand and navigating the job market, I realized there was a massive gap: Why don't we have an AI Copilot for LinkedIn?&lt;/p&gt;

&lt;p&gt;As a Computer Science student at the University of Loralai and a Python developer, I wanted an AI assistant that could:&lt;/p&gt;

&lt;p&gt;Help me analyze job descriptions directly against my profile.&lt;br&gt;
Draft engaging, context-aware comments on posts to build my network.&lt;br&gt;
Automatically audit and improve my LinkedIn profile based on modern recruiter expectations.&lt;br&gt;
Instead of paying for expensive, closed-source SaaS tools, I decided to build exactly what I needed.&lt;/p&gt;

&lt;p&gt;Say hello to LinkedIn AI Copilot — an open-source Chrome extension backed by FastAPI and Groq (Llama 3) that integrates right into the LinkedIn interface.&lt;/p&gt;

&lt;p&gt;🔗 Check out the repository on GitHub here! &lt;a href="https://github.com/buzdaryasir06/linkedin-ai-copilot" rel="noopener noreferrer"&gt;https://github.com/buzdaryasir06/linkedin-ai-copilot&lt;/a&gt;&lt;br&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%2Fig0anwdh9l3tkwhrn142.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%2Fig0anwdh9l3tkwhrn142.png" alt="Screen shot of Linkedin Ai Copilot" width="800" height="382"&gt;&lt;/a&gt;&lt;br&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%2Ft3z54xmfu4j921sovv3v.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%2Ft3z54xmfu4j921sovv3v.png" alt="Screen shot of Linkedin Ai Copilot" width="800" height="375"&gt;&lt;/a&gt;`` (If you find it useful, I’d love a star! ⭐)&lt;/p&gt;

&lt;p&gt;🏗️ The Architecture: How It Works Under the Hood&lt;br&gt;
To keep the tool fast, secure, and maintainable, I split the architecture into a lightweight Chrome Extension frontend and a robust Python backend.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Chrome Extension (Vanilla JS + Manifest V3)
I wanted the extension to feel native to LinkedIn.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Content Scripts: These extract the post context or job description text directly from the DOM using Vanilla JavaScript.&lt;br&gt;
Job Scanner Orchestration: One of the coolest features is the Job Scanner. The extension automatically scans LinkedIn job search pages and injects color-coded badges directly onto the job cards based on how well my profile matches the requirements.&lt;br&gt;
Background Worker: It proxies the requests to the backend, keeping the architecture secure.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Backend (FastAPI + Groq)
The extension acts as a thin client, passing the payload to a local Python backend.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;FastAPI: I chose FastAPI because it is incredibly fast, easy to type-check via Pydantic schemas, and naturally handles asynchronous requests.&lt;br&gt;
Groq &amp;amp; Llama 3: Speed is critical for a browser extension. Waiting 5-10 seconds for an LLM response ruins the flow. By routing the prompts (via app/services.py) to the Groq API running Llama 3, the comment generations and job profile audits are returned almost instantaneously.&lt;br&gt;
Local Persistence: Data like the user's base profile and tracked jobs are stored in an async local SQLite database to prevent unnecessary repetitive data-fetching.&lt;br&gt;
✨ Core Features Designed to Save Time&lt;br&gt;
Feature 1: The Context-Aware Comment Generator&lt;br&gt;
"Great post!" is a terrible comment. But drafting a highly strategic, engaging technical comment takes mental energy. The Copilot generates three distinct options based on the post text:&lt;/p&gt;

&lt;p&gt;Strategic: Focused on networking.&lt;br&gt;
Authority: Adding technical insight or thought-leadership.&lt;br&gt;
Questioning: Designed to spark genuine engagement.&lt;br&gt;
Feature 2: Job Match Analysis &amp;amp; Batch Scoring&lt;br&gt;
When you are looking for jobs, you often open 15 tabs at once. The Job Scanner scores jobs in batches against your local profile. If a job is a 95% match, it injects a green badge to let you know it's worth your time. If it's a 30% match, you can skip it without wasting 10 minutes reading the description. When you click into a specific job, it generates customized application notes and resume adjustment recommendations.&lt;/p&gt;

&lt;p&gt;Feature 3: Full Profile Enhancement Audit&lt;br&gt;
Building a great profile is hard. The Copilot analyzes six core sections: Headline, About, Experience, Skills, Featured, and Context. It doesn't just grade you; it provides actionable, ranked recommendations and rewrites (like shifting an experience bullet into an impact-driven CAR format).&lt;/p&gt;

&lt;p&gt;🚀 What I Learned Building This&lt;br&gt;
DOM Traversal is messy: LinkedIn updates its DOM classes constantly. Relying heavily on specific class names is fragile. Instead, utilizing semantic HTML structure and more forgiving query selectors was a key learning.&lt;br&gt;
Speed is a Feature: Swapping from standard OpenAI models to Groq for inference completely transformed the user experience. The latency drop makes the tool feel like an integrated feature rather than a heavy API call.&lt;br&gt;
Prompt Engineering in Production is Hard: It took serious iteration in prompts.py to get the AI to output consistently parsable JSON that the frontend could confidently inject into the DOM without breaking.&lt;br&gt;
Final Thoughts &amp;amp; Next Steps&lt;br&gt;
This project started as a tool to solve my own problems—automating the repetitive parts of networking and job hunting—but it quickly grew into the most complex and rewarding full-stack application I’ve ever built.&lt;/p&gt;

&lt;p&gt;It fuses my Python backend skills with creative extension development, and I’m incredibly proud to open-source it to the community.&lt;/p&gt;

&lt;p&gt;If you are a developer looking for an edge in the job market, or you're just curious about how Chrome Extensions can leverage local FastAPI backends, I invite you to try it out!&lt;/p&gt;

&lt;p&gt;👉 Take a look at the code or try it locally here.&lt;/p&gt;

&lt;p&gt;I'm completely open to pull requests, feedback, or any questions about the architecture in the comments below! Have you ever built a Chrome extension that interacts with an external AI API? Let me know your experience!&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>opensource</category>
      <category>career</category>
    </item>
  </channel>
</rss>
