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.
Today it's called or any autofill password manager.
The Easy Apply flow, step by step
When the user clicks "Auto-apply" in the extension popup, the content script:
Reads the visible job cards from the.jobs-search-results-listsidebar- For each card, clicks it to open the detail pane (this is a soft nav — no full page load)
Verifies it's Easy Apply by looking for the.jobs-apply-buttonwithdata-live-test-easy-applyattribute. If not, skips.
Clicks Easy Apply. LinkedIn opens a modal with the multi-step form.
Walks the form pages. Each page has different fields — name, email, phone, resume upload, custom screening questions.
Fills known fields from the user's profile (stored in the extension'schrome.storage.local)
Uploads resume by creating aFileobject from the stored blob and dispatching achangeevent on the<input type="file">
Answers screening questions via Groq — sends the question + user's profile summary, expects a single-line answer that matches the input type (short-text, number, radio)
Clicks Submit, waits for the "Application sent" confirmation, closes the modal
Delays 2-5s randomized, moves to the next card
The pattern is boring on purpose. No fancy async pipelines. No parallel tabs. Just a synchronous walk down the list with realistic delays.
The three safety rules that matter
LinkedIn's ML abuse detection is not looking for "does this account use a bot." It's looking for behavioral signatures. Three rules keep AutoApplyMax users under the radar:
Rule 1 — Never faster than a fast human
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 2000 + Math.random() * 3000 ms window. Never a fixed 500ms. That's the giveaway.
Rule 2 — Daily cap at 100-150
Above 150 applications/day from one account, LinkedIn's Retryable-Errors: LIMIT_EXCEEDED 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.
Rule 3 — Only automate what belongs to the user
- Easy Apply on their own account: automated
- Profile data of other users: never scraped
- Sending messages, connection requests: never touched
- Reading job listings: reads what's already visible to the user (their own logged-in search)
- Public post-view counts, follower lists: never scraped
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.
The "form-fill" AI, in one paragraph
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?"
We send the question + a compact JSON summary of the user's profile to Llama 3.3 70B (via (free). No signup needed to start. Or read the full auto-apply guide at autoapplymax.com/blog/how-to-auto-apply-on-linkedin-2026.
Happy to answer any technical questions in the comments — especially interested in stories of other people who built form-filling automations.
SOCIAL SHARE CARD GENERATOR