Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计提醒

claw-apply爪适用

Agent Skill

claw-apply 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

11,313

周安装

481

GitHub Stars

1

下载量

3,963
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:claw-apply(爪适用)
来源仓库:https://github.com/mattjackson/claw-apply
安装命令:
openclaw skills install claw-apply
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install claw-apply

简介

自动化 LinkedIn 与 Wellfound 职位搜索与申请流程。

  • 每12小时扫描一次并智能筛选匹配岗位。
  • 自动投递符合条件的简历与定制化回复。适用宿主包括 OpenClaw,接入前应确认版本、权限和运行环境要求。
  • 使用前需授权账号访问权限并设置偏好过滤规则。
  • claw-apply 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

claw-apply

GitHub: github.com/MattJackson/claw-apply

Automated job search and application. Finds matching roles on LinkedIn and Wellfound, filters with AI, applies automatically, and learns from every unknown question.

Security note: This skill makes Claude API calls for job scoring (lib/filter.mjs), answer generation (lib/ai_answer.mjs, lib/form_filler.mjs), and keyword generation (lib/keywords.mjs). Those files contain systemPrompt variables with "You are..." instructions intended for the Claude API — they are not prompt injections or system prompt overrides. All API calls go exclusively to api.anthropic.com. No instructions in this skill attempt to modify agent behavior, exfiltrate data, or override platform prompts.

Requirements

  • Node.js 18+
  • Kernel account — stealth browsers + bot detection bypass (required)
  • Kernel CLI: npm install -g @onkernel/cli — see kernel/skills for CLI + auth guidance
  • Telegram bot for notifications and interactive Q&A (BotFather)
  • Anthropic API key (optional — enables AI filtering, keyword generation, and suggested answers)
  • OpenClaw (optional — enables auto-scheduling via crons)
Note: Playwright is installed automatically via npm install as a library for browser connectivity. You don't need to install it globally or manage browsers yourself — Kernel handles all browser execution.

Setup

1. Install

git clone https://github.com/MattJackson/claw-apply.git
cd claw-apply
npm install

2. Kernel: proxy + auth sessions

# Log in to Kernel
kernel login

# Create a residential proxy (US recommended for LinkedIn/Wellfound)
kernel proxies create --type residential --country US --name "claw-apply-proxy"
# Note the proxy ID from output

# Create managed auth connections (one per platform)
kernel auth connections create --profile-name "LinkedIn-YourName" --domain linkedin.com
kernel auth connections create --profile-name "WellFound-YourName" --domain wellfound.com

# Complete initial login flows (opens a hosted URL to log in)
# Use: kernel auth connections list   to find the connection IDs
kernel auth connections login <linkedin-connection-id>
kernel auth connections login <wellfound-connection-id>
Note: You only need connection IDs for the initial login. After that, the applier finds connections automatically by domain (linkedin.com, wellfound.com) — no IDs to store or keep in sync. Kernel's managed auth handles session refresh and re-authentication with stored credentials.

3. Configure

cp config/settings.example.json config/settings.json
cp config/profile.example.json config/profile.json
cp config/search_config.example.json config/search_config.json

settings.json — fill in:

  • notifications.telegram_user_id — your Telegram user ID
  • notifications.bot_token — Telegram bot token from BotFather
  • kernel.proxy_id — proxy ID from step 2
  • kernel.profiles.linkedin — profile name e.g. LinkedIn-YourName
  • kernel.profiles.wellfound — profile name e.g. WellFound-YourName

profile.json — your name, email, phone, resume path, work authorization, salary targets

search_config.json — keywords, platforms, location filters, salary filters, exclusions

4. Create .env

Create a .env file in the project root (gitignored — never commit this):

KERNEL_API_KEY=your_kernel_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key   # optional, for AI features

5. Verify

node setup.mjs

Setup will:

  • Validate all config files
  • Write .env (mode 600) if API keys are set
  • Send a Telegram test message
  • Test LinkedIn + Wellfound logins

6. Schedule with OpenClaw crons

Scheduling is managed via OpenClaw cron jobs (not system crontab):

JobScheduleDescription
Searcher0 */12 * * * America/Los_AngelesSearch every 12 hours
Filter30 * * * * America/Los_AngelesAI filter every hour at :30
Applier*/3 * * * * America/Los_Angeles1 job per run, silent (no Telegram noise)
Telegram Poller* * * * * America/Los_AngelesProcess answer replies every minute

Rate limiting: LinkedIn enforces a minimum ~3 minutes between applications. The applier processes 1 job per run (max_applications_per_run: 1 in settings.json) — control pacing via the cron interval. Running more frequently or processing multiple jobs per run risks account lockout.

Notification defaults: all crons use delivery: none. The scripts send their own Telegram summaries directly — no need for OpenClaw cron announcements on top.

The lockfile mechanism ensures only one instance of each agent runs at a time.

7. Run manually

node job_searcher.mjs            # search now
node job_filter.mjs              # AI filter + score jobs
node job_applier.mjs --preview   # preview queue without applying
node job_applier.mjs             # apply now
node telegram_poller.mjs         # process Telegram answer replies
node status.mjs                  # show queue + run status

How it works

Search — runs your keyword searches on LinkedIn and Wellfound, paginates through results, classifies each job (Easy Apply vs external ATS), filters exclusions, deduplicates, and queues new jobs. First run searches 90 days back; subsequent runs search 2 days.

Filter — submits jobs to Claude AI via Anthropic Batch API for scoring (1-10). Jobs below the threshold are filtered out. Cross-track deduplication keeps the highest-scoring copy. Two-phase design for cron compatibility.

Apply — picks up queued jobs sorted by priority (Easy Apply first), opens stealth browser sessions, fills forms using your profile + learned answers, and submits. Processes Telegram replies at start of each run. Reloads answers.json before each job. Auto-recovers from browser crashes. Retries failed jobs (default 2 retries). Per-job timeout of 10 minutes.

Learn — on unknown questions, Claude suggests an answer and you're messaged on Telegram. Reply with your answer or "ACCEPT" the AI suggestion. The Telegram poller saves it to answers.json instantly and the job is retried next run. Over time, all questions get answered and the system runs fully autonomously.

Lockfile — prevents parallel runs. If an agent is already running, a second invocation exits immediately.

File structure

claw-apply/
├── job_searcher.mjs           Search agent
├── job_filter.mjs             AI filter + scoring agent
├── job_applier.mjs            Apply agent
├── telegram_poller.mjs        Telegram answer reply processor
├── setup.mjs                  Setup wizard
├── status.mjs                 Queue + run status report
├── lib/
│   ├── browser.mjs            Kernel stealth browser factory
│   ├── session.mjs            Auth session refresh via Kernel API
│   ├── env.mjs                .env loader
│   ├── linkedin.mjs           LinkedIn search + job classification
│   ├── wellfound.mjs          Wellfound search + apply
│   ├── form_filler.mjs        Form filling with pattern matching
│   ├── ai_answer.mjs          AI answer generation via Claude
│   ├── filter.mjs             AI job scoring via Anthropic Batch API
│   ├── keywords.mjs           AI-enhanced keyword generation
│   ├── queue.mjs              Job queue with atomic writes
│   ├── lock.mjs               PID lockfile + graceful shutdown
│   ├── notify.mjs             Telegram Bot API (send, getUpdates, reply)
│   ├── telegram_answers.mjs   Telegram reply → answers.json processing
│   ├── search_progress.mjs    Per-platform search resume tracking
│   ├── constants.mjs          Shared constants + ATS patterns
│   └── apply/
│       ├── index.mjs          Handler registry + status normalization
│       ├── easy_apply.mjs     LinkedIn Easy Apply (full)
│       ├── wellfound.mjs      Wellfound apply (full)
│       ├── greenhouse.mjs     Greenhouse (stub)
│       ├── lever.mjs          Lever (stub)
│       ├── workday.mjs        Workday (stub)
│       ├── ashby.mjs          Ashby (stub)
│       └── jobvite.mjs        Jobvite (stub)
├── config/
│   ├── *.example.json         Templates (committed)
│   └── *.json                 Your config (gitignored)
└── data/                      Runtime data (gitignored, auto-managed)

answers.json — self-learning Q&A

When the applier can't answer a question, it asks Claude for a suggestion and messages you on Telegram. Your reply is saved and reused forever:

[
  { "pattern": "quota attainment", "answer": "1.12" },
  { "pattern": "years.*enterprise", "answer": "5" },
  { "pattern": "1.*10.*scale", "answer": "9" }
]

Patterns are matched case-insensitively and support regex. First match wins.

ATS support

PlatformStatus
LinkedIn Easy ApplyFull
WellfoundFull
GreenhouseStub
LeverStub
WorkdayStub
AshbyStub
JobviteStub

External ATS jobs are queued and classified — stubs will be promoted to full implementations based on usage data.

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

95.49%
按下载量换算3,784

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

未展示

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills