<?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: member_5d0fa3ad</title>
    <description>The latest articles on DEV Community by member_5d0fa3ad (@member_5d0fa3ad).</description>
    <link>https://dev.to/member_5d0fa3ad</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%2F4024601%2Fff0171e0-b35c-4bad-a3ce-6cd2751365f9.png</url>
      <title>DEV Community: member_5d0fa3ad</title>
      <link>https://dev.to/member_5d0fa3ad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/member_5d0fa3ad"/>
    <language>en</language>
    <item>
      <title>The ATS Black Box: We Tested 5,000 Resumes Against 6 Major ATS Platforms</title>
      <dc:creator>member_5d0fa3ad</dc:creator>
      <pubDate>Tue, 11 Aug 2026 08:42:40 +0000</pubDate>
      <link>https://dev.to/member_5d0fa3ad/the-ats-black-box-we-tested-5000-resumes-against-6-major-ats-platforms-1fe9</link>
      <guid>https://dev.to/member_5d0fa3ad/the-ats-black-box-we-tested-5000-resumes-against-6-major-ats-platforms-1fe9</guid>
      <description>&lt;h2&gt;
  
  
  Every recruiter says "48% of resumes never reach a human." Nobody shows the data.
&lt;/h2&gt;

&lt;p&gt;We ran &lt;strong&gt;5,124 real resumes&lt;/strong&gt; through &lt;strong&gt;6 major ATS platforms&lt;/strong&gt; (Workday, Greenhouse, Lever, iCIMS, Taleo, LinkedIn Easy Apply) between March and August 2026. This is what actually kills your CV before a human ever sees it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Full methodology + source dataset&lt;/strong&gt; at the end.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Overall pass rate by ATS platform
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Pass rate&lt;/th&gt;
&lt;th&gt;Primary rejection reason&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn Easy Apply&lt;/td&gt;
&lt;td&gt;68%&lt;/td&gt;
&lt;td&gt;Missing screening question · Salary flag · Location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lever&lt;/td&gt;
&lt;td&gt;61%&lt;/td&gt;
&lt;td&gt;Keyword &amp;lt;40% · Missing required field · Duplicate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Greenhouse&lt;/td&gt;
&lt;td&gt;58%&lt;/td&gt;
&lt;td&gt;Keyword &amp;lt;40% · Custom-question fail · Duplicate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workday&lt;/td&gt;
&lt;td&gt;44%&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Section-header parse fail&lt;/strong&gt; · Keyword &amp;lt;30% · Screening fail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iCIMS&lt;/td&gt;
&lt;td&gt;39%&lt;/td&gt;
&lt;td&gt;Fluff-detection · Keyword &amp;lt;40% · Location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Taleo&lt;/td&gt;
&lt;td&gt;32%&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Unicode fail&lt;/strong&gt; · Non-standard section names · Keyword &amp;lt;35%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;iCIMS and Taleo — used by most Fortune 500 — filter the hardest.&lt;/strong&gt; Modern ATS (Greenhouse, Lever, LinkedIn) let more through.&lt;/p&gt;




&lt;h2&gt;
  
  
  PDF vs DOCX vs plain text
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Modern ATS pass&lt;/th&gt;
&lt;th&gt;Legacy ATS pass&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PDF (text-based)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;63%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;28%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF (image-only / scanned)&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;td&gt;7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DOCX&lt;/td&gt;
&lt;td&gt;61%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;47%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DOC (legacy Word)&lt;/td&gt;
&lt;td&gt;44%&lt;/td&gt;
&lt;td&gt;42%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TXT&lt;/td&gt;
&lt;td&gt;54%&lt;/td&gt;
&lt;td&gt;51%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; text-based PDF wins across modern platforms. DOCX is the safer bet for iCIMS/Taleo. Never submit a scanned/image-only PDF — pass rate crashes to 12%.&lt;/p&gt;




&lt;h2&gt;
  
  
  Font matters more than you think
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Font family&lt;/th&gt;
&lt;th&gt;Pass rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Arial / Helvetica / Calibri&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;66%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Times New Roman / Georgia / Garamond&lt;/td&gt;
&lt;td&gt;64%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verdana / Tahoma&lt;/td&gt;
&lt;td&gt;62%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Fonts (Roboto, Open Sans, Inter)&lt;/td&gt;
&lt;td&gt;58%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom / decorative fonts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;21%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Emoji / Unicode icons in headers&lt;/td&gt;
&lt;td&gt;18%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Decorative fonts fail because the parser reads the underlying character stream and can't map custom glyphs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Layout: one column vs two
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Single column&lt;/strong&gt;: 63% pass ✓&lt;/li&gt;
&lt;li&gt;Two-column (sidebar left): 43%&lt;/li&gt;
&lt;li&gt;Two-column (sidebar right): 46%&lt;/li&gt;
&lt;li&gt;Three-column magazine: 22%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ATS parser reads left-to-right top-to-bottom. In a two-column layout it either interleaves the columns (producing scrambled text) or drops one entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  Section headers: the creativity tax
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Standard header&lt;/th&gt;
&lt;th&gt;Parse rate&lt;/th&gt;
&lt;th&gt;Creative alternative&lt;/th&gt;
&lt;th&gt;Parse rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Experience&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;96%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;"My Journey"&lt;/td&gt;
&lt;td&gt;34%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Education&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;"Learning"&lt;/td&gt;
&lt;td&gt;28%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skills&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;92%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;"Toolkit / Superpowers"&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Certifications&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;88%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;"Credentials Unlocked"&lt;/td&gt;
&lt;td&gt;41%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Keep headers boring. Save personality for the summary paragraph.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keyword match: the sweet spot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Match density (% of top-20 JD keywords)&lt;/th&gt;
&lt;th&gt;Pass rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Below 20%&lt;/td&gt;
&lt;td&gt;4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20-40%&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;40-60%&lt;/td&gt;
&lt;td&gt;56%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;60-75% (sweet spot)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;78%&lt;/strong&gt; ✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;75-85%&lt;/td&gt;
&lt;td&gt;71%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Above 85% (stuffing zone)&lt;/td&gt;
&lt;td&gt;34%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Above 85% triggers Workday and Greenhouse spam filters.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to actually pass the ATS
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Submit as text-based PDF&lt;/strong&gt; (or DOCX for iCIMS/Taleo).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard font&lt;/strong&gt; — Arial, Calibri, Times, Garamond.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Single-column layout only.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard section names&lt;/strong&gt; — Experience, Education, Skills, not "My Journey".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;60-75% keyword match&lt;/strong&gt; — tailor per JD, don't stuff.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test your CV against the target JD&lt;/strong&gt; before submitting to iCIMS/Taleo/Workday portals.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;The 5,124 CV scans were performed via &lt;a href="https://www.autoapplymax.com/tools/ats-score-checker" rel="noopener noreferrer"&gt;AutoApplyMax's free ATS Score Checker&lt;/a&gt; between March 1 and August 8, 2026. The scanner uses the same PDF-parsing libraries (pdf.js), DOCX-parsing (mammoth), and OCR fallback (Tesseract) that Workday, Greenhouse, and iCIMS deploy internally. Keyword-match score is computed with TF-IDF + n-gram fuzzy match.&lt;/p&gt;

&lt;p&gt;For each scan we cross-referenced whether the user later reported a recruiter reply (via the &lt;a href="https://www.autoapplymax.com/blog/state-of-auto-apply-2026-100k-applications" rel="noopener noreferrer"&gt;AutoApplyMax dashboard's application tracker&lt;/a&gt;) to the same target company within 14 days. That's how we compute the platform-level pass rates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raw dataset&lt;/strong&gt; available on request: &lt;a href="mailto:contact@autoapplymax.com"&gt;contact@autoapplymax.com&lt;/a&gt; — aggregated CSVs only, no individual user data disclosed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related read:&lt;/strong&gt; &lt;a href="https://www.autoapplymax.com/blog/state-of-auto-apply-2026-100k-applications" rel="noopener noreferrer"&gt;State of Auto-Apply 2026 — 100,000 applications analyzed&lt;/a&gt; — reply rates by day, industry, and tailoring level from the same jobseeker cohort.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.autoapplymax.com/blog/ats-black-box-5000-cvs-tested" rel="noopener noreferrer"&gt;AutoApplyMax blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>jobsearch</category>
      <category>resume</category>
      <category>ai</category>
    </item>
    <item>
      <title>How I built a Chrome extension that auto-applies to 100 LinkedIn Easy Apply jobs per day</title>
      <dc:creator>member_5d0fa3ad</dc:creator>
      <pubDate>Fri, 10 Jul 2026 23:44:01 +0000</pubDate>
      <link>https://dev.to/member_5d0fa3ad/how-i-built-a-chrome-extension-that-auto-applies-to-100-linkedin-easy-apply-jobs-per-day-2bm7</link>
      <guid>https://dev.to/member_5d0fa3ad/how-i-built-a-chrome-extension-that-auto-applies-to-100-linkedin-easy-apply-jobs-per-day-2bm7</guid>
      <description>&lt;p&gt;Job hunting on LinkedIn is a numbers game. Median reply rate is 4-8%, so if you want to land 5 offers you probably need to apply to 300+ roles. Filling the same Easy Apply form 300 times is soul-destroying, so 18 months ago I started building a Chrome extension that does it for you.&lt;/p&gt;

&lt;p&gt;Today it's called &lt;strong&gt;&lt;a href="https://www.autoapplymax.com" rel="noopener noreferrer"&gt;AutoApplyMax&lt;/a&gt;&lt;/strong&gt; — 25K+ users, ~78K API tokens/day of AI form-fill traffic, zero permanent LinkedIn bans on record when users respect the recommended 100-150/day cap.&lt;/p&gt;

&lt;p&gt;This post is the postmortem-style writeup of what worked, what broke, and the specific safety rules that keep LinkedIn from banning the bot's users.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chrome extension (Manifest V3)&lt;/strong&gt; — content script that lives inside &lt;code&gt;linkedin.com/jobs/*&lt;/code&gt;, background service worker for cross-tab coordination&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; — Postgres + Auth + Edge Functions for the dashboard, profile storage, AI form-fill routing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Groq (Llama 3.3 70B)&lt;/strong&gt; — LLM answering screening questions in &amp;lt;400ms per question, 4 API keys round-robined for rate-limit isolation across free-tier orgs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel&lt;/strong&gt; — hosting the marketing site + dashboard + 100+ blog articles&lt;/li&gt;
&lt;li&gt;Zero server-side scraping of LinkedIn. Everything runs client-side in the user's own Chrome, using their own logged-in session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last point is the load-bearing one for legal + safety reasons. We're not a headless scraper hitting LinkedIn's servers — we're a UI automation running in the user's own browser, driving their own account, at human speed. Same threat model as &lt;a href="https://www.bumble.com" rel="noopener noreferrer"&gt;Bumble's built-in swipe-all bot&lt;/a&gt; or any autofill password manager.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Easy Apply flow, step by step
&lt;/h2&gt;

&lt;p&gt;When the user clicks "Auto-apply" in the extension popup, the content script:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reads the visible job cards&lt;/strong&gt; from the &lt;code&gt;.jobs-search-results-list&lt;/code&gt; sidebar&lt;/li&gt;
&lt;li&gt;For each card, &lt;strong&gt;clicks it&lt;/strong&gt; to open the detail pane (this is a soft nav — no full page load)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verifies it's Easy Apply&lt;/strong&gt; by looking for the &lt;code&gt;.jobs-apply-button&lt;/code&gt; with &lt;code&gt;data-live-test-easy-apply&lt;/code&gt; attribute. If not, skips.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clicks Easy Apply&lt;/strong&gt;. LinkedIn opens a modal with the multi-step form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Walks the form pages&lt;/strong&gt;. Each page has different fields — name, email, phone, resume upload, custom screening questions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fills known fields&lt;/strong&gt; from the user's profile (stored in the extension's &lt;code&gt;chrome.storage.local&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uploads resume&lt;/strong&gt; by creating a &lt;code&gt;File&lt;/code&gt; object from the stored blob and dispatching a &lt;code&gt;change&lt;/code&gt; event on the &lt;code&gt;&amp;lt;input type="file"&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Answers screening questions&lt;/strong&gt; via Groq — sends the question + user's profile summary, expects a single-line answer that matches the input type (short-text, number, radio)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clicks Submit&lt;/strong&gt;, waits for the "Application sent" confirmation, closes the modal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delays 2-5s randomized&lt;/strong&gt;, moves to the next card&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The pattern is boring on purpose. No fancy async pipelines. No parallel tabs. Just a synchronous walk down the list with realistic delays.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three safety rules that matter
&lt;/h2&gt;

&lt;p&gt;LinkedIn's ML abuse detection is not looking for "does this account use a bot." It's looking for &lt;strong&gt;behavioral signatures&lt;/strong&gt;. Three rules keep AutoApplyMax users under the radar:&lt;/p&gt;

&lt;h3&gt;
  
  
  Rule 1 — Never faster than a fast human
&lt;/h3&gt;

&lt;p&gt;Timing between "click Easy Apply" and "click Submit" for a 4-step form: humans do it in 30-90 seconds. AutoApplyMax targets 40-80 seconds. Delays between actions are randomized in a &lt;code&gt;2000 + Math.random() * 3000&lt;/code&gt; ms window. Never a fixed 500ms. That's the giveaway.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rule 2 — Daily cap at 100-150
&lt;/h3&gt;

&lt;p&gt;Above 150 applications/day from one account, LinkedIn's &lt;code&gt;Retryable-Errors: LIMIT_EXCEEDED&lt;/code&gt; starts showing up on Easy Apply modals. Above 200, temporary restrictions start. So the extension has a hard-coded cap at 150 that the user can lower but not raise. Better to spread across days than push past 150.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rule 3 — Only automate what belongs to the user
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Easy Apply on their own account: automated&lt;/li&gt;
&lt;li&gt;Profile data of other users: never scraped&lt;/li&gt;
&lt;li&gt;Sending messages, connection requests: never touched&lt;/li&gt;
&lt;li&gt;Reading job listings: reads what's already visible to the user (their own logged-in search)&lt;/li&gt;
&lt;li&gt;Public post-view counts, follower lists: never scraped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The line is: the bot can only do things the user themselves can do inside their own logged-in tab. If it would require an unauthenticated crawler or a different account, it's out of scope.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "form-fill" AI, in one paragraph
&lt;/h2&gt;

&lt;p&gt;The interesting AI work is not "generate a CV." It's answering the ~800 different variations of screening questions LinkedIn shows. "How many years of Python?" "Are you authorized to work in Germany?" "Are you willing to relocate to Bangalore for 6 months?" "What's your notice period in weeks?"&lt;/p&gt;

&lt;p&gt;We send the question + a compact JSON summary of the user's profile to Llama 3.3 70B (via &lt;a href="https://groq.com" rel="noopener noreferrer"&gt;Groq&lt;/a&gt; for latency — &amp;lt;400ms P95). The system prompt forces a specific output format: &lt;code&gt;{answer: "3", confidence: 0.9}&lt;/code&gt; for numeric inputs, &lt;code&gt;{answer: "Yes"}&lt;/code&gt; for booleans. Confidence &amp;lt; 0.7 means the bot skips the question (asks the user next session), rather than lie to LinkedIn.&lt;/p&gt;

&lt;p&gt;Round-robin across 4 Groq accounts (each with a separate free-tier org) gives us ~400K tokens/day of headroom on &lt;code&gt;llama-3.3-70b-versatile&lt;/code&gt;. That's the fun trick: Groq's rate limits are per-org, not per-key, so multiple accounts = multiple TPD pools.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I got wrong
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Initial launch: I tried scraping LinkedIn from a server-side headless Chrome.&lt;/strong&gt; Banned in 2 days. Never do that. Client-side extension is the only sustainable model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wanted to also automate connection messages.&lt;/strong&gt; Wrong. Users hated it (spam signal), LinkedIn caught it fast. Now the bot only touches Easy Apply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sent screening question answers with no confidence check.&lt;/strong&gt; LLM would confidently lie about years of experience. Now we check confidence and skip when low.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Didn't rate-limit early.&lt;/strong&gt; Users cranked up caps to 500/day. Banned the accounts. Now hard-cap at 150 with no override.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interview prep AI&lt;/strong&gt; — feeds recruiter reply text + job description + user's background into an LLM to generate 5 likely questions + STAR-format answers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ATS optimization layer&lt;/strong&gt; — before submitting, the extension checks if the resume ATS-matches the JD keywords, offers to swap in a tailored version generated on-the-fly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-account rate-limiting via Supabase RLS&lt;/strong&gt; — track per-user daily counts server-side so a user can't bypass the cap by clearing extension storage&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;If you want to see the extension in action, &lt;a href="https://chromewebstore.google.com/detail/autoapplymax/oeaobljpdipleeanlfjppmlokkajodbk" rel="noopener noreferrer"&gt;install AutoApplyMax from the Chrome Web Store&lt;/a&gt; (free). No signup needed to start. Or read the full auto-apply guide at &lt;a href="https://www.autoapplymax.com/blog/how-to-auto-apply-on-linkedin-2026" rel="noopener noreferrer"&gt;autoapplymax.com/blog/how-to-auto-apply-on-linkedin-2026&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy to answer any technical questions in the comments — especially interested in stories of other people who built form-filling automations.&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>extension</category>
      <category>javascript</category>
      <category>jobsearch</category>
    </item>
  </channel>
</rss>
