<?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: Marius Stiuriuc</title>
    <description>The latest articles on DEV Community by Marius Stiuriuc (@marius_stiuriuc_f65afb31a).</description>
    <link>https://dev.to/marius_stiuriuc_f65afb31a</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%2F1865416%2F2a925960-a232-4277-8bfa-f7de7f544674.png</url>
      <title>DEV Community: Marius Stiuriuc</title>
      <link>https://dev.to/marius_stiuriuc_f65afb31a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marius_stiuriuc_f65afb31a"/>
    <language>en</language>
    <item>
      <title>Search Phrases That Find People Hiring for Your Freelance Service</title>
      <dc:creator>Marius Stiuriuc</dc:creator>
      <pubDate>Sun, 15 Nov 2026 20:23:58 +0000</pubDate>
      <link>https://dev.to/marius_stiuriuc_f65afb31a/search-phrases-that-find-people-hiring-for-your-freelance-service-393m</link>
      <guid>https://dev.to/marius_stiuriuc_f65afb31a/search-phrases-that-find-people-hiring-for-your-freelance-service-393m</guid>
      <description>&lt;p&gt;If you search Reddit or LinkedIn for "SEO services", you'll mostly find other SEO freelancers. Buyers rarely use the name of your service. They describe what's wrong. "My site doesn't show up on Google." "My store gets visits but no sales." "Our ads cost more than they bring in." "I don't have time for Instagram."&lt;/p&gt;

&lt;p&gt;Below are search phrases that tend to surface people who want to pay for help, for eight common freelance services. Next to each one is what the person usually means, because the phrase tells you a lot about how to reply.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use these phrases
&lt;/h2&gt;

&lt;p&gt;Put each phrase in quotes so the words stay together.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reddit: use the search bar, sort by New, and look at the past week.&lt;/li&gt;
&lt;li&gt;Google: site:reddit.com "phrase", then Tools and Past week. It works with site:linkedin.com/posts too.&lt;/li&gt;
&lt;li&gt;LinkedIn: search the phrase, pick the Posts filter, sort by Latest.&lt;/li&gt;
&lt;li&gt;Facebook groups: search inside each group you've joined.&lt;/li&gt;
&lt;li&gt;X: search the phrase and open the Latest tab.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To skip sellers on Google, add -"for hire" -"I will" to the search. On Reddit, skim past anything tagged [For Hire].&lt;/p&gt;

&lt;h2&gt;
  
  
  Web design and development
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"looking for a web designer": a small business or startup that wants a new site or a redesign, usually with a rough idea of the look.&lt;/li&gt;
&lt;li&gt;"need someone to build a website": often a first site. The budget is usually modest and they want the setup handled for them.&lt;/li&gt;
&lt;li&gt;"can anyone recommend a web developer": trust matters more than price here. Show similar work.&lt;/li&gt;
&lt;li&gt;"my website looks outdated": an existing site the owner is embarrassed by, often one that's hard to use on a phone.&lt;/li&gt;
&lt;li&gt;"help with my wordpress site": usually a broken plugin or a site the last developer left behind. These small jobs often turn into ongoing work.&lt;/li&gt;
&lt;li&gt;"my website is down": urgent. They'll pay to have it working today.&lt;/li&gt;
&lt;li&gt;"Wix or hire someone": deciding between doing it themselves and paying. An honest answer wins.&lt;/li&gt;
&lt;li&gt;"how much should a website cost": early research. A clear price range, and what moves it up or down, helps more than a pitch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Shopify
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"looking for a shopify developer": custom features or theme changes. Ask which one.&lt;/li&gt;
&lt;li&gt;"help setting up my shopify store": a new store owner who wants to launch without learning everything first.&lt;/li&gt;
&lt;li&gt;"store gets traffic but no sales": a conversion problem, even if they think they need ads or a new design.&lt;/li&gt;
&lt;li&gt;"move from woocommerce to shopify": a migration. Their worry is losing orders or Google rankings.&lt;/li&gt;
&lt;li&gt;"shopify theme customization": specific edits to a theme they already like.&lt;/li&gt;
&lt;li&gt;"shopify checkout not working": a fix they need fast because it's costing them sales.&lt;/li&gt;
&lt;li&gt;"DIY with Shopify or hire a developer": still deciding. Help them decide and they'll remember you.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  SEO
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"not showing up on google": usually a local business. Often a Google Business Profile problem as much as a website one.&lt;/li&gt;
&lt;li&gt;"traffic dropped after update": they lost rankings and want someone to explain why. Worried and in a hurry.&lt;/li&gt;
&lt;li&gt;"looking for an seo consultant": they know they need SEO and are comparing options.&lt;/li&gt;
&lt;li&gt;"local seo help": they want to show up on Maps in their town.&lt;/li&gt;
&lt;li&gt;"is seo worth it for a small business": skeptical, maybe burned before. Be straight about how long it takes.&lt;/li&gt;
&lt;li&gt;"what does an seo agency actually do": paying an agency and unsure what they get. An audit or second opinion is an easy first job.&lt;/li&gt;
&lt;li&gt;"technical seo audit": a defined one-off project, often for an online store.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Google and Meta ads
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"looking for a facebook ads expert": they've tried running ads themselves or had a bad experience with someone else.&lt;/li&gt;
&lt;li&gt;"google ads not converting": spending money with nothing to show for it. They want a diagnosis first.&lt;/li&gt;
&lt;li&gt;"cost per lead too high": the ads work a little, but the numbers don't add up yet.&lt;/li&gt;
&lt;li&gt;"ad account disabled": urgent. They need someone who knows the appeal process.&lt;/li&gt;
&lt;li&gt;"conversions not tracking" or "pixel not firing": a tracking fix, usually small and quick.&lt;/li&gt;
&lt;li&gt;"is it worth paying someone to run ads": deciding whether to hire. Explain what a sensible first test looks like.&lt;/li&gt;
&lt;li&gt;"who manages your google ads": an owner asking other owners for a referral.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Social media management
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"looking for a social media manager": ongoing monthly work, usually on one or two platforms.&lt;/li&gt;
&lt;li&gt;"don't have time for social media": a busy owner who wants it off their plate. Consistency matters more to them than strategy decks.&lt;/li&gt;
&lt;li&gt;"need someone to post on instagram for my business": posting and simple content, often on a small monthly budget.&lt;/li&gt;
&lt;li&gt;"ugc creator" or "content creator for tiktok": they want someone to make videos as well as post them.&lt;/li&gt;
&lt;li&gt;"part-time social media help": a smaller scope, sometimes a trial for something bigger.&lt;/li&gt;
&lt;li&gt;"how much does a social media manager cost": early research. Give a range and say what's included.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Video editing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"looking for a video editor": broad. Ask how long the videos are and how often they post.&lt;/li&gt;
&lt;li&gt;"need someone to edit youtube videos": ongoing per-video work, often for a growing channel.&lt;/li&gt;
&lt;li&gt;"short form video editor" or "editor for reels": short clips for TikTok and Reels, usually in batches.&lt;/li&gt;
&lt;li&gt;"turn podcast into clips": they record long episodes and want short pieces cut from them.&lt;/li&gt;
&lt;li&gt;"podcast editor": audio cleanup and editing, often weekly.&lt;/li&gt;
&lt;li&gt;"editor needed ongoing": a steady client if you're reliable on deadlines.&lt;/li&gt;
&lt;li&gt;"how much to pay a video editor": checking rates. A clear per-video price helps.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Logo and branding
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"need a logo for my business": a new business, usually price sensitive. A simple package with a set number of revisions works well.&lt;/li&gt;
&lt;li&gt;"looking for a logo designer": ready to pay and comparing styles. Lead with similar work.&lt;/li&gt;
&lt;li&gt;"brand identity designer" or "rebrand": an established business that wants the full set, from logo and colors to fonts and guidelines.&lt;/li&gt;
&lt;li&gt;"logo feedback": often someone who made their own logo and isn't sure about it. Give honest feedback first and offer help second.&lt;/li&gt;
&lt;li&gt;"packaging design": product businesses, usually working toward a print deadline.&lt;/li&gt;
&lt;li&gt;"brand guidelines": they have a logo, but everything looks a bit different everywhere.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Copywriting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"looking for a copywriter": broad. Ask what the copy is for.&lt;/li&gt;
&lt;li&gt;"need someone to write my website copy": a new site or redesign that's stuck because the words aren't ready.&lt;/li&gt;
&lt;li&gt;"landing page copy": one page tied to a launch or an ad campaign.&lt;/li&gt;
&lt;li&gt;"sales page not converting": they have traffic and an offer, but the page isn't doing its job.&lt;/li&gt;
&lt;li&gt;"email sequence writer": welcome or launch emails, often for course creators and online stores.&lt;/li&gt;
&lt;li&gt;"product descriptions": online stores, usually lots of them. Quote per item or per batch.&lt;/li&gt;
&lt;li&gt;"linkedin ghostwriter": founders or consultants who want to post regularly without writing it themselves.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Patterns that hold for every service
&lt;/h2&gt;

&lt;p&gt;Phrases with "broken" or "urgent" mean someone will pay quickly for a fix. Phrases with "how much" or "worth it" mean they're early, so be useful and don't push. "Can anyone recommend" means trust decides it, so a relevant example matters more than a low price. Phrases with "ongoing" or "monthly" mean a retainer is possible.&lt;/p&gt;

&lt;p&gt;Watch for sellers using the same words. "Looking for clients who need a website" contains "looking for" and "website", but it was written by a freelancer like you.&lt;/p&gt;

&lt;p&gt;For what to write once you find a good one, I wrote a separate guide on &lt;a href="https://mariusstiuriuc.hashnode.dev/how-to-find-clients-on-reddit-linkedin-and-facebook-groups-without-spamming" rel="noopener noreferrer"&gt;finding clients on Reddit, LinkedIn and Facebook groups without spamming&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: an AI agent wrote this post for me and published it on my account.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>career</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building a Manifest V3 extension that only acts after you say yes: a dashboard bridge, a log ring buffer and an approval queue</title>
      <dc:creator>Marius Stiuriuc</dc:creator>
      <pubDate>Sun, 15 Nov 2026 19:52:59 +0000</pubDate>
      <link>https://dev.to/marius_stiuriuc_f65afb31a/building-a-manifest-v3-extension-that-only-acts-after-you-say-yes-a-dashboard-bridge-a-log-ring-569</link>
      <guid>https://dev.to/marius_stiuriuc_f65afb31a/building-a-manifest-v3-extension-that-only-acts-after-you-say-yes-a-dashboard-bridge-a-log-ring-569</guid>
      <description>&lt;p&gt;EvenLeads is a web app plus a Chrome extension. The web app finds public "looking to hire" posts and writes a draft reply. The extension posts that reply from the user's own account once they approve it, or on its own if they switch Auto-send on. Wiring the two together in Manifest V3 taught me a few things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. A content-script bridge between the dashboard and the extension&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The dashboard is an ordinary web page, so it can't call extension APIs. A small content script runs only on our own domain and relays messages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the page dispatches a CustomEvent with a request type and payload&lt;/li&gt;
&lt;li&gt;the content script picks it up and forwards it with chrome.runtime.sendMessage&lt;/li&gt;
&lt;li&gt;the background service worker handles it and answers&lt;/li&gt;
&lt;li&gt;the content script fires a response CustomEvent back to the page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every request type has a matching response type, so the page can time out cleanly when the extension isn't installed or was just reloaded. The whole thing is deliberately dull and easy to test.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Service workers die, so expect "Extension context invalidated"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;MV3 stops the background worker and starts it again whenever Chrome decides to. Anything held in memory disappears, and a page still talking to the old instance gets "Extension context invalidated". What helped:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;state lives in chrome.storage, never in module variables&lt;/li&gt;
&lt;li&gt;every message is handled as if it could be the first one after a restart&lt;/li&gt;
&lt;li&gt;the page detects an invalidated context and asks for a refresh instead of failing silently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Keep your own service worker logs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can't open DevTools on a user's service worker. The background script wraps console.log, warn and error and keeps the last 500 entries in a ring buffer. A test command over the same bridge returns that buffer, so when a send fails during testing I can read what the worker did without going near chrome://extensions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The web app decides and the extension executes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The extension never chooses what to send. It receives one task at a time, holds an in-flight lock so the same lead can't be sent twice, runs it and reports the result to the dashboard. Keeping decisions on the server keeps the extension small and much easier to reason about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Intents instead of selectors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LinkedIn, Reddit and Facebook change their markup often. Hard-coded selectors for the comment box or the send button would break constantly, so the extension uses a small declarative intent engine: open the composer, type, submit, verify. Each intent tries known selectors first and falls back to role and visible text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Default to slow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The extension could reply seconds after a post appears. By default it waits for a person. Instant replies to every matching post look automated however good the text is, and many communities don't allow vendor replies at all. Approval is the default and Auto-send is a switch the user turns on.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: an AI agent wrote this post from the EvenLeads code and posted it for me. I read and approved the text before it went up.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>chromeextension</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
