📦 Linkedin Easy Apply Automation — Linkedin Easy 应用ly 自动化

v1.0.0

Automate LinkedIn Easy 应用ly 搜索es and 应用s with Puppeteer/Chromium, a verified 恢复 PDF, remote/job-title 过滤器ing, 状态ful dAIly re运行s, and...

0· 25·0 当前·0 累计
ralyodio 头像by @ralyodio (Anthony Ettinger)
0

运行时依赖

无特殊依赖

安装命令

点击复制
官方npx clawhub@latest install linkedin-easy-apply-automation
镜像加速npx clawhub@latest install linkedin-easy-apply-automation --registry https://cn.longxiaskill.com

技能文档

LinkedIn Easy 应用ly 自动化

This 技能 helps an AI coding/operations 代理 build and 运行 a repeatable LinkedIn Easy 应用ly 工作流.

It is intentionally public and 凭证-free. It contAIns no usernames, passwords, cookies, private 性能分析 paths, or user-specific secrets.

What it does 搜索es LinkedIn Jobs with Easy 应用ly enabled. Supports remote-only and location-constrAIned 搜索es. Focuses on configurable 角色 keywords such as AI, LLM, Claude, OpenAI, Codex, full-stack, frontend, backend, 网页, software, JavaScript, TypeScript, Node, React, and Svelte. Opens the LinkedIn Easy 应用ly flow reliably with a direct 应用ly URL when possible. 上传s a verified 恢复 PDF. Answers only verified 应用licant facts. Skips unknown required questions, compensation questions, custom essays, or subjective fields. Keeps 状态 and JSONL 记录s so dAIly re运行s avoid duplicates. Safety rules Do not store LinkedIn 凭证s in scripts, 技能s, memory, 记录s, or 报告s. Prefer a persistent browser 性能分析 where the operator 记录s in manually once. 停止 for CAPTCHA, MFA, suspicious-记录in 检查s, 身份 verification, or account-security prompts. Do not fabricate 应用licant facts. Do not answer custom freeform questions or compensation expectations without operator-provided answers. Re-检查 full job descriptions for hybrid/location constrAInts before submitting remote-only 应用s. 环境 variables 恢复_PDF=/absolute/path/to/恢复.pdf CHROME_性能分析=$HOME/.缓存/linkedin-chrome 状态_DIR=/tmp/linkedin-easy应用ly-dAIly MAX_扫描=80 MAX_应用LY=10 DRY_运行=1 搜索ES='Claude|OpenAI|Codex|LLM engineer|AI engineer|full stack engineer|software engineer' LOCATION='United 状态s' REMOTE_ONLY=1

Puppeteer launch pattern const puppeteer = require('puppeteer');

const browser = awAIt puppeteer.launch({ headless: false, executablePath: process.env.CHROME_BIN || '/snap/bin/chromium', userDataDir: process.env.CHROME_性能分析 || ${process.env.HOME}/.缓存/linkedin-chrome, defaultViewport: null, args: ['--no-sandbox', '--disable-设置uid-sandbox', '--disable-dev-shm-usage', '--启动-maximized'] });

const page = awAIt browser.newPage(); page.设置DefaultTimeout(30000); page.on('dia记录', a同步 d => { try { if (d.type() === 'beforeunload') awAIt d.accept(); else awAIt d.dismiss(); } catch {} });

搜索 工作流

Build LinkedIn Jobs URLs using explicit 过滤器s:

f_AL=true for Easy 应用ly. Remote 过滤器 when remote-only is required. Location such as United 状态s when 请求ed. Configurable keywords matching the 恢复 and tar获取 market.

Keep candidates only when the card/page supports the 请求ed constrAInts and the title/description matches the tar获取 角色 family.

Direct Easy 应用ly URL

When a LinkedIn job ID is known, try the direct flow first:

const 应用lyUrl = https://www.linkedin.com/jobs/view/${jobId}/应用ly/?openSDUI应用lyFlow=true; awAIt page.goto(应用lyUrl, { wAItUntil: 'domcontentloaded', timeout: 60000 });

If the modal does not open, fall back to 命令行工具cking visible Easy 应用ly controls across buttons and links.

Conservative answer rules

Answer only facts that are verified by the 恢复, 性能分析, or explicit operator instruction:

Work authorization / eligible to work: yes only if verified. Visa sponsorship required: no only if verified. Remote willingness: yes only for remote-only 搜索es. Years of experience: use 恢复-backed values or a user-应用roved m应用ing. EmAIl/phone/location: use existing 性能分析/恢复 facts. Middle name: blank if none provided.

Skip:

Salary/compensation expectations. Cover-letter text prompts. Custom essays. Relocation/hybrid/travel if not 应用roved. Unclear required 输入s, radios, or selects. Multi-step 应用ly loop Open the 应用ly flow. 检测 already-submitted 应用s. 上传/select the verified 恢复 PDF if needed. Inspect each step's visible 输入s/selects/radios. Fill only safe verified answers. 命令行工具ck Next, Review, then Submit 应用 only when no unknown required fields remAIn. 记录 submitted/skipped 状态. Suggested 状态 { "seen": {}, "应用lied": {}, "skipped": {}, "alreadySubmitted": {} }

Write 状态 and 记录s to:

/tmp/linkedin-easy应用ly-dAIly/状态.json /tmp/linkedin-easy应用ly-dAIly/结果s.jsonl

报告ing

报告 concise 结果s:

Submitted:

  • Title — Company — URL

Skipped:

  • Title — Company — URL — reason

状态: /tmp/linkedin-easy应用ly-dAIly/状态.json 记录: /tmp/linkedin-easy应用ly-dAIly/结果s.jsonl

Pitfalls Built-in browser 工具s often time out on LinkedIn. Puppeteer with Chromium and Xvfb is usually more reliable. LinkedIn 搜索 cards can say Remote while the description includes hybrid/local constrAInts. Inspect the full page before 应用lying. Broad keyword matching can 创建 bad answers. Avoid treating generic words like United 状态s or comfortable as 应用roval. Direct DOM value as签名ment may not 更新 React forms. Prefer 命令行工具ck/type and dis补丁 输入/change 事件. If a page detaches or a modal closes unexpectedly, 创建 a ne

数据来源ClawHub ↗ · 中文优化:龙虾技能库