# Automate LinkedIn Easy Apply job applications with Puppeteer

Job seekers spend hours manually applying to LinkedIn Easy Apply positions. This skill enables AI agents to automate the search, filtering, resume upload, and application process while respecting conservative answer guardrails and maintaining state across reruns.

## Install

```bash
npx skillstore add ralyodio/linkedin-easy-apply
```

## Metadata

- - Slug: ralyodio-linkedin-easy-apply
- - Version: 1.0.0
- - Author: ralyodio
- - GitHub username: ralyodio
- - License: MIT
- - Repository: https://github.com/ralyodio/agent-skills/tree/main/skills/linkedin-easy-apply-automation
- - Ref: main
- - Supported tools: Claude, Codex, Claude Code
- - Risk level: medium
- - Risk factors: scripts, external\_commands, network, filesystem, env\_access
- - Quality score: 50
- - Quality tier: warning
- - Public page: https://skillstore.pages.dev/skills/ralyodio-linkedin-easy-apply
- - Manifest: https://skillstore.pages.dev/api/skills/ralyodio-linkedin-easy-apply/manifest

## Capabilities

- Search LinkedIn jobs with Easy Apply filter using configurable keywords and location constraints
- Launch Puppeteer with Chromium to interact with LinkedIn job pages reliably
- Upload verified resume PDF to job application forms
- Apply conservative answer rules based on verified resume facts only
- Maintain state across daily reruns to avoid duplicate applications
- Skip unknown required fields, compensation questions, and custom essays

## Use Cases

- Job Search Automation for Busy Professionals: A professional who has limited time can use this skill to automate applying to matching LinkedIn Easy Apply positions while they focus on interview preparation.
- Bulk Applications for Specific Role Types: A developer targeting AI, LLM, or full-stack engineer positions can configure keyword filters and let the automation handle volume applications.
- Daily Job Monitoring Workflow: A recruiter or job hopper can schedule daily reruns with state persistence to catch new postings without reapplying to already-submitted positions.

## Prompt Templates

### Basic LinkedIn Easy Apply Run

```
Run the LinkedIn Easy Apply skill with these settings: search for [KEYWORD] jobs in [LOCATION], upload my resume at [PATH], and apply to up to 10 jobs matching my criteria.
```

### Remote-Only Search with State

```
Execute the LinkedIn Easy Apply workflow with REMOTE_ONLY=1, SEARCHES='Claude|OpenAI|AI engineer', and DRY_RUN=0. Track state to /tmp/linkedin-easyapply-daily/ and report results.
```

### Multi-Day Job Search Campaign

```
Set up a LinkedIn Easy Apply campaign targeting [ROLE_TYPE] positions. Configure MAX_SCAN=80, MAX_APPLY=10, and ensure state persists between runs. Skip any job requiring salary disclosure.
```

### Review Before Submission

```
Run LinkedIn Easy Apply with DRY_RUN=1 first to review which jobs would be matched. After approval, set DRY_RUN=0 to submit applications. Include detailed logging of skipped jobs with reasons.
```

## Limitations

- Cannot handle CAPTCHA, MFA, or identity verification challenges
- May violate LinkedIn Terms of Service leading to account restrictions
- Requires manual operator login once to establish browser profile
- Cannot fabricate applicant facts or answer questions without verified information

## Best Practices

- Always set DRY\_RUN=1 first to preview which jobs will be matched before actual submission
- Manually log into LinkedIn once using a persistent browser profile to avoid repeated authentication
- Use conservative answer rules and skip any job requiring information not verified on your resume

## Anti Patterns

- Do not store LinkedIn credentials in environment variables or scripts - operators should log in manually
- Do not skip CAPTCHA or security prompts - stop execution when these appear to protect your account
- Do not answer compensation questions or custom essays without explicit operator approval

## Security Audit

- - Safe to publish: true
- - Audited at: 2026-04-30T12:27:27.176\+00:00
- - Summary: Skill is a documentation/guide template for building LinkedIn Easy Apply automation. Static scanner flagged 48 potential issues but most are false positives from code examples in documentation. Confirmed legitimate browser automation patterns. Primary concerns are \(1\) LinkedIn Terms of Service violations for automated job applications, \(2\) pattern detection for Puppeteer/Chrome flags including --disable-setuid-sandbox which is a standard Chrome launch option. Skill explicitly avoids credential storage and includes conservative answer guardrails.

## Stats

- - Views: 71
- - Downloads: 3
- - Favorites: 0
- - Popularity score: 0
