LinkedIn Easy Apply Bot — Auto-Apply with AI Filters avatar

LinkedIn Easy Apply Bot — Auto-Apply with AI Filters

Pricing

from $200.00 / 1,000 application submitteds

Go to Apify Store
LinkedIn Easy Apply Bot — Auto-Apply with AI Filters

LinkedIn Easy Apply Bot — Auto-Apply with AI Filters

Automatically applies to LinkedIn Easy Apply jobs matching your profile. Filters by language, role relevance, and Language fluency requirements. Fills all form fields using your profile data. Requires a valid LinkedIn session cookie.

Pricing

from $200.00 / 1,000 application submitteds

Rating

0.0

(0)

Developer

NoCanDo

NoCanDo

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Automatically applies to LinkedIn Easy Apply jobs that match your profile. The bot authenticates with your LinkedIn session cookies, searches jobs by keyword and location, filters irrelevant or German-language postings, fills every application form field from your profile data, and submits — all without manual effort.

Powered by Browserbase — a real Chrome browser with a residential IP runs in the cloud. LinkedIn cannot distinguish it from a human user, so bot-detection does not fire.


How it works

  1. Authenticates using your LinkedIn session cookies (no password stored)
  2. Launches a real Chrome browser via Browserbase (residential IP, genuine fingerprint)
  3. Searches across multiple job keywords in your chosen location
  4. Filters each posting by language and role relevance
  5. Fills the Easy Apply form — text fields, dropdowns, radio buttons, salary, cover letter
  6. Submits and saves every result to the Apify dataset

Before you start

1 — Create a Browserbase account

  1. Sign up at browserbase.com
  2. Go to Settings and copy your API Key and Project ID
  3. Paste both into the Actor input fields browserbaseApiKey and browserbaseProjectId

Browserbase provides the real Chrome browser with a residential IP. No separate proxy configuration is needed.

2 — Export your LinkedIn cookies

  1. Log in to linkedin.com in your browser
  2. Open DevToolsApplicationCookieshttps://www.linkedin.com
  3. Export all cookies as a JSON array (use the EditThisCookie extension or any similar tool)
  4. Paste the JSON into the LinkedIn Session Cookies input field

The cookie array must include li_at. Without it the bot cannot authenticate.


Input configuration

FieldTypeDescription
linkedinCookiesstring (JSON)Your LinkedIn session cookies as a JSON array
browserbaseApiKeystring (secret)Your Browserbase API key from browserbase.com/settings
browserbaseProjectIdstringYour Browserbase project ID
profileobjectYour personal info — name, email, phone, city, current title, etc.
experienceobjectTotal years of experience, management years, domain-specific years
skillsYearsobjectMap of skill → years (e.g. {"python": 3, "sql": 4})
preferencesobjectSalary expectation and other form-answer preferences
searchConfigobjectKeywords, location, max jobs per run, date filter, delay settings
dryRunbooleanIf true, identifies matching jobs but does not submit. Use this first.

Example profile

{
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+49123456789",
"city": "Berlin",
"linkedin_url": "https://www.linkedin.com/in/johndoe",
"current_title": "Operations Manager",
"nationality": "Indian",
"gender": "Male",
"age": 35,
"cover_letter": "I am excited to apply for this role..."
}

Example searchConfig

{
"keywords": ["Operations Manager", "Program Manager", "Supply Chain Manager"],
"location": "Germany",
"maxJobsPerRun": 50,
"datePosted": "r604800",
"minDelayBetweenAppsSeconds": 45,
"maxDelayBetweenAppsSeconds": 90,
"dailyApplicationCap": 40
}

datePosted values: r86400 = last 24 h, r604800 = last week, r2592000 = last month


Output

Each applied or skipped job is saved to the Apify dataset:

{
"title": "Operations Manager EMEA",
"company": "Acme GmbH",
"url": "https://www.linkedin.com/jobs/view/1234567890/",
"status": "applied",
"reason": "",
"duration": 47.2
}

status values: applied · dry_run · skipped · error

Skipped and errored jobs include a reason field: "German-language posting", "No Easy Apply button", "Relevance filter: wrong role type", etc.


Session persistence

On the first run, the bot creates a Browserbase Context (a persistent browser profile) and stores its ID in the Apify key-value store. Every subsequent run reuses the same context — same cookies, same fingerprint, same residential IP pool. This means:

  • LinkedIn's session stays alive without re-authentication between runs
  • The browser identity is stable, which greatly reduces the chance of security challenges
  • Do not delete the key-value store between runs if you want to preserve the session

Tips & limitations

  • Run dryRun: true first to verify your cookies and filters before submitting real applications
  • Fresh cookies — LinkedIn session cookies expire every few days. Re-export when the bot reports an authentication failure
  • Rate limiting — the bot waits 45–90 seconds between applications by default to mimic human behaviour
  • Complex forms — some employers add file-upload steps or redirect to external sites. The bot skips these gracefully and logs the reason
  • LinkedIn ToS — automated job applications may violate LinkedIn's Terms of Service. Use responsibly and at your own risk

Browserbase pricing

Browserbase charges per browser-hour (~$0.10–$0.12/hr depending on plan). A typical run of 40 jobs takes 30–45 minutes ≈ $0.05–$0.10 per run. See browserbase.com/pricing for current rates.


Changelog

  • 0.2.0 — Complete architecture overhaul: replaced Apify Residential Proxy + headless Playwright with Browserbase cloud-browser (real Chrome, residential IP, CDP connection). LinkedIn bot-detection no longer fires. Switched back to card-click SPA navigation (most human-like). Added Browserbase Context persistence across runs via Apify KV store. Added JobResult dataclass, exponential-backoff retry helper, per-job 180 s timeout, Actor.set_status_message() progress reporting, and structured summary log.
  • 0.1.30 — Switched to direct URL navigation for job processing: collect all IDs from the search page in one scroll pass, then navigate to each /jobs/view/{id}/ directly. Fixed crash on net::ERR_TUNNEL_CONNECTION_FAILED.
  • 0.1.29 — Completely new "Search Once, Process In-Place" strategy. All jobs processed by clicking their cards to trigger AJAX right-panel updates. Added comprehensive stealth init script.
  • 0.1.28 — Reload search page before every card click. Removed route interceptor.
  • 0.1.27 — Wrapped all page.goto calls in try/except; increased navigation timeout to 90 s.
  • 0.1.26 — Replaced dispatchEvent with Playwright's trusted CDP locator.click().
  • 0.1.25 — Replaced page.goto(&currentJobId=) with dispatchEvent(MouseEvent) on the job card.
  • 0.1.22 — Replaced direct /jobs/view/{id}/ navigation with card-click.
  • 0.1.15 — Fixed LinkedIn job title and company selectors for 2025 redesign.
  • 0.1.8 — Fixed cookie format normalization (sameSite, expirationDate).
  • 0.1.5 — Fixed proxy credential parsing for Playwright.