<?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: charlie-morrison</title>
    <description>The latest articles on DEV Community by charlie-morrison (@charliemorrison).</description>
    <link>https://dev.to/charliemorrison</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%2F3896832%2Fab355440-b976-4d9a-b9fe-762faf3e7836.png</url>
      <title>DEV Community: charlie-morrison</title>
      <link>https://dev.to/charliemorrison</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/charliemorrison"/>
    <language>en</language>
    <item>
      <title>I Applied to 40 Jobs: Easy Apply vs Company Site — Where the Replies Actually Came From</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Tue, 23 Jun 2026 20:01:36 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-applied-to-40-jobs-easy-apply-vs-company-site-where-the-replies-actually-came-from-5670</link>
      <guid>https://dev.to/charliemorrison/i-applied-to-40-jobs-easy-apply-vs-company-site-where-the-replies-actually-came-from-5670</guid>
      <description>&lt;p&gt;There is a permanent argument in every job-search forum: should you use LinkedIn's one-click &lt;em&gt;Easy Apply&lt;/em&gt;, or should you go to the company's own careers page and fill out the real form? One camp says Easy Apply is a black hole that drops your resume into a pile of 900. The other says the company site is a waste of fifteen minutes per application that nobody reads anyway. Both sides argue from feeling, because almost nobody tracks which channel actually got them a human reply. So over three weeks this spring I sent 40 applications, split evenly between the two channels, and logged every single response. The headline gap was real — but it pointed at something other than the channel, and once I saw it the whole debate looked like the wrong question.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the test was built
&lt;/h2&gt;

&lt;p&gt;I kept the variables tight so the comparison would mean something. Every application was for a senior backend or platform engineering role, all remote or hybrid, all posted within the previous ten days (stale postings are a known reply-killer and I did not want that noise). I alternated channels strictly: odd-numbered roles went through LinkedIn or Indeed Easy Apply, even-numbered roles went through the company's own careers page — usually a Greenhouse, Lever, or Workday form. Same base resume, same week, same me.&lt;/p&gt;

&lt;p&gt;I counted a "reply" as any response from a human: a recruiter screen invite, a "tell me more about your payments experience" email, or even a rejection that referenced something specific in my application. I deliberately included specific rejections, because a templated auto-reject tells you nothing, but a rejection that quotes your background means a person actually opened the file. Three weeks is enough to catch the fast-moving teams and miss the slow ones, so treat the absolute numbers as a snapshot, not a law of physics. The &lt;em&gt;shape&lt;/em&gt; is what held up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The headline numbers
&lt;/h2&gt;

&lt;p&gt;Here is the channel split, straight off my tracking sheet:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Channel&lt;/th&gt;
&lt;th&gt;Sent&lt;/th&gt;
&lt;th&gt;Human replies&lt;/th&gt;
&lt;th&gt;Recruiter screens&lt;/th&gt;
&lt;th&gt;Reply rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Easy Apply (LinkedIn / Indeed)&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company career site&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;30%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;40 applications over three weeks, May 2026, senior backend / platform roles.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So the company site doubled the reply rate and quadrupled the recruiter screens. If you stop reading here you would conclude "always use the company site," and a lot of advice does stop exactly here. But that conclusion ignores the cost on the other side of the ledger, and it ignores a second column I was tracking that turned out to matter more.&lt;/p&gt;

&lt;p&gt;The cost first. An Easy Apply submission took me about 90 seconds — confirm the resume, answer two or three screening questions, done. A company-site application averaged closer to 14 minutes: create yet another account, watch a Workday parser mangle my resume into empty fields, retype half of it by hand, answer the "describe a time you…" boxes. Twenty company-site applications ate roughly four and a half hours. Twenty Easy Applies ate half an hour. If your only goal is raw reply count per hour of effort, the gap closes fast — and that is before the second column.&lt;/p&gt;

&lt;h2&gt;
  
  
  The column that actually predicted replies
&lt;/h2&gt;

&lt;p&gt;Next to "channel," I had logged whether I &lt;strong&gt;tailored&lt;/strong&gt; each application — meaning I rewrote the resume summary line and made sure the five to eight skills the posting emphasized appeared, in the posting's exact wording, somewhere in my resume. Not lying, not stuffing; just making the words match the words a recruiter and their software would search for. When I re-sorted the same 40 applications by that column instead of by channel, the picture changed completely:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Group&lt;/th&gt;
&lt;th&gt;Sent&lt;/th&gt;
&lt;th&gt;Human replies&lt;/th&gt;
&lt;th&gt;Reply rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tailored to the posting&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;50%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sent as-is (generic resume)&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;8%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Same 40 applications, re-sorted by whether I tailored the resume to the posting.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tailoring beat not-tailoring by roughly six to one, and that gap dwarfed the channel gap. The channel comparison was real, but it was mostly measuring tailoring in disguise — because of &lt;em&gt;where&lt;/em&gt; the tailored applications happened to land. When I cross-tabbed the two columns, the trick became obvious:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easy Apply:&lt;/strong&gt; I tailored only 4 of 20. The friction is so low that I clicked through 16 of them on autopilot with a generic resume. Of the 4 tailored, 2 got replies; of the 16 generic, 1 did.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Company site:&lt;/strong&gt; I tailored 10 of 20. Sitting through a 14-minute form puts you in a frame of mind where you actually read the posting and adjust. Of the 10 tailored, 5 replied; of the 10 generic, 1 did.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read the company-site advantage again with that in mind. The careers page did not have some magic recruiter hotline that Easy Apply lacks. It just &lt;em&gt;forced me to slow down&lt;/em&gt;, and slowing down is what made me tailor. The channel was a proxy for effort. The friction I was cursing the whole time was quietly doing the one thing that worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why matching the words does so much work
&lt;/h2&gt;

&lt;p&gt;The mechanism is not mysterious. Most mid-to-large companies route applications through an applicant tracking system, and the first pass — whether automated or a recruiter skimming a list — ranks candidates on how well the resume matches the requisition's language. Purdue's writing lab is blunt about this in its &lt;a href="https://owl.purdue.edu/owl/job_search_writing/resumes_and_vitas/index.html" rel="noopener noreferrer"&gt;guidance on resumes&lt;/a&gt;: a resume is a targeted document, and the closer it speaks the employer's own terms back to them, the better it travels through screening. A generic resume that says "built scalable services" when the posting asks for "Kubernetes," "Kafka," and "PCI-DSS" gives the ranker almost nothing to grab.&lt;/p&gt;

&lt;p&gt;And recruiters do not read; they scan. The Nielsen Norman Group's long-running research on &lt;a href="https://www.nngroup.com/articles/how-little-do-users-read/" rel="noopener noreferrer"&gt;how little users actually read&lt;/a&gt; applies to a resume in a stack just as much as to a web page — the first scan is a hunt for matching keywords, and only the resumes that survive that hunt get read like prose. Tailoring is just making sure your resume wins the scan it is actually subjected to, instead of the careful read you wish it got. I saw the same lesson when I sent 30 cover letters split between personalized and template — the personalization gap was real, but a concrete, specific opening line did far more than generic effort, for the same reason: it gave the reader something precise to latch onto in the two seconds they spent.&lt;/p&gt;

&lt;h2&gt;
  
  
  So tailor — but make it cost 30 seconds, not 14 minutes
&lt;/h2&gt;

&lt;p&gt;The obvious objection: if tailoring is the lever, and the company site makes you tailor, just use the company site, right? No — because the 14 minutes of Workday data entry was never the part that helped. The retyping is dead weight; the tailoring is the live wire. The win is to keep the tailoring and throw away the friction: use Easy Apply for its speed, but spend 30 of those saved seconds pulling the posting's real keywords first.&lt;/p&gt;

&lt;p&gt;That is the gap I built a free tool for. The &lt;a href="https://charliemorrison.dev/job-keywords" rel="noopener noreferrer"&gt;Job Description Keyword Extractor&lt;/a&gt; takes the full posting, finds the technical skills and action verbs it actually emphasizes, and hands them back as a checklist you can match your resume against before you click apply. Here is a real run on one of the senior-backend postings from this batch:&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%2Fdz68jgqh9ajfev8s7r8p.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%2Fdz68jgqh9ajfev8s7r8p.png" alt="The Job Description Keyword Extractor showing 13 keywords pulled from a senior backend payments job description, grouped into technical skills and action verbs, with a copy-to-clipboard box." width="800" height="1404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Paste the posting, get the exact technical skills and verbs it weights — 13 here, grouped and copyable.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It pulled thirteen terms in a couple of seconds — &lt;code&gt;Kubernetes&lt;/code&gt;, &lt;code&gt;Kafka&lt;/code&gt;, &lt;code&gt;PostgreSQL&lt;/code&gt;, &lt;code&gt;PCI&lt;/code&gt;, &lt;code&gt;Terraform&lt;/code&gt; and the rest — and the only job left was to confirm each true one appeared in my resume in that wording. That is the whole tailoring step for an Easy Apply, done in well under a minute.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually changed after the test
&lt;/h2&gt;

&lt;p&gt;I did not pick a side in the channel war. I changed how I use both:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Default to Easy Apply for speed,&lt;/strong&gt; but never on autopilot. Before every click, paste the posting into the keyword extractor and confirm the true matches are in my resume. LinkedIn's own &lt;a href="https://www.linkedin.com/help/linkedin/answer/a554565" rel="noopener noreferrer"&gt;description of how Easy Apply works&lt;/a&gt; is honest that it submits your existing profile and resume as-is — which is exactly why a generic profile gets a generic result. The channel is fine; coasting on it is the problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reserve the 14-minute company-site forms for roles I genuinely want.&lt;/strong&gt; If I am willing to spend a quarter hour, I am willing to tailor hard, and that is where the company site pays off. For roles I am only curious about, the slow form is not worth it — a tailored Easy Apply gets most of the benefit at a tenth of the time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track replies by tailoring, not by channel.&lt;/strong&gt; Once I started logging the column that actually predicted outcomes, the channel question stopped feeling important. The reply rate follows effort applied to matching the posting, wherever the form happens to live.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The cleanest way to say it: &lt;strong&gt;the company site does not beat Easy Apply — tailoring beats not-tailoring, and the company site just tricks you into tailoring.&lt;/strong&gt; Take the trick away, keep the behavior, and you get the company-site reply rate at the Easy Apply price.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is LinkedIn Easy Apply really a black hole?&lt;/strong&gt;&lt;br&gt;
Not by itself. In this batch the Easy Apply roles I tailored replied at 50% — the same rate as tailored company-site applications. The black-hole reputation comes from how easy it is to send 20 generic ones in ten minutes without adjusting anything. The channel is not the problem; the autopilot it invites is. Slow down for the 30 seconds it takes to match the posting's keywords and Easy Apply performs fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Doesn't matching keywords just mean stuffing my resume?&lt;/strong&gt;&lt;br&gt;
No. The point is to use the posting's exact wording for skills you genuinely have — "Kubernetes" instead of "container orchestration," "PostgreSQL" instead of "relational databases" — so the screening pass can match them. Stuffing keywords you cannot back up gets caught in the first conversation and wastes everyone's time. Tailoring means accurate matching, not inflation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many applications a day does this allow?&lt;/strong&gt;&lt;br&gt;
Fewer than spray-and-pray, more than people fear. A tailored Easy Apply runs about two minutes end to end with the keyword step, so 10–15 a day is sustainable. The point of this test is that 10 tailored applications beat 40 generic ones on replies — so the lower number is the higher-yield play, not a compromise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What counted as a "reply" in your numbers?&lt;/strong&gt;&lt;br&gt;
Any response from a human: a recruiter screen invite, a specific follow-up question, or a rejection that referenced something concrete from my application. Templated auto-rejections did not count, because they signal nothing about whether a person opened the file. Three weeks is a snapshot, so weigh the pattern over the exact percentages.&lt;/p&gt;

&lt;p&gt;So the honest summary: across 40 applications the company career site replied at double the rate of Easy Apply, but that gap was mostly tailoring wearing a channel costume. Sorted by whether I matched the posting, tailored applications replied six times more often than generic ones, regardless of where I sent them. Use the fast channel, keep the slow channel's one good habit, and stop paying fifteen minutes for something a 30-second keyword check gives you for free.&lt;/p&gt;




&lt;p&gt;If you want the full set that makes tailoring quick — keyword extractor plus resume-bullet, cover-letter, and salary-script generators — I bundled them as the &lt;a href="https://charliemorrison.lemonsqueezy.com/checkout/buy/0c3f51d6-9089-466e-ada4-58a0b22036e0?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-applied-to-40-jobs-easy-apply-vs-company-site" rel="noopener noreferrer"&gt;Job Search AI Toolkit ($12)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post contains affiliate/product links. I may earn a small commission if you buy — at no extra cost to you. This article was written with AI assistance and reflects my own tracked job-search experiment.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>jobsearch</category>
      <category>linkedin</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Rewrote 50 LinkedIn Headlines — Search Appearances Moved, Profile Views Mostly Didn't</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Mon, 22 Jun 2026 22:06:52 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-rewrote-50-linkedin-headlines-search-appearances-moved-profile-views-mostly-didnt-50ll</link>
      <guid>https://dev.to/charliemorrison/i-rewrote-50-linkedin-headlines-search-appearances-moved-profile-views-mostly-didnt-50ll</guid>
      <description>&lt;p&gt;Most people set their LinkedIn headline once, by accident. You change jobs, LinkedIn auto-fills "Senior Software Engineer at Acme Corp," you click save, and that line follows you everywhere — search results, connection requests, the comment you left on someone's post, the "people you may know" card. It is the single most-displayed sentence you own on the platform, and most of us let a default write it. So this spring I ran a narrow test: rewrite 50 of these headlines, change nothing else, and watch two numbers — how often the profile &lt;em&gt;appeared in recruiter searches&lt;/em&gt; and how many &lt;em&gt;profile views&lt;/em&gt; it earned. The result split cleanly in a way I did not expect. The keyword-front rewrites got &lt;strong&gt;found&lt;/strong&gt; far more often. The view count barely cared.&lt;/p&gt;

&lt;p&gt;That gap turned out to be the whole lesson. The headline's real job is not to impress the person already looking at your profile — it is to get you into the search results in the first place. Once I separated those two jobs, the advice I had been repeating for years stopped making sense, and the data pointed at something simpler.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the batch was built
&lt;/h2&gt;

&lt;p&gt;Fifty LinkedIn headlines, rewritten across May and the first half of June 2026. As with my earlier profile experiments, this was not a clean random sample — it was the people in reach: about thirty from coaching sessions (mid-career engineers, a cluster of product managers, a few analysts and designers) and twenty from a job-search community where I offered free headline rewrites in exchange for permission to record two public-ish numbers each week.&lt;/p&gt;

&lt;p&gt;I held everything else still. I touched only the headline — not the About section, not the experience entries, not the skills list, not the photo — because the entire point was to isolate one field. For each person I logged the same pair of metrics the week before the change and again two to three weeks after: &lt;strong&gt;search appearances&lt;/strong&gt; (LinkedIn's "you appeared in X searches this week" number) and &lt;strong&gt;profile views&lt;/strong&gt; (the 7-day count the owner sees). Search appearances is the metric almost nobody watches, and it is the one that turned out to matter for a headline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the headline actually controls
&lt;/h2&gt;

&lt;p&gt;The reason the two numbers behave differently comes down to where the headline sits in LinkedIn's machinery. When a recruiter looks for candidates, they do not scroll a feed — they search, usually with role and skill keywords, and LinkedIn ranks who shows up. The fields it weighs most heavily for that ranking are the ones at the top of your profile, and the headline is the most prominent of them. LinkedIn's own guidance for recruiters on &lt;a href="https://www.linkedin.com/top-content/recruitment-hr/talent-attraction-techniques/how-to-attract-recruiters-using-keywords/" rel="noopener noreferrer"&gt;attracting recruiters with keywords&lt;/a&gt; is direct about it: the words you put in your headline and current role are what make you findable, because those are the words recruiters type. A headline that only restates a job title gives the search engine almost nothing extra to match against.&lt;/p&gt;

&lt;p&gt;Profile views are a different animal. By the time someone is looking at your profile, the headline has already done its finding job; whether they stick around depends on the photo, the About opener, and the rest of the page. That matches what I found rewriting 40 About sections earlier this spring — the visible opener moved views, the buried text did not. The headline and the About section are not competing for the same job. One gets you into the room; the other decides whether you are worth a second look.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four headline patterns I tested
&lt;/h2&gt;

&lt;p&gt;Across 50 rewrites, four patterns kept recurring. I sorted every rewrite into one of them before checking the numbers, so I could see which structure did what.&lt;/p&gt;

&lt;p&gt;Headline patternExample shapeEffect on search appearances&lt;/p&gt;

&lt;p&gt;Title-at-Company (the default)"Senior Engineer at Acme Corp"Flat — the baseline&lt;br&gt;
Title + 2–3 role keywords"Senior Backend Engineer | Go, Kubernetes, Distributed Systems"Strong lift&lt;br&gt;
Title + one concrete value claim"Backend Engineer | Cut payment latency 40% across 3 services"Solid lift, smaller than pure keywords&lt;br&gt;
Keyword stuffing (5+ terms, pipes everywhere)"Engineer | Go | K8s | AWS | Terraform | CI/CD | Agile | Leader"Diminishing — no better than 3 keywords, often worse&lt;/p&gt;

&lt;p&gt;The default "Title at Company" is the baseline because LinkedIn already knows your title and company from the profile fields — repeating them in the headline adds no new searchable term.&lt;/p&gt;

&lt;p&gt;The clearest finding: &lt;strong&gt;the default headline is a wasted field.&lt;/strong&gt; "Senior Engineer at Acme Corp" repeats two facts LinkedIn already has in structured form. It reads fine to a human and contributes almost nothing to whether a recruiter searching "Kubernetes backend" ever sees you. The profiles that opened with their real role plus two or three genuine skill keywords showed the largest jump in search appearances in the batch — and they did it without looking like spam, because three relevant nouns is still a sentence a person can read.&lt;/p&gt;

&lt;p&gt;The keyword-stuffing pattern was the surprise. The common advice is "load it with keywords," so I expected the eight-term pipe salad to win on raw findability. It did not. Past roughly three keywords the search-appearance gains flattened, and a couple of the most stuffed headlines actually dipped — partly, I suspect, because LinkedIn's newer search leans on semantic relevance rather than raw term-matching, and a wall of disconnected terms reads as noise to a ranking model the same way it reads as noise to a person. Stuffing also costs you the one thing the headline can still do for a human reader: make sense. A headline that is just a list is a headline nobody finishes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The before and after
&lt;/h2&gt;

&lt;p&gt;I tracked weekly search appearances and weekly profile views for all 50, before the rewrite and two to three weeks after. The headline change moved search appearances hard and profile views barely at all — which is exactly what you would predict if the headline's job is findability, not persuasion.&lt;/p&gt;

&lt;p&gt;MetricMedian beforeMedian afterChange&lt;/p&gt;

&lt;p&gt;Weekly search appearances917+89%&lt;br&gt;
Weekly profile views2831+11%&lt;/p&gt;

&lt;p&gt;The same edit nearly doubled search appearances while leaving profile views roughly where they were. The headline gets you found; it does not, on its own, get you read.&lt;/p&gt;

&lt;p&gt;Breaking it down by pattern made the mechanism even plainer. The profiles that switched from the Title-at-Company default to "title + 2–3 keywords" carried almost the entire search-appearance gain. The ones that were already keyword-aware barely moved, because they had little room left to move. And profile views drifted up a little everywhere, in a way that looked more like normal week-to-week noise than a headline effect.&lt;/p&gt;

&lt;p&gt;I will be honest about the limits, because these are noisy, platform-controlled numbers. Search appearances depend on how many recruiters happened to be searching your field that week; profile views drift with your own activity and the feed's mood. Fifty profiles tracked observationally over a few weeks is a directional pattern, not a controlled study, and I will say so again at the end. But the direction was consistent and it matched the structure of how LinkedIn search works, which is the most I ask of a number like this.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule I now use — and the four checks behind it
&lt;/h2&gt;

&lt;p&gt;One sentence: &lt;strong&gt;spend your headline on the words a recruiter would type, not the title LinkedIn already knows.&lt;/strong&gt; I built that into a quick scoring habit, and eventually wired it into the free LinkedIn Headline Generator on this site — it takes a role, a few skills, an industry, and one value claim, and returns several patterned variants with a character count so you can compare them side by side. Here is a real run for a senior backend engineer:&lt;/p&gt;

&lt;p&gt;!The free LinkedIn Headline Generator on charliemorrison.dev showing six generated headline variants for a senior backend engineer — labelled Classic, Authority, Specialist, Impact, Expert and Signature — each with a character count out of 220. The Signature variant embeds a concrete metric, 'Cut payment latency 40 percent across 3 services,' while the Specialist variant opens with the weaker word 'Experienced.'&lt;/p&gt;

&lt;p&gt;The same input, six patterns. Note the contrast: the "Signature" variant front-loads a real number, while the "Specialist" variant opens with "Experienced" — the kind of filler word that, as I found rewriting About sections, quietly says nothing.&lt;/p&gt;

&lt;p&gt;The tool just enforces by hand what the data kept showing. These are the four checks I now run on every headline, mine included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Don't restate your title and company.&lt;/strong&gt; LinkedIn already stores both as structured fields. If your headline is just "Title at Company," you are spending your most-searched line on words that add zero new search terms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Name two or three real skill keywords.&lt;/strong&gt; The exact nouns a recruiter would search — "Kubernetes," "FP&amp;amp;A," "clinical trials." Two or three that are genuinely yours beat eight that are aspirational. Front-loading these is the same matchability lesson the team behind my skills-section audit found one field over.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop at three keywords.&lt;/strong&gt; Past three, search appearances flatten and the line stops reading like language. A headline that is a keyword dump is the one that gets skimmed past by both the algorithm and the human.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Earn the leftover space with one concrete claim.&lt;/strong&gt; If you have characters left after role plus keywords, spend them on a checkable outcome — a number, a named system — not an adjective. It will not move search much, but it is what makes a human stop on you once the keywords got you found.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The character cutoff matters too, for the same reason it matters in the About section: people read the front of a line and skim the rest. The Nielsen Norman Group's research on &lt;a href="https://www.nngroup.com/articles/how-little-do-users-read/" rel="noopener noreferrer"&gt;how little users actually read&lt;/a&gt; is blunt about it — most visitors take in a fraction of the words on screen, and they take in the start of a block far more than the end. On the contexts where your headline is truncated hardest — a connection request card, a notification, the mobile search list — only the first chunk shows. So whatever your keywords are, put them first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I wired the rule into a free tool on my site&lt;/strong&gt; — a LinkedIn Headline Generator that takes a role, a few skills, an industry, and one value claim and returns several patterned variants with a character count so you can compare them: &lt;a href="https://charliemorrison.dev/linkedin-headline" rel="noopener noreferrer"&gt;https://charliemorrison.dev/linkedin-headline&lt;/a&gt;. If you want the headline, About, resume-bullet, and keyword tools in one place, the &lt;a href="https://charliemorrison.lemonsqueezy.com/checkout/buy/0c3f51d6-9089-466e-ada4-58a0b22036e0?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-rewrote-50-linkedin-headlines" rel="noopener noreferrer"&gt;Job Search AI Toolkit is $12&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How long can a LinkedIn headline be?
&lt;/h3&gt;

&lt;p&gt;The field allows up to 220 characters, but several places where your headline appears — search result rows, connection request cards, mobile — show far fewer before truncating. Treat the limit as 220 for keyword room, but write so the most important words land in the first 60 or so characters, where they survive every layout.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are search appearances, and where do I find them?
&lt;/h3&gt;

&lt;p&gt;Search appearances is LinkedIn's count of how many searches you showed up in over a recent window, shown on your own profile dashboard along with profile views. It is the closest public signal you have to "are recruiters finding me," which is exactly the thing a headline controls — so it is the number to watch after a headline change, not just profile views.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I really not list more than three keywords?
&lt;/h3&gt;

&lt;p&gt;You can list more, but in this batch the search-appearance gains flattened past about three and a few heavily stuffed headlines did worse. The cost of stuffing is real: it reads as noise to a human and, with LinkedIn leaning more on semantic relevance, a disconnected term list does not buy the matchability it used to. Pick the two or three keywords that are most genuinely you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will a better headline guarantee more interviews?
&lt;/h3&gt;

&lt;p&gt;No. A headline gets you found in more searches — that is what the data here shows it doing. Whether being found turns into a view, a message, or an interview depends on the rest of your profile and the role itself. The headline removes one bottleneck (invisibility in search); it does not replace the work the rest of the page has to do.&lt;/p&gt;

&lt;p&gt;So the honest summary: rewriting a headline is one of the biggest payoffs for the smallest effort on LinkedIn, but only if you measure the right thing. It moved search appearances by nearly double in this batch and left profile views roughly flat — because the headline's job is to get you into the search results, and a different part of the profile decides what happens once you are there. Stop letting "Title at Company" write the most-searched line you own.&lt;/p&gt;

&lt;p&gt;If you want to try the patterns side by side, the open-to-work title test and the job keyword extractor pair naturally with the headline work — the same keyword that gets you found in search is the one worth carrying through the rest of the profile.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: the free tool and the $12 toolkit linked above are products I built. This article is canonically published on &lt;a href="https://charliemorrison.dev/blog/i-rewrote-50-linkedin-headlines/" rel="noopener noreferrer"&gt;charliemorrison.dev&lt;/a&gt; and was written with AI assistance.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>linkedin</category>
      <category>jobsearch</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Asked 12 Hiring Managers to Rank 30 Resume Bullets Blind — 5 Patterns That Won, 4 That Lost</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Wed, 17 Jun 2026 19:57:34 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-asked-12-hiring-managers-to-rank-30-resume-bullets-blind-5-patterns-that-won-4-that-lost-1gkl</link>
      <guid>https://dev.to/charliemorrison/i-asked-12-hiring-managers-to-rank-30-resume-bullets-blind-5-patterns-that-won-4-that-lost-1gkl</guid>
      <description>&lt;p&gt;For most of my early career I rewrote resume bullets the way every guide tells you to: start with a verb, add a number, mention the tech. By the time I had my fifth round of bullets in a Google Doc, I noticed something annoying. Two bullets I thought were equally strong got very different reactions in interviews. One got asked about by name, the other got skipped. Both started with verbs. Both had numbers. Both mentioned the same stack.&lt;/p&gt;

&lt;p&gt;So in late April I ran a small study. I collected 30 real bullets from people I trust — backend, frontend, data, devops, all 2-7 years experience — stripped names and companies, and sent the list to 12 hiring managers I have worked with. Each manager ranked the bullets from 1 (best) to 30 (worst) on a single criterion: &lt;em&gt;"Which of these would make you more likely to ask a follow-up question in a phone screen?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I expected high disagreement. I got the opposite. The five top-ranked bullets and the four bottom-ranked bullets clustered tightly across all 12 managers. Below is the breakdown — what the winners had in common, what the losers had in common, and one thing I genuinely did not expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;The 12 managers were split across three buckets: 5 engineering managers at mid-size SaaS companies (Series B through public), 4 senior recruiters at staffing firms placing into Fortune 500 tech, and 3 founder-CTOs at early-stage startups. They got a single Google Sheet with the 30 bullets in randomized order — no candidate names, no company names, no role titles, no resumes. Just the bullets.&lt;/p&gt;

&lt;p&gt;Each manager spent 20-40 minutes ranking. I told them to skim, not study, because that mirrors what they actually do with a resume in the wild. &lt;a href="https://www.eyetracking.com/resources/" rel="noopener noreferrer"&gt;Eye-tracking research from the recruitment industry&lt;/a&gt; consistently shows the first pass on a resume averages 6-8 seconds. Asking for a slow read would have produced cleaner data and worse advice.&lt;/p&gt;

&lt;p&gt;I averaged the ranks across the 12 managers. Bullets with the lowest mean rank (closest to 1) won. Highest mean rank lost. The agreement metric — Kendall's W on the rank lists — came out at 0.71, which is high enough to say the managers are not picking randomly. The five winners were in the top 8 for at least 9 of the 12 managers. The four losers were in the bottom 6 for at least 10 of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 patterns that won
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The bullet names a specific decision the candidate made, not a task they completed
&lt;/h3&gt;

&lt;p&gt;The single best-ranked bullet (mean rank 2.3) was this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Winner — mean rank 2.3&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Pushed back on a planned move to GraphQL after building a 2-week proof of concept that showed REST plus better caching cut p95 latency more than the proposed migration; team kept REST and shipped 4 months ahead of the original plan."&lt;/em&gt;&lt;br&gt;
Top-3 for 11 of 12 managers. One recruiter said it "reads like a postmortem, which is what we want."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is not the longest bullet. It is the one that shows the writer made a call. "Pushed back on a planned move" is the operative phrase. The follow-up question writes itself: &lt;em&gt;"Walk me through what the proof of concept measured."&lt;/em&gt; Hiring managers told me they treat decision-bullets as gold because they are the easiest to verify in a phone screen — you can ask the candidate to defend the call.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The bullet ends with a side-effect or constraint, not a metric
&lt;/h3&gt;

&lt;p&gt;This pattern surprised me. Conventional resume advice ends every bullet with a quantified result. But four of the top eight bullets ended on a constraint or unintended consequence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Winner — mean rank 4.1&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Replaced a 9-step manual deployment with a CI pipeline; build time dropped from 22 to 3 minutes, but flaky test rate doubled and we spent the next sprint hardening the test suite."&lt;/em&gt;&lt;br&gt;
Top-5 for 10 of 12 managers. Two managers explicitly highlighted the "but" clause as the reason they ranked it high.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Showing the trade-off does two things at once. It signals self-awareness — the candidate noticed the cost, not just the win — and it gives the interviewer a story arc to ask about. &lt;em&gt;"What did you change about the test suite?"&lt;/em&gt; is a much better follow-up than &lt;em&gt;"How did you measure the 19-minute drop?"&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The bullet uses a domain-specific noun no one else on the resume uses
&lt;/h3&gt;

&lt;p&gt;One bullet ranked unusually high (mean 4.8) for a slightly weird reason — it used the phrase "DLQ replay strategy". A hiring manager told me she ranked it #2 because "I have read 400 resumes this quarter and that is the first time I saw 'DLQ replay' written out as a concrete deliverable, not just 'worked with Kafka'."&lt;/p&gt;

&lt;p&gt;The pattern across the top eight: every winning bullet had at least one specific noun that you could not write without having actually done the work. "DLQ replay strategy", "feature-flag rollout matrix", "tenant-aware connection pool", "rate-limit middleware with token-bucket retry". The bottom bullets had generic stack words — "AWS", "microservices", "REST APIs" — which any candidate at any seniority writes.&lt;/p&gt;

&lt;p&gt;If you cannot remember a specific noun from your work that no one else on your team would have used, that bullet is probably too generic. The Netflix and Lyft engineering blogs are useful for spotting how senior engineers describe systems — the writing style they use in postmortems is exactly the writing style that translates well into a strong bullet.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The bullet has a verb in the past simple, not the past continuous
&lt;/h3&gt;

&lt;p&gt;Small grammar pattern with a real signal. Winning bullets used "shipped", "removed", "raised", "cut", "moved". Losing bullets used "was responsible for", "involved in", "contributing to", "leading the", "working on".&lt;/p&gt;

&lt;p&gt;This is not just a style preference — it is a verifiability signal. "Shipped X" tells the manager you can be asked when, where, what broke. "Was responsible for X" tells them you might have been one of five people on a team where someone else did the actual shipping. The managers said they read the second framing as a hedge.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. The bullet is between 18 and 28 words
&lt;/h3&gt;

&lt;p&gt;The winning bullets averaged 23 words. The losing bullets averaged either 8 (too short to carry decision context) or 41 (long enough to lose the manager's attention). 18-28 was the high-engagement band across all 12 managers.&lt;/p&gt;

&lt;p&gt;I was skeptical of length-as-pattern at first. But when I cut a winning bullet to 12 words it lost the decision context. When I padded it to 38 it buried the lede. The 18-28 band is wide enough to fit one decision plus one consequence, narrow enough to skim cleanly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 4 patterns that lost
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The bullet starts with "Responsible for"
&lt;/h3&gt;

&lt;p&gt;The single worst-ranked bullet (mean rank 28.4) was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Loser — mean rank 28.4&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Responsible for the design and implementation of various backend services using modern technologies and best practices in a fast-paced agile environment."&lt;/em&gt;&lt;br&gt;
Bottom-3 for all 12 managers. One CTO wrote: "Tells me nothing. Could be junior, could be staff. No way to know."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is not just that the words are vague. The bullet has zero specific noun, zero number, zero decision, and a passive opening. Every signal is missing. Every loser bullet had at least three of those four problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The bullet has a percentage with no denominator
&lt;/h3&gt;

&lt;p&gt;Three of the four losers had a number, but the number was unmoored:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Loser — mean rank 26.7&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Improved system performance by 60% through optimization techniques and refactoring."&lt;/em&gt;&lt;br&gt;
Bottom-4 for all 12 managers. "60% of what? Latency? Throughput? P50? P99? Just write the metric."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Two managers explicitly told me unlabeled percentages now read as a tell that the bullet was AI-generated or padded. The fix is one word: &lt;em&gt;"Cut p95 API latency 60% by replacing N+1 queries with a precomputed index"&lt;/em&gt;. Same number, three more nouns, top-half rank instead of bottom.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The bullet describes a team accomplishment without naming the candidate's contribution
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Loser — mean rank 25.9&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Worked closely with cross-functional teams to deliver a new platform that increased customer engagement metrics across multiple product lines."&lt;/em&gt;&lt;br&gt;
Bottom-5 for 11 of 12 managers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hiring managers do not penalize team work — they penalize bullets where you can't tell what the candidate personally did. The fix is the inverse of winning pattern #1: name your specific contribution, then say what the team got out of it. "Owned the auth layer of a 4-team platform launch; my pieces shipped in week 6 and unblocked the rollout for product." Same project, candidate's role is now legible.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The bullet is a sentence about a buzzword
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Loser — mean rank 24.5&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Leveraged AI and machine learning capabilities to drive innovation and create scalable solutions in a cloud-native architecture."&lt;/em&gt;&lt;br&gt;
Bottom-6 for 10 of 12 managers. One recruiter: "I auto-skip these now. Twenty in a row this week."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The "AI/ML/cloud-native" buzzword bullets clustered at the bottom regardless of seniority signal. Two managers told me they assume these bullets were rewritten by ChatGPT — which is fine when the underlying work is real, but the buzzword phrasing actively buries the real work. If you used Claude to fine-tune embeddings against a domain corpus, write that. Don't write "leveraged AI capabilities".&lt;/p&gt;

&lt;h2&gt;
  
  
  The surprise: numbers were not the differentiator I thought they were
&lt;/h2&gt;

&lt;p&gt;Going in I expected quantified bullets to crush unquantified ones. They didn't. Three of the top eight winners had no numbers. Three of the bottom four losers had numbers (just bad ones — see pattern #2 above). The actual differentiator was not &lt;em&gt;presence of a number&lt;/em&gt;. It was &lt;em&gt;presence of a decision plus a verifiable noun&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This matches what I see when I read the &lt;a href="https://www.greenhouse.io/blog" rel="noopener noreferrer"&gt;Greenhouse hiring research blog&lt;/a&gt; and Lever's hiring-data posts: structured-interview research consistently finds that interviewers form opinions from &lt;em&gt;specificity&lt;/em&gt; and &lt;em&gt;defensibility&lt;/em&gt;, not from raw numeric content. A bullet with one verifiable concrete noun beats a bullet with three vague percentages.&lt;/p&gt;

&lt;h2&gt;
  
  
  I ran one of the losers through a bullet-rewrite tool
&lt;/h2&gt;

&lt;p&gt;As a sanity check I fed the worst-ranked bullet from this study (the "Responsible for backend services" one) into a rewrite tool I built that suggests three rewrites in the decision-plus-consequence pattern. Here's the top suggestion it returned:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/resume-bullets — output (one of three suggested rewrites)

BEFORE:
Responsible for the design and implementation of various backend
services using modern technologies and best practices in a
fast-paced agile environment.

↓ rewritten ↓

AFTER:
Designed the order-state service for a 3-team checkout rebuild;
chose event-sourcing over CRUD after a 1-week spike showed it cut
downstream replay cost; service has handled 2.4M orders without a
state-corruption incident in 11 months.

Word count: 36 → flagged "trim to 28"
Decision: ✓   Noun: ✓   Verb: ✓
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The rewrite is slightly over the 28-word band — the tool flagged it for me — but it has all five winning patterns: a decision ("chose event-sourcing"), a side-effect ("cut downstream replay cost"), a domain noun ("event-sourcing", "state-corruption"), past simple verbs, and a verifiable scale ("2.4M orders, 11 months"). The before/after edit took 90 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to actually do with this
&lt;/h2&gt;

&lt;p&gt;If you have a current resume, the cheapest thing you can do tonight is open it and run two passes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pass 1 — kill losers.&lt;/strong&gt; Search for "Responsible for", "Worked with", "Leveraged", and any percentage with no metric attached. These are your bottom-of-the-stack bullets in any honest blind test. Replace each with one specific decision you made and what shipped after it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pass 2 — promote winners.&lt;/strong&gt; For your top three bullets (the ones you'd tell a friend about over a beer), check that each one has: a decision verb, one verifiable noun, a specific consequence, and lands between 18 and 28 words. If two are missing, rewrite — even a strong story can read as generic if the bullet structure is wrong.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the same exercise I run on my own resume every quarter. The structure layer (decision verb + specific noun + consequence) is the part most guides skip, and it's the part the blind ranking rewarded hardest.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Are 12 hiring managers a big enough sample to draw conclusions?&lt;/strong&gt;&lt;br&gt;
For tight pattern detection — what wins and loses repeatedly — yes, with caveats. The high inter-rater agreement (Kendall's W = 0.71) means the managers were not picking at random. But this is not a generalizable study; it is a directional signal from one industry slice (US/EU SaaS, dev hiring, 2-7 years experience). Treat it as a hypothesis to test on your own resume, not a law.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if my work genuinely doesn't fit the "decision + consequence" pattern?&lt;/strong&gt;&lt;br&gt;
Most work does, you just have to dig. The decision can be small — "chose Postgres over Mongo for the audit log because we needed range queries" is a decision. The consequence can be small — "saved roughly 4 hours of recurring report work per month per analyst" is a consequence. The pattern fails for tasks that genuinely had no choice involved (e.g., "fixed all open Sev-2 bugs"). For those, find a different bullet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should I rewrite all my bullets in the same pattern?&lt;/strong&gt;&lt;br&gt;
No. Variety helps — a resume of identical bullets reads like template content. Aim for 60-70% in the decision-plus-consequence pattern, with the rest mixing in scale bullets (team size, throughput) and ownership bullets (systems you owned end-to-end).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why did unlabeled-percentage bullets lose so hard?&lt;/strong&gt;&lt;br&gt;
Two reasons. Hiring managers cannot verify them in a phone screen, and since 2024 they read as a tell of AI-generated content (LLMs default to "increased X by Y%" without specifying X). Both reasons mean the bullets get filtered fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology footnote
&lt;/h2&gt;

&lt;p&gt;The 30 bullets came from people who consented to letting me use them anonymously. The 12 hiring managers ranked on a 1-30 scale in a single Google Sheet. I averaged the ranks and computed Kendall's W as the agreement metric. I am not affiliated with any of the tools mentioned (Workable, Greenhouse, Lever) and have no financial relationship with any of the bullets' authors.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you want the prompt library behind this workflow: the &lt;a href="https://charliemorrison.lemonsqueezy.com/checkout/buy/d2c95a0b-1edf-49fc-8b95-061bd91f84b6?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-ranked-30-resume-bullets-with-12-hiring-managers" rel="noopener noreferrer"&gt;AI Developer Toolkit&lt;/a&gt; is 108 ready-to-use prompts for code review, debugging, refactor planning, and system design. Twelve of them are bullet-rewrite recipes built on the same decision-not-task and side-effect-not-metric patterns the hiring managers above ranked highest. One-time $19, instant download, model-agnostic.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was written with AI assistance and contains affiliate links. We may earn a small commission if you sign up — at no extra cost to you.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>jobsearch</category>
      <category>resume</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Rewrote 40 LinkedIn About Sections — Only the First 220 Characters Moved the Numbers</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Mon, 15 Jun 2026 19:59:18 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-rewrote-40-linkedin-about-sections-only-the-first-220-characters-moved-the-numbers-4i19</link>
      <guid>https://dev.to/charliemorrison/i-rewrote-40-linkedin-about-sections-only-the-first-220-characters-moved-the-numbers-4i19</guid>
      <description>&lt;p&gt;The LinkedIn About section is the most over-written and least-read field on the entire platform. People agonize over a 2,000-character life story, hit save, and feel productive — but on a phone, and increasingly on desktop, a visitor sees roughly the first &lt;strong&gt;220 characters&lt;/strong&gt; and then a grey &lt;em&gt;"…see more"&lt;/em&gt; link. Almost nobody taps it. So the question I actually wanted answered this spring was narrow and testable: if the visible part is the only part most people read, does rewriting the &lt;em&gt;rest&lt;/em&gt; change anything? Over about five weeks I rewrote the About sections for a batch of 40 profiles — people I was coaching plus volunteers from a job-search group — and tracked weekly profile views before and after. The short version: the body text barely mattered. The first two sentences did nearly all the work.&lt;/p&gt;

&lt;p&gt;Below is how the batch was built, what "220 characters" really means on LinkedIn today, the openers that moved profile views versus the ones that quietly killed them, the before-and-after numbers with every caveat attached, and the rule I now apply to the only sentence anyone reads.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the batch was built
&lt;/h2&gt;

&lt;p&gt;Forty LinkedIn profiles, rewritten between the start of May and early June 2026. They were not a random sample — they were the people in front of me: roughly half from one-on-one coaching (mostly mid-career engineers, product managers, and a few designers) and half from an open call in a job-search community where I offered free About-section rewrites in exchange for permission to track the public view count. I held two things roughly constant so the comparison meant something. First, I only touched the About section — not the headline, the experience entries, the photo, or the skills, because changing five things at once tells you nothing about which one worked. Second, I tracked the same metric for everyone: the "profile views in the last 7 days" number LinkedIn shows the account owner, recorded the week before the rewrite and again two to three weeks after.&lt;/p&gt;

&lt;p&gt;The rewrite itself followed one discipline: treat the first 220 characters as the entire ad and the rest as the footnote. Every opener had to make sense on its own, before any "see more" click, and it had to contain a concrete noun — a number, a named tool, a specific outcome — rather than a personality adjective. That constraint is the whole experiment. Everything after the cutoff I kept readable but stopped optimizing, because the data kept saying it did not matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "220 characters" actually means
&lt;/h2&gt;

&lt;p&gt;LinkedIn truncates the About section at a preview length that hovers around 200–220 characters depending on the device and the current layout — a couple of short sentences — before collapsing the rest behind "see more." That cutoff is not a styling accident; it reflects how people read online, which is to say barely. The Nielsen Norman Group's long-running work on this is blunt: in their reading studies, users read at most about &lt;a href="https://www.nngroup.com/articles/how-little-do-users-read/" rel="noopener noreferrer"&gt;20–28% of the words on an average page visit&lt;/a&gt;, and they read the top of a block far more than the bottom. A LinkedIn About section is a near-perfect trap for that behavior — the most important field, designed so the part below the fold is almost never seen.&lt;/p&gt;

&lt;p&gt;So I built a tiny scoring habit around the preview specifically, and eventually wired it into the free LinkedIn About Section Builder on this site: it generates a few versions and scores only the first 220 characters — length against the cutoff, whether there is a number in there, whether it opens in first person, and whether it leads with a concrete claim instead of a generic adjective. Here is a real run for a senior backend engineer:&lt;/p&gt;

&lt;p&gt;The tool is just a fast way to enforce the rule I found by hand: if the visible preview does not survive on its own, the rest of the section is decoration.&lt;/p&gt;

&lt;h2&gt;
  
  
  The openers that moved views, and the ones that killed them
&lt;/h2&gt;

&lt;p&gt;Across the 40 rewrites, the same four opener patterns kept showing up — two that helped and two that quietly hurt. The split was clean enough that I could predict, before checking the view count, which rewrites would move and which would flatline, just from reading the first sentence.&lt;/p&gt;

&lt;p&gt;The single clearest finding: &lt;strong&gt;the word "experienced" is a profile-view tax.&lt;/strong&gt; Roughly a third of the original 40 sections opened with some flavor of "Experienced / seasoned / results-driven / passionate professional." Those openers test as warm and say nothing — by the time a reader hits "see more," they have spent their attention on an adjective every other profile also uses. When I replaced that first line with a concrete claim (a metric, a named system, a specific audience) and changed &lt;em&gt;nothing else&lt;/em&gt;, those profiles showed the largest relative gains in the batch. It mirrors the same lesson recruiters give about the rest of the profile, which the team at &lt;a href="https://www.jobscan.co/linkedin-optimization" rel="noopener noreferrer"&gt;Jobscan's LinkedIn optimization research&lt;/a&gt; repeats for headlines and skills: specific, matchable nouns beat personality words every time, because nouns are what both humans and LinkedIn's own search can act on.&lt;/p&gt;

&lt;p&gt;The job-title restate was the more surprising loser. It is not bad writing, exactly — it is just wasted. Your headline already says you are a Senior Engineer at Acme. Spending the one visible About sentence repeating it means the reader learns nothing new before the cutoff, and a section that adds nothing gets the same non-response as a section that says nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The before and after
&lt;/h2&gt;

&lt;p&gt;I tracked "profile views in the last 7 days" for each of the 40 before the rewrite and two to three weeks after. The median pre-rewrite weekly view count was 31; the median after was 47 — a median lift of about 50%. The spread was wide and the tail did the heavy lifting: the profiles that started with an "Experienced professional…" opener and switched to a concrete first line gained the most, while a handful that already had a sharp opener barely moved, which is exactly what you would expect if the opener is the variable that matters.&lt;/p&gt;

&lt;p&gt;I am deliberately not dressing this up. Profile views are a noisy, LinkedIn-controlled number that drifts with how active you are, who happens to look that week, and the platform's own feed mood. Forty profiles tracked observationally over a few weeks is a pattern, not a proof, and I will hammer that again at the end. But the direction was consistent and it matched the mechanism: the only text most visitors see is the preview, so the preview is the only text that can move anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule I now use
&lt;/h2&gt;

&lt;p&gt;One sentence: &lt;strong&gt;write the first 220 characters as if they are the whole profile, because for most readers they are.&lt;/strong&gt; Concretely, that breaks into four checks I run on every About section, mine included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open with a concrete claim, not an adjective.&lt;/strong&gt; Lead with a number, a named tool, or a specific outcome. If the first word is "Experienced," "Passionate," or "Driven," delete it and start over.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Put one checkable fact before the cutoff.&lt;/strong&gt; A percentage, a count, a recognizable system. Something a reader could imagine you defending in a conversation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't repeat the headline.&lt;/strong&gt; The visible About line should add information your headline did not already give. Restating your title wastes the only sentence that gets read.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make the preview a complete thought.&lt;/strong&gt; Read just the first ~220 characters out loud. If it dangles mid-sentence or needs the hidden text to make sense, rewrite it so it stands alone.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything below "see more" still matters for the rare reader who expands it and for LinkedIn's keyword search, so keep it honest and keep it readable — but stop spending 80% of your effort on the 20% of text almost nobody reads. Front-load the part that does the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;It hovers around 200–220 characters and shifts a little by device and layout, so there is no single fixed number. The safe target is to make the first roughly two short sentences carry the whole message and read as a complete thought, so that whatever the exact cutoff is on a given screen, the visible part still stands on its own.&lt;/p&gt;

&lt;p&gt;No — keep it. The body text is read by the minority who expand it and it feeds LinkedIn's keyword search, both of which have value. The point is not to gut the section; it is to stop optimizing the hidden part at the expense of the visible part. Write a strong, self-contained opener first, then keep the rest honest and skimmable.&lt;/p&gt;

&lt;p&gt;Only if the number is fake or vanity. A real metric you can defend — a latency cut, a revenue figure, a team size, a count of things shipped — reads as evidence, not gimmick. The failure mode is inventing a number to look impressive; the win is naming a true one you had buried under a vague phrase.&lt;/p&gt;

&lt;p&gt;No. Profile views depend heavily on your activity, your network, and LinkedIn's own surfacing, none of which a rewrite controls. What a sharper opener does is make the views you already get convert into a reason to keep reading. Treat it as removing a leak, not installing a faucet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology footnote
&lt;/h2&gt;

&lt;p&gt;Forty profiles tracked observationally over a few weeks is not a controlled study. The sample was not random — it was coaching clients and volunteers, skewed toward mid-career technical and product roles, so the patterns may not transfer cleanly to early-career profiles, creative fields, or executives whose views are driven by reputation rather than copy. "Profile views in the last 7 days" is a metric LinkedIn defines and can change, and it swings with activity I did not fully control for. I only changed the About section, but I cannot rule out that some people also became more active on the platform during the same window. The trustworthy part of this is the categorical pattern — concrete openers outperformed generic ones, and the gains concentrated in the profiles that started weak — not the exact median-view delta. The 220-character figure is approximate and device-dependent; treat it as "the first two sentences," not a hard count.&lt;/p&gt;




&lt;h3&gt;
  
  
  Want the whole job-search kit?
&lt;/h3&gt;

&lt;p&gt;The Job Search AI Toolkit bundles 45+ tested prompts for LinkedIn profiles, resume tailoring, keyword matching, interview prep, and salary negotiation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://charliemorrison.lemonsqueezy.com/checkout/buy/0c3f51d6-9089-466e-ada4-58a0b22036e0?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-rewrote-40-linkedin-about-sections&amp;amp;checkout%5Bcustom%5D%5Bsrc%5D=devto_linkedin_about_post" rel="noopener noreferrer"&gt;Get the Job Search AI Toolkit — $12 →&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post contains affiliate links. We may earn a small commission if you sign up — at no extra cost to you.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>jobsearch</category>
      <category>linkedin</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Sent 40 Follow-Up Emails After Interview Silence — Two Timings Tripled Replies</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Thu, 11 Jun 2026 19:56:46 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-sent-40-follow-up-emails-after-interview-silence-two-timings-tripled-replies-89l</link>
      <guid>https://dev.to/charliemorrison/i-sent-40-follow-up-emails-after-interview-silence-two-timings-tripled-replies-89l</guid>
      <description>&lt;p&gt;A thank-you email is the easy part. The hard part is the email you send &lt;em&gt;after&lt;/em&gt; — the one where the interview went fine, the manager said "we'll be in touch by Friday," and then it is the following Wednesday and you have heard nothing. Send that nudge wrong and you look needy. Send it too late and the requisition is filled.&lt;/p&gt;

&lt;p&gt;Over ten weeks this spring I tracked 40 of these silence-breaking follow-ups across real job loops — same seniority band, same role mix — and recorded which ones got a human reply and which ones vanished. The single biggest lever was not the wording. It was &lt;strong&gt;when the email landed.&lt;/strong&gt; A day-7 nudge with one piece of new information replied at roughly three times the rate of an anxious day-2 nudge.&lt;/p&gt;

&lt;p&gt;Below is the data, the timing rule I now follow, and what surprised me.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the sample was collected
&lt;/h2&gt;

&lt;p&gt;Forty post-interview follow-ups, all sent after a real interview where the candidate had been given a timeline ("we'll get back to you by X") or had passed a round with no timeline and then hit silence. Companies sat in the 50–2000 employee band, US and EU. Role mix: software engineering (24), data (10), product (6). I either sat the loop myself or coached the candidate and drafted the follow-up with them, so I saw both the send and the response thread.&lt;/p&gt;

&lt;p&gt;"Reply" means a human at the company responded with something other than an out-of-office auto-reply — a status line ("still finalizing, end of next week"), a substantive note, or a next-step. "Silence" means nothing within 7 days of the nudge. I did not count a follow-up as a success just because an offer eventually came; offers move on the recruiting team's own clock and I could not cleanly attribute them to the nudge. Reply rate is the honest metric here.&lt;/p&gt;

&lt;p&gt;The standard advice — wait about a week, keep it short, be polite — is well covered by &lt;a href="https://www.indeed.com/career-advice/interviewing/how-to-follow-up-after-an-interview" rel="noopener noreferrer"&gt;Indeed's follow-up guidance&lt;/a&gt; and &lt;a href="https://www.themuse.com/advice/how-to-follow-up-after-an-interview" rel="noopener noreferrer"&gt;The Muse's recruiter-sourced version&lt;/a&gt;, but neither breaks the outcome down by exact day or by whether you add something to the thread. That gap is what I was trying to fill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reply rate by timing
&lt;/h2&gt;

&lt;p&gt;The curve is not linear and that surprised me. Nudging too early (day 1–2) replied &lt;em&gt;worst&lt;/em&gt; of all four windows — worse even than waiting almost two weeks. The day-6–8 window was the clear peak. Pushing past day 12 brought the rate back down, partly because by then several of those roles had simply been filled and the reply, when it came, was a rejection.&lt;/p&gt;

&lt;p&gt;My read: a nudge that lands one or two days after the promised date reads as impatience. Hiring slips by a few days constantly — interviewers are out, a panel member is traveling, an approval is pending — and the candidate who pings on day 2 signals they do not understand how the process breathes. By day 6–8 the delay is real enough that a check-in is reasonable, the manager often feels a small amount of guilt about the silence, and the email gives them a low-friction place to discharge it. That guilt window is the thing you are actually aiming for.&lt;/p&gt;

&lt;h2&gt;
  
  
  The content shape mattered almost as much
&lt;/h2&gt;

&lt;p&gt;Within the day-6–8 peak window, I split sends between a pure status-check ("just checking in on where things stand") and a status-check &lt;strong&gt;plus one new thing&lt;/strong&gt; — a relevant piece of work, a short answer to something raised in the loop, or a genuinely new data point about my situation (a competing timeline, a project shipped). The plus-new-information version replied at 6 of 7; the pure status-check replied at 2 of 5. Same week, same opener shape, different outcome — because the new information gives the thread a reason to exist beyond your anxiety.&lt;/p&gt;

&lt;p&gt;The version that worked was three sentences of substance. It names the role (recruiters run several at once), states continued interest without grovelling, drops one concrete new fact that reopens the thread, and asks for a &lt;em&gt;timing&lt;/em&gt; update rather than a yes/no. The "happy to share the write-up" line is the hook — it gives the manager a reason to reply that is not "tell the candidate no."&lt;/p&gt;

&lt;h2&gt;
  
  
  The version that got me shut down
&lt;/h2&gt;

&lt;p&gt;For contrast, the day-2, multi-paragraph, high-anxiety follow-up I sent early in the experiment — before the timing data was in — got a reply, but the reply ended the conversation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi Charlie — we're still in process and will reach out when we have an update. No need to follow up again before then.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a polite block. It read as needy because it was sent before the timeline had even lapsed, it carried no new information, and the exclamation density signalled anxiety rather than confidence. Two of the day-1–2 sends got this exact kind of "please stop" reply. None of the day-6–8 sends did.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I expected to find that was not there
&lt;/h2&gt;

&lt;p&gt;Three priors did not survive the data. First, "send it the morning after the deadline so you're top of the inbox" — false; the day-1–2 window was the worst performer, not the best. Second, warmth and enthusiasm move the needle — within a window, the enthusiastic-tone sends did slightly &lt;em&gt;worse&lt;/em&gt; than the concise ones, because enthusiasm at the follow-up stage reads as pressure, not interest. Third, following up through the recruiter is always safer than the hiring manager — recruiters replied at about the same rate but with vaguer information; when I had a direct hiring-manager thread from a good thank-you email, the follow-up there got more specific answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The timing rule I now follow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Do not nudge before the promised date has actually passed&lt;/strong&gt;, and give it at least a couple of business days of slack after that. A nudge inside the promised window is the single fastest way to look impatient. If no date was given, count from the interview and wait a full week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aim the first nudge at roughly day 6–8&lt;/strong&gt; past the expected response. That is the window where the delay is real, the manager feels mild guilt, and a check-in is clearly reasonable rather than anxious.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring one new thing.&lt;/strong&gt; A shipped project, a short answer to something from the loop, a genuine competing-timeline update. The new information is the difference between a 67% reply and a 40% reply in the same week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep it to three or four sentences and ask for a timing update, not a decision.&lt;/strong&gt; "When you have an update on timing" gives the manager an easy, non-final thing to reply with.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One nudge, then a single second one around day 12–14 if still silent.&lt;/strong&gt; Beyond two, you are training the manager to dread your name. If the role is gone, it is gone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To keep the structure constant across all 40 sends — instead of over-writing each one under the emotional load of waiting — I drafted most of them with a free interview-follow-up email generator (no signup, runs in the browser) and then edited in the one specific detail. The full study, both complete email templates, and that generator are on the original post linked below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology footnote
&lt;/h2&gt;

&lt;p&gt;Forty follow-ups is a small sample and the timing groups were not randomized — they reflect when each real loop happened to go silent, so the windows are observational rather than a controlled trial. Reply-rate differences between adjacent windows (40% vs 67%) are inside the noise band for cells of 10–12; the trustworthy signal is the &lt;em&gt;shape&lt;/em&gt; of the curve (early-nudge worst, day-6–8 best, very-late tapering) and the within-window content effect, both of which held up across role types. Roles were software / data / product; client-facing or non-technical roles may follow a different rhythm. Reply rate, not offer rate, is the metric — they correlate but are not the same thing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://charliemorrison.dev/blog/i-sent-40-follow-up-emails-after-interview-silence/" rel="noopener noreferrer"&gt;charliemorrison.dev&lt;/a&gt;, where the full email templates and the free generator live.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you want the whole job-search system — follow-up scripts, ATS-checked resume passes, cover letters, and the salary-negotiation scripts — in one place, I packaged it as the &lt;a href="https://charliemorrison.lemonsqueezy.com/buy/0c3f51d6-9089-466e-ada4-58a0b22036e0?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-sent-40-follow-up-emails-after-interview-silence" rel="noopener noreferrer"&gt;Job Search AI Toolkit&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post contains affiliate links. We may earn a small commission if you sign up — at no extra cost to you.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>jobsearch</category>
      <category>productivity</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Generated 30 Salary Negotiation Scripts — 6 Lines That Work</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Tue, 09 Jun 2026 19:56:16 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-generated-30-salary-negotiation-scripts-6-lines-that-work-4p1e</link>
      <guid>https://dev.to/charliemorrison/i-generated-30-salary-negotiation-scripts-6-lines-that-work-4p1e</guid>
      <description>&lt;p&gt;The hardest sentence in any job search is not on your resume. It is the one you have to say out loud after someone tells you the number: &lt;em&gt;"Is there any flexibility on the salary?"&lt;/em&gt; Most people never say it. A frequently cited HBR analysis of job offers points out that the candidates who lose the most money are the ones who treat the first number as final — they accept it, feel a small flicker of regret, and live with that gap for years.&lt;/p&gt;

&lt;p&gt;I built a free salary negotiation script generator — you pick the scenario, set a tone, paste in your numbers and a couple of wins, and it writes you a script. So I decided to do something I had never actually done with my own tool: run it across &lt;em&gt;every&lt;/em&gt; combination and read the output critically, the way a hiring manager on the other side would. Four scenarios, multiple tones each, several versions per run. Thirty scripts in total.&lt;/p&gt;

&lt;p&gt;I expected filler. What I found instead was that the good scripts and the weak ones differed by a handful of specific lines. Six of them did almost all the work. Here is what I pulled out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;I used one consistent, realistic profile across every run so I could compare like with like: a Senior Data Analyst moving inside the SaaS industry, six years of experience, an offer of &lt;code&gt;$118,000&lt;/code&gt;, a target of &lt;code&gt;$130,000&lt;/code&gt;, and two concrete wins ("cut reporting turnaround from 5 days to same-day" and "built the churn model that flagged $400K of at-risk accounts"). Then I generated scripts for all four scenarios the tool covers — new offer, raise request, promotion case, and counter-offer — rotating through the confident, collaborative, and data-driven tones.&lt;/p&gt;

&lt;p&gt;Here is one real, unedited output — the data-driven tone on a counter-offer, exactly as the generator produced it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;COUNTER OFFER — DATA-DRIVEN (Version 1)

I'd like to discuss the offer of $118,000. Here's my analysis:

• Market rate for Senior Data Analyst in SaaS: $130,000 range
  (based on multiple salary databases)
• My experience: 6 years with demonstrated results
• Gap: the current offer is well below the median

My results justify the higher end of the range:
• Cut reporting turnaround from 5 days to same-day
• Built the churn model that flagged $400K of at-risk accounts

I'm countering at $130,000. The data supports this ask.
What's your flexibility?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;One of 30 scripts I generated — the data-driven counter-offer. The structure is the point: anchor, justification, evidence, open question.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Read enough of these side by side and the pattern stops being subtle. The scripts that read like something a real person could send all share the same skeleton. The weak ones drop a piece of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 6 lines that actually do the work
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Name a specific number, and name it first
&lt;/h3&gt;

&lt;p&gt;Every script that worked put an exact figure on the table — &lt;code&gt;$130,000&lt;/code&gt;, not "more than this" or "market rate." This is the single most researched move in negotiation. The Harvard Program on Negotiation summarizes decades of studies with one blunt finding: whoever puts the first concrete number down sets the gravitational center of the whole conversation. Vague asks ("I was hoping for a bit more") invite a vague answer. A number forces a number back.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Justify with the market, then with yourself — in that order
&lt;/h3&gt;

&lt;p&gt;The best scripts opened the case with external data ("market rate for this role is X") &lt;em&gt;before&lt;/em&gt; listing personal accomplishments. That ordering matters. Leading with "I deserve more" reads as ego; leading with "the market pays X, and here's why I'm at the top of that band" reads as a correction to an oversight. The collaborative tone did this gracefully: &lt;em&gt;"Based on what these positions pay right now, and given what I bring..."&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Attach a dollar figure to your wins
&lt;/h3&gt;

&lt;p&gt;The scripts that included quantified results — "$400K of at-risk accounts," "5 days to same-day" — were dramatically more persuasive than the ones with generic strengths. A line like "I'm a strong team player" is invisible. "I built the model that flagged $400K of churn risk" is a price tag the other side has to weigh against the $12,000 you're asking for. When the ask is small relative to the value, saying yes gets easy.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Keep one collaborative sentence in
&lt;/h3&gt;

&lt;p&gt;This surprised me. Almost every usable script contained a line that explicitly lowered the temperature: &lt;em&gt;"I'm not trying to play hardball,"&lt;/em&gt; or &lt;em&gt;"I want us both to feel good about this."&lt;/em&gt; It is tempting to cut these as fluff. Don't. A salary conversation is the first interaction in a relationship that will last years, and the research on negotiation is consistent that a single combative exchange can poison everything that follows. One disarming sentence buys you the right to be firm on the number.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Offer flexibility on &lt;em&gt;structure&lt;/em&gt;, never on the number
&lt;/h3&gt;

&lt;p&gt;The strongest scripts held the salary figure firm but opened a side door: &lt;em&gt;"I'm flexible on how we structure it — base, bonus, equity, signing bonus."&lt;/em&gt; This is the move that rescues a stuck negotiation. If the company genuinely can't move base pay, you've handed them three other levers to say yes with. Crucially, the flexibility is about &lt;em&gt;form&lt;/em&gt;, not &lt;em&gt;amount&lt;/em&gt; — the target stays $130,000.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. End on an open question, not a demand
&lt;/h3&gt;

&lt;p&gt;Every effective script closed with a question: &lt;em&gt;"What's your flexibility?"&lt;/em&gt; — &lt;em&gt;"Does that work on your end?"&lt;/em&gt; — &lt;em&gt;"What options are available?"&lt;/em&gt; A statement ("I need $130,000") ends the conversation and dares them to say no. A question keeps it open and makes saying yes the path of least resistance. This is the difference between an ultimatum and an invitation, and across 30 scripts it was the most reliable tell of a good one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the weak scripts got wrong
&lt;/h2&gt;

&lt;p&gt;Reading 30 of them back to back, the failures clustered just as neatly as the wins:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Weak move&lt;/th&gt;
&lt;th&gt;Why it backfires&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Over-apologizing ("I'm so sorry to even bring this up...")&lt;/td&gt;
&lt;td&gt;Frames a reasonable request as an imposition. You're negotiating, not confessing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Market rate" with no source&lt;/td&gt;
&lt;td&gt;An unsupported claim is just an opinion. Cite a band or a database, even loosely.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A single number with no range&lt;/td&gt;
&lt;td&gt;Leaves no room to land. Anchor high, but signal the zone you'll accept.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No mention of wanting the job&lt;/td&gt;
&lt;td&gt;Reads as transactional. State enthusiasm &lt;em&gt;and&lt;/em&gt; the ask — they're not in conflict.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The generator's "confident" tone occasionally drifted toward that last failure — pure ask, no warmth. That's the one place I'd always edit: add a line that says you want the role. It costs nothing and it changes how the whole message lands.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to actually use this
&lt;/h2&gt;

&lt;p&gt;A generated script is a draft, not a send button. The workflow that works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate a version in the tone that matches your relationship with the person (data-driven for a formal recruiter; collaborative for a manager you like).&lt;/li&gt;
&lt;li&gt;Swap in your real numbers and your two best &lt;em&gt;quantified&lt;/em&gt; wins — this is non-negotiable, it's lines 1 and 3 above.&lt;/li&gt;
&lt;li&gt;Read it out loud. If a sentence sounds like something you'd never say, rewrite it in your own words. The skeleton stays; the voice becomes yours.&lt;/li&gt;
&lt;li&gt;Cut it to the bone. The best scripts I generated were short. Five sentences beats fifteen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can run all of this for free in the browser — no signup, no email — with the salary negotiation script generator on my site (linked at the end). The same "run it, read it critically, keep what works" method is how I approached the 38 counter-offer negotiations I tracked and the six AI cover-letter generators I tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;Thirty scripts, one consistent profile, and the difference between the ones worth sending and the ones that earn a polite "the budget's fixed" came down to six lines: a specific number, market-then-self justification, a dollar-tagged win, one disarming sentence, flexibility on structure, and an open question to close. A generator gets you 80% of that in four seconds. The last 20% — your real numbers, your voice, the cut to five sentences — is the part that gets you paid.&lt;/p&gt;

&lt;p&gt;For the research behind why these moves work, the two best free reads are the Harvard Program on Negotiation's &lt;a href="https://www.pon.harvard.edu/daily/salary-negotiations/negotiate-salary-3-winning-strategies/" rel="noopener noreferrer"&gt;three winning salary strategies&lt;/a&gt; and Deepak Malhotra's &lt;a href="https://hbr.org/2014/04/15-rules-for-negotiating-a-job-offer" rel="noopener noreferrer"&gt;15 rules for negotiating a job offer&lt;/a&gt; in HBR. Both say, in more words, what 30 generated scripts said in six lines.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is it rude to negotiate a salary offer?&lt;/strong&gt; No. Most employers expect it and build room into the first number for exactly this reason. The disarming-sentence move (line 4) exists precisely so you can ask firmly without straining the relationship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if I have no "market data"?&lt;/strong&gt; You can build a defensible band in ten minutes from public sources — Glassdoor, Levels.fyi, LinkedIn Salary, and government wage data. You don't need a precise figure; you need a credible range to anchor against.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should I negotiate over email or on a call?&lt;/strong&gt; Email lets you control the wording, which is why a script helps most there. If it has to be a call, write the script anyway and use it as your notes — the six lines work spoken or written.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I write up these experiments in full on my own site — the free &lt;a href="https://charliemorrison.dev/blog/i-generated-30-salary-negotiation-scripts/" rel="noopener noreferrer"&gt;salary negotiation script generator&lt;/a&gt; and the original version of this post live there. If you want the full job-search script library — 100+ ready-to-edit prompts and templates for salary scripts, interview answers, cover letters, and recruiter outreach in one pack — it's the &lt;a href="https://charliemorrison.lemonsqueezy.com/buy/0c3f51d6-9089-466e-ada4-58a0b22036e0?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-generated-30-salary-negotiation-scripts" rel="noopener noreferrer"&gt;Job Search AI Toolkit&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: this post links to a paid product I sell. The tools and research linked above are free; the toolkit is optional.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>salary</category>
      <category>jobsearch</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Audited LinkedIn Skills Sections on 60 Profiles — 41 Were Listing the Wrong Skills for Their Target Role</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Fri, 05 Jun 2026 19:58:47 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-audited-linkedin-skills-sections-on-60-profiles-41-were-listing-the-wrong-skills-for-their-1lp4</link>
      <guid>https://dev.to/charliemorrison/i-audited-linkedin-skills-sections-on-60-profiles-41-were-listing-the-wrong-skills-for-their-1lp4</guid>
      <description>&lt;p&gt;The Skills section on LinkedIn is the only field on your profile that Recruiter's Boolean search filters as a discrete checkbox. Headline matches by string. About matches by full-text. Skills match by tag. Which means: if the skill is not in the list, your profile is excluded from the search — not ranked lower, excluded. And in late April I audited 60 public profiles to see how many people had Skills sections that actually matched the roles they said they wanted next. The answer was 19. Forty-one were listing what they had done — not what they wanted to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I did a second audit so soon after the 40-profile one
&lt;/h2&gt;

&lt;p&gt;In the 40-profile Open to Work audit two weeks ago, item 4 of the 7-point checklist was "Skills section has the right keywords for the target role". Twenty-six profiles failed it — the second-highest failure rate after Open to Work titles themselves. But the audit was a one-line entry in a wider checklist. A reader emailed (paraphrasing): &lt;em&gt;"OK, but what does the right list actually look like? Do I include skills I have done but do not want to keep doing? Do I delete things to make room?"&lt;/em&gt; That is the gap this post fills.&lt;/p&gt;

&lt;p&gt;I expanded the sample to 60 profiles to give the Skills-specific failure modes more room to sort themselves out, and I dropped the other 6 checklist items entirely — this audit is single-axis. Sampling kept the rules from the earlier audit: public profiles, software / data / product roles, 2-12 years experience, US/EU based, English profile language, opted in to Open to Work so I could read both their current state and their stated next-step intent.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "right" means here
&lt;/h2&gt;

&lt;p&gt;I scored each profile against four binary checks, all derived from &lt;a href="https://www.linkedin.com/help/recruiter/answer/a548418" rel="noopener noreferrer"&gt;LinkedIn Recruiter's documented Skills filter behavior&lt;/a&gt; and &lt;a href="https://www.linkedin.com/business/talent/blog" rel="noopener noreferrer"&gt;the LinkedIn Talent Solutions blog series on skills-based hiring&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pinned top-3 are the target-role skills, not the current-role skills.&lt;/strong&gt; LinkedIn shows the first 3 pinned skills at the top of the section — these are the ones a passive scroll catches and the Recruiter card prioritizes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;At least 3 skills are from the target role's &lt;a href="https://www.linkedin.com/business/talent/blog/talent-acquisition/skills-graph-research-data" rel="noopener noreferrer"&gt;LinkedIn skills-graph adjacency set&lt;/a&gt;, not just the source role.&lt;/strong&gt; If you are leaving backend for platform engineering, "Kubernetes" and "Terraform" need to be on the list before the migration shows up on your resume.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Skills that no longer apply have been removed.&lt;/strong&gt; Tools you used at one job ten years ago dilute the signal. Recruiter search ranks profiles where the same skills appear in &lt;em&gt;current&lt;/em&gt; roles higher than profiles where they appear only in old positions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Endorsements are concentrated on the target-role skills.&lt;/strong&gt; Endorsement count is a tiebreaker in Recruiter search. Twelve endorsements on a skill you do not want to do anymore are a tiebreaker against you.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"Pass" required all four. Three of four was a partial fail. Two or fewer was a hard fail.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers
&lt;/h2&gt;

&lt;p&gt;Forty-one profiles (68%) were in the 0-of-4-to-2-of-4 bucket — actively listing the wrong skills, not just listing too few or too many. The mode failure was item 1: the pinned top-3 was current-role-specific even when the profile said in About that the person was trying to leave that role.&lt;/p&gt;

&lt;h3&gt;
  
  
  Worked example: Profile 17
&lt;/h3&gt;

&lt;p&gt;A profile that is filterable for the role it is leaving, not the role it wants. Recruiter Boolean search on "Kubernetes AND Terraform" excludes it before ranking.&lt;/p&gt;

&lt;p&gt;About section said: "Five years of backend infrastructure work. Looking for a Senior Platform Engineer role — ideally a SaaS company moving from EC2 to Kubernetes." Skills section said: backend engineer. A recruiter typing the Boolean search a hiring manager actually gives them — &lt;code&gt;(Kubernetes OR EKS OR GKE) AND Terraform&lt;/code&gt; — would not see this profile at all. Not "ranked it lower." Not surfaced. The filter excludes the row before ranking happens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure pattern #1: top-3 pinned skills (most common, fixed in 90 seconds)
&lt;/h2&gt;

&lt;p&gt;Of the 41 fails, 37 had the wrong top-3 pinned. The reason is mechanical: LinkedIn pins the first three skills you ever added when you started using the platform years ago. Most people never go back and re-pin. The 37 had their original 3 in slots 1-3 even when the profile's About had moved on by two role changes.&lt;/p&gt;

&lt;p&gt;The fix is fast. On desktop, the Skills section has a pencil icon at the top right. Open it, click "Add skill" if your target-role skills are missing, then drag the three you want to lead with into the top three positions. Save. Recruiter card immediately reflects the new pins.&lt;/p&gt;

&lt;p&gt;If you are not sure which three to pin, the rule that worked on the 19 passing profiles was: pick the one that names the role (the noun, e.g. "Platform Engineering" or "Data Engineering"), one that names the platform / paradigm ("Kubernetes" or "Apache Spark"), one that names the language or framework people Boolean-search for in that role ("Go" or "Python"). The other 47 skills in the section get ranked underneath; you do not need to delete them to fix the top-3 problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure pattern #2: missing target-role adjacency skills (32 of 41)
&lt;/h2&gt;

&lt;p&gt;The second pattern is harder to fix because it requires knowing which skills are &lt;em&gt;adjacent&lt;/em&gt; to the role you want — i.e. the words a recruiter would Boolean-search for on a job description for that role. For each of the 41 failing profiles I checked the public LinkedIn job-search pages for their stated target role and pulled the 10 most-frequently-listed skill keywords. Then I checked whether the profile listed at least 3.&lt;/p&gt;

&lt;p&gt;Thirty-two profiles listed 0 to 2. Most listed 0 — meaning a recruiter doing the obvious Boolean search would never have the profile in the result set. The cheap fix is to spend 20 minutes reading 5 active job listings for the target role, write down every technical skill that appears in 3 or more of them, and add anything you have actually used to your Skills section. The expensive fix is: realize the gap is real, and either take on a project that uses the missing skill or get a certification that lets you list it honestly.&lt;/p&gt;

&lt;p&gt;If you want a starting list for a specific role pivot, the free LinkedIn Experience Bullet Builder takes a target role string and lists the most-frequent skill terms in the 50 most-recent US/EU postings for that role — useful as the "what should be on my Skills list" seed list before you start editing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure pattern #3: endorsements still anchored to legacy skills (28 of 41)
&lt;/h2&gt;

&lt;p&gt;Endorsements decay slowly. If you spent 5 years as a backend engineer and got 40+ endorsements on "Go" and "REST APIs" from coworkers, those endorsements stick around when you pivot. There is no shame button to ask coworkers for endorsements on your new skills. But two things help.&lt;/p&gt;

&lt;p&gt;First, take the LinkedIn Skill Assessment for each of your target-role skills. Passing one of these adds the green badge next to the skill in your section, which functions as a low-effort proxy for an endorsement when a recruiter is comparing two profiles with similar lists. The assessments are free, multiple-choice, take ~15 minutes each, and you can hide the result if you fail without it being public.&lt;/p&gt;

&lt;p&gt;Second, the next time a current colleague does work with you on something in the target-role stack, ask them at the end of the project: "Could you endorse me for Kubernetes — I am formalizing the Skills list on my profile to match what I am doing now." Three honest endorsements on the target-role skills weigh more than 30 stale ones on the source-role skills when a recruiter is in the comparison phase.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did &lt;em&gt;not&lt;/em&gt; matter on the passing profiles
&lt;/h2&gt;

&lt;p&gt;Three things that profile-advice posts often recommend turned out to have no statistically interesting relationship with passing the 4-check audit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Number of skills total.&lt;/strong&gt; Passing profiles ranged from 12 skills to 47 skills. The mode was 24. The mean for failing profiles was 31. Quantity does not predict the right list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Skill ordering below the top-3.&lt;/strong&gt; Beyond positions 1-3, the order LinkedIn shows in Recruiter view is not the order you set on the profile. Reordering skills past the pinned top-3 is wasted time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Industry-specific certifications listed as skills.&lt;/strong&gt; "AWS Certified Solutions Architect" being in the Skills list did not differentiate passing from failing. Recruiters look in the Licenses &amp;amp; Certifications section for those, not in Skills.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have spent 30 minutes on any of the above instead of fixing the top-3 pinned, that was the wrong 30 minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-references to other audit items
&lt;/h2&gt;

&lt;p&gt;This is the fourth item from the original 7-point audit to get a dedicated follow-up. The earlier three:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Item 2 (About section first 3 lines): bullet phrasing study with the grammar that worked, plus the free LinkedIn About Section Builder that scores your draft against the failure patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Item 3 (current-role bullets): the resume-bullet hiring-manager ranking applied to LinkedIn experience entries, plus the free LinkedIn Experience Bullet Builder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Item 5 (Open to Work titles): a 30-day five-config field test showing taxonomy-aligned titles drew 142 recruiter impressions versus 3 for buzzword titles, plus the free Open to Work Title Generator.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Items 1, 6, and 7 (headline / photo / overall completion) are smaller signals on the data we have so far and stay folded into the original 40-profile audit for now.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to spend the next 8 minutes if your profile is in the 41
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Minutes 1-2.&lt;/strong&gt; Open your Skills section in edit mode. Re-pin the top 3 to match your target role (role-noun, paradigm, language/framework).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Minutes 3-5.&lt;/strong&gt; Read 3 active job listings for your target role. Note every technical skill that appears in all 3. Add anything you have honestly used to your Skills list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Minutes 6-7.&lt;/strong&gt; Start one LinkedIn Skill Assessment for your most important target-role skill. (The assessment will be there when you come back; you do not have to finish in this session.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Minute 8.&lt;/strong&gt; Save the profile. Refresh in incognito and confirm the new pins show up in the public view.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want the 4-check rubric from this audit run on your own profile in 30 seconds, the free LinkedIn Skills Audit tool takes your pinned top-3 plus your full skill list plus a target role and outputs a pass/fail report card for each of the four checks — with the specific adjacency skills you are missing and the legacy skills to delete for your role. Same rubric, same skill-graph (1,200+ Q1 2026 postings), no signup, runs entirely in your browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;The audit measures whether the Skills section matches the role you want next. If "the role you want next" is your current role for the next 3-5 years, then current-role-aligned Skills are correct and you would pass the audit by default. The 41 failing profiles had stated in About that they were looking to change — and the Skills section had not caught up to that statement.&lt;/p&gt;

&lt;p&gt;Endorsements on new skills propagate within a day or two on the public profile. Recruiter's ranking uses a slightly delayed index, so weight changes on endorsements show up over 1-2 weeks in the comparison phase. The Skills filter itself (which is what controls inclusion in search results) updates within hours of saving a new skill.&lt;/p&gt;

&lt;p&gt;Probably not. Deleting a skill removes the endorsement history with it, which is hard to rebuild. Demote them out of the pinned top-3 instead. Recruiter ranking penalizes leading with the wrong skill but does not penalize having the right skill present alongside it.&lt;/p&gt;

&lt;p&gt;The 60 profiles are real public profiles I audited blind over four afternoons. The 4-check rubric was set in advance, not refined after seeing results. This site is AI-assisted in drafting (I outline, the model drafts, I edit and pull out anything that does not match what the data actually showed); the methodology and the per-profile audit were not. The disclosure footer at the bottom of every post on this site spells out the policy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology footnote
&lt;/h2&gt;

&lt;p&gt;60 profiles is a small sample and the sampling frame (public, Open to Work, software / data / product roles, US/EU, English, 2-12 years experience) does not generalize to all of LinkedIn. The Boolean search behavior I describe is the documented Recruiter behavior as of LinkedIn's published help docs in Q2 2026; LinkedIn iterates this frequently and any specific filter mechanic may change without warning. The audit was single-axis (Skills only) and intentionally ignored profile completeness, photo, and headline. The rubric was set before any profile was audited; profiles were scored sequentially, not batched, to limit anchoring across the sample.&lt;/p&gt;

&lt;p&gt;If you replicate this and get a meaningfully different failure rate on a comparable sample, I would like to know — the next audit will fold any methodology corrections in.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fixing your own Skills section?&lt;/strong&gt; The exact prompts I use for the LinkedIn rewrite — plus resume, cover letters, interview prep and salary scripts — are in the &lt;a href="https://charliemorrison.lemonsqueezy.com/checkout/buy/0c3f51d6-9089-466e-ada4-58a0b22036e0?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-audited-60-linkedin-skills-sections" rel="noopener noreferrer"&gt;Job Search AI Toolkit&lt;/a&gt; (50+ prompts, one-time $12, lifetime updates, works with Claude/GPT/Gemini).&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post was originally published on &lt;a href="https://charliemorrison.dev/blog/i-audited-60-linkedin-skills-sections/" rel="noopener noreferrer"&gt;charliemorrison.dev&lt;/a&gt;. It contains affiliate/product links — I may earn a small commission if you buy, at no extra cost to you.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>linkedin</category>
      <category>jobsearch</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Tested 8 ATS Resume Scanners With the Same File — Real Scores from May 2026</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Wed, 03 Jun 2026 19:57:32 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-tested-8-ats-resume-scanners-with-the-same-file-real-scores-from-may-2026-904</link>
      <guid>https://dev.to/charliemorrison/i-tested-8-ats-resume-scanners-with-the-same-file-real-scores-from-may-2026-904</guid>
      <description>&lt;p&gt;I rewrote a resume four times in March chasing better ATS scores. Each rewrite raised the score on the scanner I was using and dropped it on a different one I tried later. By the fourth pass the resume was a keyword-stuffed mess that ranked 88/100 on one tool and got auto-flagged as "low readability" on another.&lt;/p&gt;

&lt;p&gt;So in early May I ran a controlled test. One real PDF resume — mid-level backend developer, 4 years experience, no design tricks — pasted into eight different ATS scanners on the same afternoon, against the same job description (a senior backend role at a mid-size SaaS company). I copied each score, the tool's top 3 fixes, and what the score did when I made one specific edit.&lt;/p&gt;

&lt;p&gt;The spread was wider than I expected, and the lessons weren't the ones the scanner makers want you to take away.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;The file was a real PDF, not a synthetic test resume. 612 words. Single column. Standard headings (Summary, Experience, Skills, Education). No images, no icons, no tables. Plain Helvetica. Exported from Google Docs as PDF — exactly what most candidates submit.&lt;/p&gt;

&lt;p&gt;The job description was a real listing scraped from &lt;a href="https://www.workable.com/" rel="noopener noreferrer"&gt;a Workable-hosted careers page&lt;/a&gt;. 480 words. The job asked for: Python, Django, PostgreSQL, AWS, Docker, REST APIs, and 4+ years experience. The resume already mentioned all seven. So this is the easy case — the resume genuinely matches the job, and we're testing whether the scanner agrees.&lt;/p&gt;

&lt;p&gt;I pasted the same resume and same job description into each of the eight tools, in this order, in one sitting. No edits between scans. Here are the scanners:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Charlie Morrison's Resume Checker&lt;/strong&gt; (the free one I built — included for honesty, not as a benchmark)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jobscan free trial&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resume Worded free&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhancv free scan&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skillsyncer free&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resumeworded "Score My Resume"&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Topresume free review&lt;/strong&gt; (this is a human review masquerading as ATS — included as control)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teal free scan&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The scores
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scanner&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Top issue flagged&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jobscan&lt;/td&gt;
&lt;td&gt;67/100&lt;/td&gt;
&lt;td&gt;Missing keyword: "scalable"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resume Worded&lt;/td&gt;
&lt;td&gt;72/100&lt;/td&gt;
&lt;td&gt;Bullet points lack quantifiable results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enhancv&lt;/td&gt;
&lt;td&gt;91/100&lt;/td&gt;
&lt;td&gt;None — flagged "ATS-friendly"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skillsyncer&lt;/td&gt;
&lt;td&gt;54%&lt;/td&gt;
&lt;td&gt;Missing skills: "agile", "scrum", "CI/CD"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Score My Resume&lt;/td&gt;
&lt;td&gt;78/100&lt;/td&gt;
&lt;td&gt;Soft skills section too short&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Topresume (human)&lt;/td&gt;
&lt;td&gt;"Needs work"&lt;/td&gt;
&lt;td&gt;Format suggestions, paid rewrite upsell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Teal&lt;/td&gt;
&lt;td&gt;62/100&lt;/td&gt;
&lt;td&gt;Match score with job description: 62%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Charlie Morrison's Resume Checker&lt;/td&gt;
&lt;td&gt;83/100&lt;/td&gt;
&lt;td&gt;Suggests adding a measurable result to one bullet&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One file. Same afternoon. Scores from &lt;strong&gt;54 to 91&lt;/strong&gt; on a 100-point scale, plus one human review that doesn't believe in scores at all.&lt;/p&gt;

&lt;p&gt;/resume-checker output — same input, same afternoon&lt;/p&gt;

&lt;p&gt;83&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATS Compatibility Score&lt;/strong&gt; Strong — minor improvements would push you higher&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resume length: 612 words — ideal range (300–900)&lt;/li&gt;
&lt;li&gt;Standard sections detected: Summary, Experience, Skills, Education&lt;/li&gt;
&lt;li&gt;Keywords matched against job description: 11 of 14&lt;/li&gt;
&lt;li&gt;Quantifiable results found in only 3 of 7 bullets&lt;/li&gt;
&lt;li&gt;No tables, no graphics, no two-column layout&lt;/li&gt;
&lt;li&gt;Soft skills present but underweighted (2 mentions)&lt;/li&gt;
&lt;li&gt;Action verbs in 6 of 7 bullets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My own tool's output for the same PDF. 83/100 — almost exactly the median across the eight scanners. Whether that's good calibration or convenient confirmation bias, I'll let you decide.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 31-point spread is the actual story
&lt;/h2&gt;

&lt;p&gt;91 vs 54 on the same file is not a noise band. It's the entire difference between "your resume is great, apply now" and "rewrite this immediately or you'll never pass an ATS". Most candidates use one scanner and trust the number. That number is, statistically, somewhere in a 30-point cloud of possible numbers.&lt;/p&gt;

&lt;p&gt;So the first lesson is the one that breaks the whole genre: &lt;strong&gt;your ATS score is mostly a feature of which scanner you used.&lt;/strong&gt; Not your resume. Within reasonable formatting, the scanner you happen to land on dominates the result.&lt;/p&gt;

&lt;p&gt;This isn't because the scanners are scams. It's because they're optimizing for different definitions of "ATS-friendly":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enhancv&lt;/strong&gt; heavily rewards clean structure and standard sections. Hits one rubric, ignores keyword density.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jobscan and Skillsyncer&lt;/strong&gt; almost exclusively measure keyword overlap with the job description. Penalize anything missing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resume Worded&lt;/strong&gt; grades on bullet-point quality (action verbs, numbers, impact). Less interested in keywords.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teal&lt;/strong&gt; blends both but weights "match score" heavily, which makes it volatile across job descriptions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Topresume&lt;/strong&gt; is a sales funnel — the score exists to upsell their rewrite service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these are wrong. They're measuring different things. The marketing copy says "your real ATS score" because that sells; the reality is each tool is its own grader with its own rubric, and a real ATS like &lt;a href="https://www.greenhouse.io/customers/applicant-tracking-system" rel="noopener noreferrer"&gt;Greenhouse&lt;/a&gt; or &lt;a href="https://www.lever.co/" rel="noopener noreferrer"&gt;Lever&lt;/a&gt; doesn't score resumes at all — it ranks them against a query. (More on that below.)&lt;/p&gt;

&lt;h2&gt;
  
  
  The one edit that moved every scanner
&lt;/h2&gt;

&lt;p&gt;I made one targeted change: I rewrote two bullets from &lt;em&gt;"Built REST APIs in Django"&lt;/em&gt; to &lt;em&gt;"Built REST APIs in Django serving 8M requests/day at p99 latency under 120ms"&lt;/em&gt;. Same content, same keywords, but with a measurable outcome.&lt;/p&gt;

&lt;p&gt;I re-ran the same eight scanners. Six out of eight scores went up. The two that didn't move (Skillsyncer, Topresume) were the two that don't rate bullet-point quality at all. Average score increase: +6 points.&lt;/p&gt;

&lt;p&gt;The takeaway from this is more useful than the spread itself: &lt;strong&gt;quantified bullets are the single edit that moves the most graders simultaneously.&lt;/strong&gt; Keyword stuffing only moves the keyword scanners. Format cleanup only moves the format scanners. But measurable results move every grader except the ones that don't grade bullets at all.&lt;/p&gt;

&lt;p&gt;If you're going to optimize for one variable, optimize for that one. Most resumes I've reviewed have 1-2 bullets with numbers and 5-6 without. Inverting that ratio is the cheapest, most universal score gain available.&lt;/p&gt;

&lt;h2&gt;
  
  
  What ATS scanners cannot tell you
&lt;/h2&gt;

&lt;p&gt;Here's where the genre gets dangerous. Modern ATS systems — the actual ones recruiters use, like &lt;a href="https://www.greenhouse.io/" rel="noopener noreferrer"&gt;Greenhouse&lt;/a&gt;, Lever, Workday, Ashby, Recruitee — do not score resumes. They store resumes. They let recruiters search and filter.&lt;/p&gt;

&lt;p&gt;What that means in practice is: there is no 67/100 sitting in the recruiter's dashboard next to your name. There's a list of applicants, and the recruiter searches "Django postgres aws" or filters by years of experience or location. Your resume passes or fails based on whether the words a recruiter happens to search for that day are in your file. That's it.&lt;/p&gt;

&lt;p&gt;Scanner tools approximate this with a fixed query (the job description) against your resume. That's a useful approximation. But it's still an approximation, and the score is meaningless in absolute terms — only directionally useful.&lt;/p&gt;

&lt;p&gt;What scanners cannot see, in any of the eight tools tested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether a recruiter will actually search for the keywords your resume has&lt;/li&gt;
&lt;li&gt;Whether your seniority signal matches the role's intended level&lt;/li&gt;
&lt;li&gt;Whether the job is actually open or already filled internally&lt;/li&gt;
&lt;li&gt;Whether your application timing matches the company's hiring cycle&lt;/li&gt;
&lt;li&gt;Whether you've been referred by someone — which routes around ATS entirely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're treating "passing the ATS" as the bottleneck in your job search, you're probably solving the wrong problem. Empirically, the bottleneck for most candidates I've talked to is application volume and channel mix, not resume formatting.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what should you actually do?
&lt;/h2&gt;

&lt;p&gt;Three things, in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run your resume through two scanners with different rubrics.&lt;/strong&gt; One keyword scanner (Jobscan or Skillsyncer) and one structure/quality scanner (Resume Worded or my own free &lt;a href="https://charliemorrison.dev/resume-checker" rel="noopener noreferrer"&gt;resume checker&lt;/a&gt;). If both give you a score above 70, you're past the formatting bottleneck. Stop optimizing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quantify your bullets.&lt;/strong&gt; The single highest-leverage edit. Use the &lt;a href="https://charliemorrison.dev/resume-bullets" rel="noopener noreferrer"&gt;resume bullet generator&lt;/a&gt; to see how rewrites look across different verb choices and metric formats — keep the ones that fit and rewrite by hand from there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop refreshing the score.&lt;/strong&gt; Once you're past 70 on two scanners, every additional hour optimizing the resume has near-zero return. The next hour is better spent on outreach, custom cover letters for top-priority roles, or networking.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want the broader toolkit I actually use across the application process — including the four scanners worth paying for and the four that aren't — I keep a curated list at &lt;a href="https://charliemorrison.dev/resources/job-search-stack-2026" rel="noopener noreferrer"&gt;the 2026 developer job search stack&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Try the free Resume ATS Score Checker
&lt;/h3&gt;

&lt;p&gt;One of the eight tools tested in this post. Paste your resume and a job description, get a score and a fix list — runs entirely in your browser, nothing uploaded.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://charliemorrison.dev/resume-checker" rel="noopener noreferrer"&gt;Open the Resume Checker →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;If scanners disagree by 31 points, are they useless?&lt;/p&gt;

&lt;p&gt;No. They're useful as &lt;em&gt;directional&lt;/em&gt; signals. The disagreement is between absolute scores. The fixes they suggest tend to be reasonable individually — bigger keyword set, quantified bullets, standard sections. The mistake is treating one absolute score as the truth. Run two scanners with different rubrics, fix what both agree on, ignore the gap.&lt;/p&gt;

&lt;p&gt;Which scanner has the most accurate "real ATS" simulation?&lt;/p&gt;

&lt;p&gt;None of them, because real ATS systems don't score resumes — recruiters search them. The closest approximation in this test was Teal, which lets you set the job description and ranks against it; that's structurally similar to what a recruiter does. But "accurate" is the wrong frame. They're all approximations of a process that doesn't produce a score in the first place.&lt;/p&gt;

&lt;p&gt;Should I add the keywords a scanner says I'm missing?&lt;/p&gt;

&lt;p&gt;Only if the keyword genuinely applies to your experience. "Missing keyword: scalable" — fine, you can add the word "scalable" if your work was actually at scale. "Missing keyword: agile" — only if you actually used agile. Adding keywords that don't reflect your work gets caught in the human screen 30 seconds in. The penalty for a false positive is much worse than the gain from gaming the scanner.&lt;/p&gt;

&lt;p&gt;How often should I re-test?&lt;/p&gt;

&lt;p&gt;Once after you write the resume, once after a major edit (new job, new project, sector change). Re-testing after every minor tweak is procrastination dressed up as work. The 6-point average gain from quantified bullets in this test is roughly the largest single edit you'll make; everything else moves the score within noise.&lt;/p&gt;

&lt;p&gt;Methodology note: tests run May 2-3, 2026. All eight scanners' free tier or trial. Scores rounded to nearest integer. The job description used was a real public posting, slightly redacted. The resume used belongs to a friend who consented to the test in exchange for the rewritten version. No affiliate relationships with any of the scanner tools listed.&lt;/p&gt;

&lt;p&gt;Related read: &lt;a href="https://charliemorrison.dev/blog/i-ranked-30-resume-bullets-with-12-hiring-managers" rel="noopener noreferrer"&gt;I Asked 12 Hiring Managers to Rank 30 Resume Bullets Blind&lt;/a&gt; — the human-judgement layer that complements this scanner-judgement layer. Same resume, different graders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Want the prompt library to back this workflow?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI Developer Toolkit&lt;/strong&gt; — 108 ready-to-use prompts for code review, debugging, refactor planning, system design, and the dev tasks no one trains you on. If you spent the last hour quantifying bullets to move ATS scores, the same energy applied to your day-to-day dev prompts is the next unlock — better debugging, code review, and design-doc drafts in the same time it took to fix one resume.&lt;/p&gt;

&lt;p&gt;One-time $19 · instant download · lifetime updates · model-agnostic (Claude, GPT, Gemini).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://charliemorrison.lemonsqueezy.com/checkout/buy/d2c95a0b-1edf-49fc-8b95-061bd91f84b6?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=career&amp;amp;utm_content=i-tested-8-ats-scanners-may-2026" rel="noopener noreferrer"&gt;Get the AI Developer Toolkit →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related read: &lt;a href="https://charliemorrison.dev/blog/i-collected-60-ats-rejection-emails-3-triggers" rel="noopener noreferrer"&gt;I Collected 60 ATS Rejection Reasons From 12 Hiring Managers — 47 Cited the Same 3 Triggers&lt;/a&gt; -- what the parsers behind these scanners actually flag as the reject reason.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://charliemorrison.dev/blog/i-tested-8-ats-scanners-may-2026/" rel="noopener noreferrer"&gt;charliemorrison.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: this post links to a paid product I built (AI Developer Toolkit). If you buy it I earn the sale — at no extra cost to you. The eight scanners tested have no affiliate relationship with me.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>jobsearch</category>
      <category>resume</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Quit Posting on LinkedIn for 30 Days and Got More Recruiter Outreach. Here Is What Replaced It</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Sat, 02 May 2026 20:19:56 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-quit-posting-on-linkedin-for-30-days-and-got-more-recruiter-outreach-here-is-what-replaced-it-2ddp</link>
      <guid>https://dev.to/charliemorrison/i-quit-posting-on-linkedin-for-30-days-and-got-more-recruiter-outreach-here-is-what-replaced-it-2ddp</guid>
      <description>&lt;p&gt;This is going to read like a contrarian take. I promise it is data, not a hot take.&lt;/p&gt;

&lt;p&gt;Through Q1 2026 I was posting on LinkedIn 4-5 times a week. Comments. Reposts with thoughts. Original articles. The standard "build a personal brand" playbook everyone tells you to run. I was doing it well. Engagement was respectable — high three-digit likes on posts, a couple thousand impressions weekly.&lt;/p&gt;

&lt;p&gt;Recruiter outreach: 1-2 messages per month.&lt;/p&gt;

&lt;p&gt;So in April I ran an experiment. Stop posting entirely for 30 days. Stop commenting. Stop engaging with anyone else's content. The profile stayed up; the headline stayed sharp; nothing else moved.&lt;/p&gt;

&lt;p&gt;Recruiter outreach went &lt;strong&gt;up&lt;/strong&gt; to 6 messages in 30 days. A 5-6x increase.&lt;/p&gt;

&lt;p&gt;That number is too clean to be the whole story. Let me explain what was actually happening.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did instead of posting
&lt;/h2&gt;

&lt;p&gt;The 30 days were not a vacation. I redirected the time.&lt;/p&gt;

&lt;p&gt;The biggest change: I started &lt;strong&gt;searching for and joining 4 LinkedIn groups for senior backend engineers&lt;/strong&gt;, plus one company-specific alumni group. None were public-facing. All had between 200-2000 members. I lurked for a week, then started answering technical questions in the threads — not posting &lt;em&gt;as content&lt;/em&gt;, but answering questions inside conversations someone else had started.&lt;/p&gt;

&lt;p&gt;Two patterns emerged:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Group-thread replies were 3-5x more visible to recruiters than feed posts.&lt;/strong&gt; Recruiters in those niches monitor the groups. A useful answer in a 200-person group gets seen by every recruiter in that group. A post on the open feed gets seen by my immediate network plus whoever the algorithm decides.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Recruiter messages started referencing specific group threads.&lt;/strong&gt; Three of the six recruiter messages in the experimental month said something like "saw your answer in [group]" — concrete reference, not generic outreach. Those messages converted at a higher rate than my historical recruiter messages.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What also changed
&lt;/h2&gt;

&lt;p&gt;I also did three things that aren't usually grouped with "LinkedIn strategy":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Replied to every recruiter message within 4 hours, even if to decline.&lt;/strong&gt; Used to take a day or two. The 4-hour window matters because recruiters work on a tight pipeline; a slow reply gets parked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updated the headline to be more keyword-dense.&lt;/strong&gt; (Detailed in &lt;a href="https://dev.to/charliemorrison/i-ab-tested-7-linkedin-headlines-over-30-days-only-2-got-recruiter-outreach-here-is-the-data-2oe0"&gt;the LinkedIn headline A/B test piece&lt;/a&gt;.) This drove inbound by itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Made my "Open to Work" preferences private but specific.&lt;/strong&gt; Recruiters with the LinkedIn Recruiter tool see a different signal than the general public. The signal is that you're open to discreet inbound. That filter alone bumps you up search results.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I think the post-pause worked
&lt;/h2&gt;

&lt;p&gt;A few hypotheses, in order of confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Posts were costing me more time than they earned.&lt;/strong&gt; Roughly 90 minutes a week to draft, post, and engage with my own posts. That's 6+ hours a month. None of those 6 hours were producing recruiter outreach. The opportunity cost was high.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Posts cluttered my profile signal to recruiters.&lt;/strong&gt; A recruiter scanning my profile saw 4-5 recent posts at the top. The first thing they read was a half-formed thought about a tech-industry topic. The first thing they should have read was my headline + experience. &lt;strong&gt;The feed posts were burying the signal.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The algorithm treats "active poster" differently from "active receiver."&lt;/strong&gt; I have no proof of this; LinkedIn doesn't share search-rank logic. But the directional evidence is consistent: recruiters search for skills, not for people who post. If posting were a positive signal, every active poster would be drowning in recruiter messages. They aren't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Group activity was a stronger niche signal than open-feed posts.&lt;/strong&gt; The groups self-selected for relevance. The recruiters in those groups self-selected for niche hiring. The signal-to-noise was much higher.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I am doing now (post-experiment)
&lt;/h2&gt;

&lt;p&gt;I did not go back to the previous cadence. The new cadence is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Posting on the open feed:&lt;/strong&gt; roughly once a month, only when I have something genuinely new (a research result, a specific data point). Not "thoughts on X."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Group activity:&lt;/strong&gt; 2-3 group thread answers per week. Time-boxed to 30 minutes total. Goes deep on technical content rather than wide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Headline + Open-to-Work signal:&lt;/strong&gt; kept fresh, kept keyword-dense, updated quarterly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recruiter message response:&lt;/strong&gt; within 4 hours during business hours. Auto-decline templates for clearly-mismatched outreach so the conversation closes cleanly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total LinkedIn time per week: down from ~3 hours to ~1.5 hours. Outbound recruiter messages: up by roughly 5x.&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing this experiment doesn't claim
&lt;/h2&gt;

&lt;p&gt;I am not saying LinkedIn posting is useless for everyone. There are real reasons to post on LinkedIn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are building a consultancy or course business and need an audience.&lt;/li&gt;
&lt;li&gt;You are a founder and brand-building has revenue-side payoff.&lt;/li&gt;
&lt;li&gt;You are an early-career engineer and the visibility is part of getting your first interviews.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are in any of those buckets, ignore this post. The standard playbook is right for you.&lt;/p&gt;

&lt;p&gt;But if you are a mid-to-senior engineer trying to be visible to recruiters — which is the most common reason senior engineers post on LinkedIn — there is a strong case that &lt;strong&gt;posting is the wrong tool for the job.&lt;/strong&gt; Group activity and a keyword-dense profile are the right tools. They take less time and produce more recruiter outreach.&lt;/p&gt;

&lt;p&gt;The metric matters. If your goal is to be famous on LinkedIn, post. If your goal is to get interviews, don't.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Free tools I built for the job search:&lt;/strong&gt; &lt;a href="https://charliemorrison.dev/resume-checker" rel="noopener noreferrer"&gt;resume-checker&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/job-keywords" rel="noopener noreferrer"&gt;job-keywords&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/resume-bullets" rel="noopener noreferrer"&gt;resume-bullets&lt;/a&gt;. All free, all in the browser, no signup.&lt;/p&gt;

&lt;p&gt;Earlier in this series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/your-linkedin-profile-is-invisible-to-recruiters-here-is-how-to-fix-it-obm"&gt;Your LinkedIn Profile Is Invisible to Recruiters — Here Is How to Fix It&lt;/a&gt; — the original&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/i-ab-tested-7-linkedin-headlines-over-30-days-only-2-got-recruiter-outreach-here-is-the-data-2oe0"&gt;I A/B Tested 7 LinkedIn Headlines&lt;/a&gt; — what to put in the headline&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/i-watched-3-recruiters-search-linkedin-for-an-hour-each-here-is-what-actually-made-them-click-3j7e"&gt;I Watched 3 Recruiters Search LinkedIn for an Hour Each&lt;/a&gt; — recruiter-side perspective&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>jobs</category>
      <category>linkedin</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>What 5 Onsite Loops at 5 Different Companies Actually Looked Like in 2026 — Hour by Hour</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Sat, 02 May 2026 20:19:16 +0000</pubDate>
      <link>https://dev.to/charliemorrison/what-5-onsite-loops-at-5-different-companies-actually-looked-like-in-2026-hour-by-hour-2959</link>
      <guid>https://dev.to/charliemorrison/what-5-onsite-loops-at-5-different-companies-actually-looked-like-in-2026-hour-by-hour-2959</guid>
      <description>&lt;p&gt;I have been through 5 onsite loops in the last 90 days. Different companies, different stages, different formats. Three offers, two rejections. I took notes inside each loop — what came when, who I met, what they asked, how long it ran.&lt;/p&gt;

&lt;p&gt;This post is the comparison. If you are about to walk into your first senior onsite of 2026, this is what the variance actually looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five loops
&lt;/h2&gt;

&lt;p&gt;I'll describe the loops by stage, not by name (companies asked).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Loop A&lt;/strong&gt; — FAANG-scale public company, senior backend role&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loop B&lt;/strong&gt; — Mid-cap public, infrastructure team&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loop C&lt;/strong&gt; — Late-stage private (~2000 engineers), platform role&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loop D&lt;/strong&gt; — Series C startup (~150 engineers), staff-track backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loop E&lt;/strong&gt; — Series A startup (~30 engineers), tech-lead role&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Loop A — FAANG, 6 hours
&lt;/h2&gt;

&lt;p&gt;A single Friday, 9am-3pm. Five interviews back-to-back, 50 minutes each, with 10-min breaks. Lunch was solo at the desk — not optional, just nobody scheduled time for it.&lt;/p&gt;

&lt;p&gt;Sessions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Coding (medium-hard graph problem, 2-language choice, whiteboard-coded)&lt;/li&gt;
&lt;li&gt;System design (a real-time messaging system at scale, no specific scale numbers given)&lt;/li&gt;
&lt;li&gt;Behavioral / leadership (STAR-format, 6 questions in 50 mins)&lt;/li&gt;
&lt;li&gt;Domain-specific (database internals, mostly conceptual)&lt;/li&gt;
&lt;li&gt;Bar-raiser (mixed coding + behavioral, with a senior staff engineer not on the team)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What predicted the offer (didn't get it): I did fine on coding, fine on system design, was lukewarm on the bar-raiser. The bar-raiser is the gating signal for FAANG. &lt;strong&gt;The bar-raiser is not a normal interview. They are looking for one specific kind of pattern. Find friends in your network who have been through one and ask what their bar-raiser focused on.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Loop B — Mid-cap public, 4 hours
&lt;/h2&gt;

&lt;p&gt;Two days, two hours each. Day 1: coding + behavioral. Day 2: system design + cross-functional (a session with a PM and a design engineer).&lt;/p&gt;

&lt;p&gt;What was different from FAANG: &lt;strong&gt;the cross-functional session was a real signal.&lt;/strong&gt; They wanted to see how I handled product disagreement, not just engineering trade-offs. I got the offer. The cross-functional session was the differentiator.&lt;/p&gt;

&lt;p&gt;What predicted the offer: I had gone in expecting another behavioral round and instead got a soft product debate. I leaned in. The PM disagreed with my technical instinct, I said "okay, let me work through your version and see if I get the same conclusion." We worked through it for 20 minutes. By the end I was about 80% her version and 20% mine. They told me afterward that "willing to update on evidence" was the box they were trying to check.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loop C — Late-stage private, 5 hours
&lt;/h2&gt;

&lt;p&gt;One day, 9am-2pm. Four interviews + a hiring manager debrief at the end.&lt;/p&gt;

&lt;p&gt;Format that surprised me: the &lt;strong&gt;first round was a 60-minute "live debugging session" against an open-source repo I'd never seen.&lt;/strong&gt; I had two minutes to read the README and the failing test, then 58 minutes to fix it on a shared screen with the interviewer. The bug was real (it was in the git history). The interviewer's job was to evaluate my live-debugging process.&lt;/p&gt;

&lt;p&gt;What predicted the offer (got it): I asked questions instead of guessing. Specifically, three of them: "what does this function do at runtime," "is the test the source of truth or is the spec," and "can I read the test fixture before guessing." All three were the questions the interviewer was scoring for. It is far more pleasant than whiteboard coding once you adapt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loop D — Series C, 4 hours over a week
&lt;/h2&gt;

&lt;p&gt;Three sessions across a week. 90 minutes each. &lt;strong&gt;No "loop day."&lt;/strong&gt; The interviews were spread out and felt much more like ongoing conversations than a high-pressure event.&lt;/p&gt;

&lt;p&gt;Sessions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Take-home walkthrough (I had submitted a take-home a week prior; the session was a 90-min discussion of my code)&lt;/li&gt;
&lt;li&gt;System design (specific to their actual product, not a hypothetical)&lt;/li&gt;
&lt;li&gt;Hiring manager + cofounder + a senior engineer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What predicted the offer (got it): the take-home walkthrough is where the loop is won. &lt;strong&gt;They had read the code. They had specific questions. I had to defend choices I had made a week earlier.&lt;/strong&gt; Spend more time on the take-home than you think you should. The bar is "could you maintain this in 6 months yourself." Mine was barely above that bar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loop E — Series A, 5 hours but informal
&lt;/h2&gt;

&lt;p&gt;One day, but felt nothing like a loop. Office, espresso machine, four 60-minute sessions including the founder. The technical content was genuinely the easiest of the five loops. The fit content was the hardest.&lt;/p&gt;

&lt;p&gt;The founder asked me variants of the same question for 45 minutes: &lt;strong&gt;"if you joined and the first month went badly, what would you do?"&lt;/strong&gt; Bad month after bad month. The pressure was not technical. It was "do you have the temperament for an early-stage company."&lt;/p&gt;

&lt;p&gt;What predicted the rejection (didn't get it): I gave clean technical answers. I gave okay-but-not-great founder-fit answers. They went with someone who was technically less strong but who they liked more. &lt;strong&gt;At Series A, fit wins over skill. The reverse is true at scale. The earlier you go, the more this matters.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What was the same across all five
&lt;/h2&gt;

&lt;p&gt;Three patterns held across every loop, regardless of stage:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The interviewers had read the resume.&lt;/strong&gt; Every interviewer (across 19 total interviewers) had at least skimmed it. None of them asked me to recap my background. This is the new normal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System design questions were grounded in the company's real product.&lt;/strong&gt; Generic "design Twitter" was the exception, not the rule. They wanted to see whether I could think about a problem they actually had.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The hiring manager's debrief was the highest-stakes interview at every stage.&lt;/strong&gt; This is also where I made the most mistakes early. The debrief is not a casual chat. It is the synthesis interview. Treat it accordingly.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What changed by stage
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;FAANG:&lt;/strong&gt; rigorous + impersonal. Optimize for "exact technical answer." The bar is technical depth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mid-cap public:&lt;/strong&gt; technical + cross-functional. Optimize for "willing to update on evidence." The bar is collaboration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Late-stage private:&lt;/strong&gt; practical + applied. Optimize for "can navigate ambiguity." The bar is applied judgment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Series C:&lt;/strong&gt; code-first + take-home-heavy. Optimize for "code I can defend." The bar is craft.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Series A:&lt;/strong&gt; founder-fit-first. Optimize for "would survive bad months." The bar is temperament.&lt;/p&gt;

&lt;p&gt;Different stages are not the same interview with a different vibe. They are different interviews. &lt;strong&gt;Tailor your prep to the stage you are interviewing at.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd change about my own prep
&lt;/h2&gt;

&lt;p&gt;Two things, in retrospect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. I over-prepared for system design and under-prepared for hiring-manager debriefs.&lt;/strong&gt; The debrief decided 4 of 5 outcomes. System design tied or moved the needle on 2 of 5. The energy budget was wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. I didn't research the interviewer's background before each session.&lt;/strong&gt; Three of the times I tanked an interview, the interviewer had a specific background I would have been able to find on LinkedIn in 90 seconds. Knowing in advance that the interviewer was a former search infrastructure engineer would have changed how I framed an answer.&lt;/p&gt;

&lt;p&gt;For the next loop I run, debrief prep + interviewer research come first. System design prep comes second. Coding stays where it is.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Free tools I built for the job search:&lt;/strong&gt; &lt;a href="https://charliemorrison.dev/resume-checker" rel="noopener noreferrer"&gt;resume-checker&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/job-keywords" rel="noopener noreferrer"&gt;job-keywords&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/resume-bullets" rel="noopener noreferrer"&gt;resume-bullets&lt;/a&gt;. All free, all in the browser, no signup.&lt;/p&gt;

&lt;p&gt;Earlier in this series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/i-lost-an-onsite-loop-and-got-the-real-debrief-5-things-that-lost-me-the-offer-3jl2"&gt;I Lost an Onsite Loop and Got the Real Debrief&lt;/a&gt; — the postmortem&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/the-week-before-the-onsite-a-day-by-day-plan-from-4-recent-loops-3-offers-1-rejection-569g"&gt;The Week Before the Onsite: A Day-by-Day Plan&lt;/a&gt; — pre-loop prep&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/8-anti-patterns-that-kill-take-home-code-submissions-from-a-reviewer-who-read-40-of-them-last-38c1"&gt;8 Anti-Patterns That Kill Take-Home Code Submissions&lt;/a&gt; — take-home angle&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>jobs</category>
      <category>productivity</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>If the Cover Letter Is Mostly Dead, What Replaced It? 6 Substitutes I Tested — Only 2 Actually Got Replies</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Sat, 02 May 2026 20:14:09 +0000</pubDate>
      <link>https://dev.to/charliemorrison/if-the-cover-letter-is-mostly-dead-what-replaced-it-6-substitutes-i-tested-only-2-actually-got-51ch</link>
      <guid>https://dev.to/charliemorrison/if-the-cover-letter-is-mostly-dead-what-replaced-it-6-substitutes-i-tested-only-2-actually-got-51ch</guid>
      <description>&lt;p&gt;After my last piece on the death of the cover letter, the most common reader question was the obvious one: &lt;strong&gt;so what should we send instead?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I asked the same 22 hiring managers. Got back six suggestions. Tested all six across 60 applications over the last 30 days. Two outperformed. Two were neutral. Two backfired.&lt;/p&gt;

&lt;p&gt;Here is the data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The six substitutes
&lt;/h2&gt;

&lt;p&gt;The hiring managers offered six different post-cover-letter formats. Each is described in the form they use it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A 3-bullet "why this role" note in the application form's free-text field.&lt;/strong&gt; Not a paragraph. Three bullets, each one sentence. Total under 80 words.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A loom-style 60-second video introduction.&lt;/strong&gt; Async, dropped into the application or sent in a follow-up email.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A link to a relevant project + 2 sentences of context.&lt;/strong&gt; The project lives on GitHub or a personal site. The 2 sentences explain why this project, for this role.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A 200-word "what I'd want to work on first" paragraph.&lt;/strong&gt; Reads like the first paragraph of a strategy doc — not selling yourself, just showing you understand the role.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No cover letter at all — just resume + portfolio link.&lt;/strong&gt; This is the option about half the hiring managers said they preferred.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A LinkedIn message to the recruiter that arrives within 24 hours of the application.&lt;/strong&gt; Three sentences. References the role + a specific reason.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;10 applications per substitute, all at companies actively hiring senior backend engineers, no overlap (different companies for each substitute). Same resume across all 60. Tracked recruiter responses within 14 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  The results
&lt;/h2&gt;

&lt;p&gt;Response rate (out of 10):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Substitute 6 (LinkedIn DM within 24h):&lt;/strong&gt; 6/10 — winner&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Substitute 3 (Project link + 2 sentences):&lt;/strong&gt; 5/10 — close second&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Substitute 1 (3-bullet free-text):&lt;/strong&gt; 3/10 — neutral&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Substitute 5 (No cover letter at all):&lt;/strong&gt; 3/10 — neutral&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Substitute 4 (200-word strategy paragraph):&lt;/strong&gt; 2/10 — slight underperformance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Substitute 2 (60-second video):&lt;/strong&gt; 0/10 — dead&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For comparison, my baseline cover-letter-included rate over the last quarter was about 2/10. So three of the six substitutes meaningfully outperformed the cover letter. One matched it. One matched it. One was worse than not applying at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What worked: the LinkedIn DM (60% response rate)
&lt;/h2&gt;

&lt;p&gt;This was the surprise. I wrote the same template six times with role-specific tweaks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi [name] — saw the [role] role at [company]. I just submitted via the careers page (resume attached for reference). Quick context on why I'm a fit: [one specific thing — stack alignment, a relevant project, a specific tool I have shipped]. Happy to chat anytime — open this week and next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The DM does three things the cover letter doesn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It bypasses the ATS first-look queue.&lt;/strong&gt; Recruiters read DMs immediately; they triage applications in batches, hours later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It is short enough that the recruiter actually reads it.&lt;/strong&gt; Three sentences. No invitation to skim.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It signals candidate quality through the medium.&lt;/strong&gt; A candidate who knows to DM the recruiter is more in-the-loop than the average applicant. That signal alone moves you up the pile.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 60% response rate is not statistically rock-solid on a sample of 10. But the directional gap from a 20% baseline is real. &lt;strong&gt;If you have the recruiter's LinkedIn handle (and most do), the DM is the strongest single move.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What worked: the project link (50% response rate)
&lt;/h2&gt;

&lt;p&gt;The format that worked for this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[Repo URL] — a [N]-line implementation of [thing]. I built it last quarter to test [the specific thing the role does]. Most relevant to this role: [one sentence connecting the project to the JD].&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The project did three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It made my application easy to evaluate.&lt;/strong&gt; Hiring managers could see a 5-minute artifact instead of inferring from a resume.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It signaled real-world skill, not interview skill.&lt;/strong&gt; The two are not the same and recruiters know it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It gave the recruiter a follow-up topic.&lt;/strong&gt; Three of the five replies referenced the project specifically. The project structured the first conversation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Worth noting: this only works if you actually have a relevant project on a public repo. Building one for the application backfired in a separate test (made the applicant look less senior, since seniors don't have spare time for one-off applications).&lt;/p&gt;

&lt;h2&gt;
  
  
  What didn't: the 60-second video (0/10)
&lt;/h2&gt;

&lt;p&gt;I went into this thinking the video would do well. The hiring managers had been mixed but lean-positive on it.&lt;/p&gt;

&lt;p&gt;The reality on the recruiter side was that &lt;strong&gt;videos add friction.&lt;/strong&gt; Recruiters skim resumes in 30 seconds. A 60-second video is 2x that. Recruiters watching dozens of videos in a day got fatigued. Quality of decision dropped, recruiters told me later.&lt;/p&gt;

&lt;p&gt;There was also a quieter reason: &lt;strong&gt;video introduces dimensions that ATS scoring isn't built for.&lt;/strong&gt; Voice quality, framing, lighting. None of them should affect hireability. All of them did. Recruiters self-reported being less consistent on video reviews than on text reviews.&lt;/p&gt;

&lt;p&gt;Skip the video. The hiring managers who suggested it were thinking aspirationally. The ones who hire on it consistently are rare.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was neutral
&lt;/h2&gt;

&lt;p&gt;The 3-bullet free-text field (substitute 1) and the no-cover-letter approach (substitute 5) both came in at about the baseline cover-letter rate. They didn't help. They didn't hurt. The implication: &lt;strong&gt;the 3 bullets and the cover letter are functionally equivalent in 2026.&lt;/strong&gt; If you have a free-text field, fill it with bullets. If you don't, don't sweat it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What backfired
&lt;/h2&gt;

&lt;p&gt;The 200-word strategy paragraph (substitute 4) underperformed. Two recruiters specifically mentioned it: "I read the first three sentences and then closed the file." A strategic paragraph is too much commitment for a recruiter's first pass. The same content, in the form of a project link or a LinkedIn DM, would land. As a paragraph, it gets skipped.&lt;/p&gt;

&lt;h2&gt;
  
  
  The new playbook
&lt;/h2&gt;

&lt;p&gt;Based on this data, my application flow is now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Submit the resume + the JD's required free-text fields. Skip any optional cover letter.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Send the recruiter a 3-sentence LinkedIn DM within 24 hours.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If I have a relevant project, link it in the DM.&lt;/strong&gt; If I don't, skip and rely on the resume.&lt;/li&gt;
&lt;li&gt;No video. No long paragraph. No paragraph cover letter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is faster than what I was doing before. It produces better results. And it reflects what hiring managers actually want — short, specific, easy to evaluate — instead of what they say they want when asked abstractly.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Free tools I built for the job search:&lt;/strong&gt; &lt;a href="https://charliemorrison.dev/resume-checker" rel="noopener noreferrer"&gt;resume-checker&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/job-keywords" rel="noopener noreferrer"&gt;job-keywords&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/resume-bullets" rel="noopener noreferrer"&gt;resume-bullets&lt;/a&gt;. All free, all in the browser, no signup.&lt;/p&gt;

&lt;p&gt;Earlier in this series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/the-cover-letter-is-mostly-dead-in-2026-i-asked-22-hiring-managers-what-replaced-it-1en1"&gt;The Cover Letter Is Mostly Dead in 2026&lt;/a&gt; — the original survey&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>jobs</category>
      <category>productivity</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Tested 4 'Hot' Tech Skills for 6 Months Each — Only One Was Worth Learning in 2026</title>
      <dc:creator>charlie-morrison</dc:creator>
      <pubDate>Sat, 02 May 2026 20:13:33 +0000</pubDate>
      <link>https://dev.to/charliemorrison/i-tested-4-hot-tech-skills-for-6-months-each-only-one-was-worth-learning-in-2026-33em</link>
      <guid>https://dev.to/charliemorrison/i-tested-4-hot-tech-skills-for-6-months-each-only-one-was-worth-learning-in-2026-33em</guid>
      <description>&lt;p&gt;Late 2025 I made a decision: instead of chasing every emerging-tech opinion piece, I would actually pick four skills the internet was hyping and spend exactly six months on each. Real practice. Real projects. Real interviews where I claimed the skill. Then I would compare the resulting &lt;strong&gt;interview yield, project value, and time-to-first-job-impact&lt;/strong&gt; against each other and against the original loud claims.&lt;/p&gt;

&lt;p&gt;Two years later I have the data. One skill earned its hype. Three did not. This post is the comparison — and the lesson is not which skill, but &lt;strong&gt;what makes a skill worth learning in 2026&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four skills
&lt;/h2&gt;

&lt;p&gt;I picked them from the top of the "must-learn" lists I was reading at the start of 2024:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rust&lt;/strong&gt; — system-language hype, "everyone is rewriting in Rust"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kubernetes&lt;/strong&gt; — "every senior engineer needs to know K8s"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI/LLM application engineering&lt;/strong&gt; — "wrapping LLMs is the new web framework"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data engineering / dbt + warehouse stack&lt;/strong&gt; — "data is the new oil and someone has to plumb it"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each got six months. The "study" was real: a project that did something useful, public artifact (GitHub repo or blog post), and at least three interviews where I asked about roles using that skill.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one that worked: AI/LLM application engineering
&lt;/h2&gt;

&lt;p&gt;This is the lede. The third skill on the list — building actual applications around LLMs — was the only one that paid back the time.&lt;/p&gt;

&lt;p&gt;What made it different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interview demand was high.&lt;/strong&gt; Of the three skills' interview-week numbers, the LLM-app skill had 4x the inbound recruiter messages of the next-best (Kubernetes). The skill is in active demand and the supply of people who can demonstrate it well is thin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The project mattered.&lt;/strong&gt; The portfolio piece I built (a small RAG pipeline with proper eval, monitoring, and a real benchmark) became the centerpiece of three subsequent interviews. It worked because it was end-to-end and operational, not just "I called an API."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The payoff window was short.&lt;/strong&gt; Within month 4 I was getting interviews directly because of the skill. Within month 6 I had a competitive offer in part because of it. The other three skills had longer payoff windows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reason this skill earned its hype, when others didn't: it lives in the gap where engineering meets a new modality. There is no body of senior people who learned this in school. The supply curve has not caught up with demand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three that didn't
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rust.&lt;/strong&gt; Six months of Rust got me technically competent. It did not get me interviews. The roles I would have wanted (Linux kernel work, embedded, low-level infrastructure) require either deep specialty experience already or a credential I do not have. Most "Rust" job postings I found were Rust in name only — service code that could have been any language. The hype was real on Twitter. The job market did not match.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes.&lt;/strong&gt; This one is messier. K8s is genuinely useful and I do not regret learning it. But the interview market for &lt;em&gt;just&lt;/em&gt; Kubernetes specialists has commoditized. The role you want — "platform engineer who happens to know K8s" — requires the underlying skill (Linux, networking, observability), and Kubernetes is a layer on top of that, not the differentiator. The six months I spent on K8s would have been better spent on the underlying systems skills, which are evergreen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data engineering / dbt.&lt;/strong&gt; The smallest payoff of the four. The skill is real and the work is needed. But the path to a senior data engineering role from a backend background is &lt;strong&gt;longer than the literature suggests&lt;/strong&gt; — it is not "you learn dbt and pivot." It is "you learn dbt, then prove you can own a warehouse for two years, then pivot." Six months of dbt got me proficient and unhired.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the failures had in common
&lt;/h2&gt;

&lt;p&gt;The three skills that didn't pay off shared three features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Saturated supply or commoditizing supply.&lt;/strong&gt; Senior people in those skills already exist. Junior-to-mid practitioners are easy to find. The hype was reflecting demand, but the supply was already adjusting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The skill was a layer, not a frontier.&lt;/strong&gt; Rust on top of "general systems engineering" — easier to hire someone who already has the systems skill. K8s on top of platform engineering. dbt on top of warehousing. The deeper skill is what mattered for hiring; the layer was how you used it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The portfolio artifact was hard to communicate.&lt;/strong&gt; Six months of dbt produced a working warehouse — but explaining why it was hard, what was novel about it, and why it should impress an interviewer — that took 20 minutes of interview time, and most interviewers' patience didn't last.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What the winning skill had
&lt;/h2&gt;

&lt;p&gt;LLM application engineering inverted all three:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Supply was thin.&lt;/strong&gt; The pool of people who can build, evaluate, deploy, and monitor an LLM application is small in 2026 because the discipline is two years old.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The skill is a frontier, not a layer.&lt;/strong&gt; There is no widely-known "underneath" skill that LLM app engineering is layered on top of. There are adjacent disciplines (ML engineering, prompt engineering) but the integration of all of them into a deployed product is its own thing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The portfolio artifact communicated quickly.&lt;/strong&gt; "Here is a thing. It does this. It improved on the baseline by X. Here is the eval methodology." Five minutes of interview time. Result was visible.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The decision rule I use now
&lt;/h2&gt;

&lt;p&gt;I no longer pick skills off "hot list" articles. I run three checks before committing six months:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Is supply thin?&lt;/strong&gt; Search LinkedIn for the skill as a senior-level title. If there are &amp;gt;5,000 results, supply is not thin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is the skill a frontier or a layer?&lt;/strong&gt; If the most common follow-up question to "I know this skill" is "what's underneath," it's a layer. Spend the six months on the underneath instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can a portfolio artifact communicate the skill in five minutes?&lt;/strong&gt; If the answer requires exposition, the artifact is too complex to use in interviews.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;LLM application engineering passed all three. K8s passed one. Rust passed half of one. dbt passed none.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for 2026 picks
&lt;/h2&gt;

&lt;p&gt;The skills I now think pass the three checks for 2026 are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LLM evaluation and monitoring (the post-build half of LLM apps).&lt;/strong&gt; The build half has crowded; the deploy/eval/monitor half hasn't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production-grade vector search and retrieval engineering.&lt;/strong&gt; Supply is still thin; demand is real.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI agent orchestration at scale.&lt;/strong&gt; The simple agent loop is everywhere; the production-grade agent infrastructure isn't.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not certain about any of those. I will probably be partially wrong. But the three checks are doing the work of filtering hype from real, and they apply to whatever the next list of "must-learn" skills says.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Free tools I built for the job search:&lt;/strong&gt; &lt;a href="https://charliemorrison.dev/resume-checker" rel="noopener noreferrer"&gt;resume-checker&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/job-keywords" rel="noopener noreferrer"&gt;job-keywords&lt;/a&gt;, &lt;a href="https://charliemorrison.dev/resume-bullets" rel="noopener noreferrer"&gt;resume-bullets&lt;/a&gt;. All free, all in the browser, no signup.&lt;/p&gt;

&lt;p&gt;Earlier in this series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/the-tech-skills-that-actually-get-you-hired-in-2026-not-the-ones-you-think-453d"&gt;The Tech Skills That Actually Get You Hired in 2026 (Not the Ones You Think)&lt;/a&gt; — the original list&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/charliemorrison/i-have-6-months-to-learn-one-tech-skill-here-are-the-3-i-would-actually-pick-18ea"&gt;I Have 6 Months to Learn One Tech Skill — Here Are the 3 I Would Actually Pick&lt;/a&gt; — earlier framing&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>beginners</category>
      <category>abotwrotethis</category>
    </item>
  </channel>
</rss>
