SkillAtlasSkill 详情

job-scraper

Put your AI agent on the growth team.

审核状态:已审核Quality 72Security 70

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月21日
CleanShot 2026-07-13 at 20 15 47@2x CleanShot 2026-07-13 at 20 16 54@2x

AI Skills for Brand Growth

Put your AI agent on the growth team.

Research customers and competitors, analyze what is working, create the next campaign, and learn from the result. Goose Skills gives Claude Code, Cursor, Codex, and other coding agents ready-to-use workflows for ads, social media, content, competitive intelligence, SEO, lead generation, and GTM.

Browse all skills at https://skills.gooseworks.ai

Works with Claude Code · Cursor · Codex

npm version License: MIT Skills


Contents


Quick Start

AI Coding Agents (Claude Code, Cursor, Codex, etc)

Paste this into your coding agent (Claude Code, Cursor, or Codex) and it'll set everything up:

Install the Gooseworks skills:

In the terminal, run `npx gooseworks install --all`.

Then run `npx gooseworks login` and it'll open a browser to sign in and set up the tools, then confirm it worked.

The skills can be used with /gooseworks <prompt>

Claude Cowork

Run this command in a terminal first:

npx gooseworks install --all

Then authenticate:

npx gooseworks login

Then make sure you're working inside a local folder on your machine, and then you can use the skills in Cowork like this:

Use /gooseworks skill to generate some ad creatives

Install manually

Prefer to run it yourself? Use the command directly:

npx gooseworks install --all       # All detected agents

This gives your coding agent access to the full catalog of 200+ skills. After installing, just ask your agent to use any skill by name.

If you want a cloud-based AI coworker that already knows all these skills and more, sign up to Gooseworks


Brand Growth collection

The Brand Growth collection is a curated path through the normal Goose Skills catalog for consumer and ecommerce brand work. It is not a separate package or command: install GooseWorks once, then ask /gooseworks for the outcome you need.

StageWhat your agent can doExample skills
ResearchUnderstand the brand, customers, competitors, audiences, creators, trends, comments, and product demandbrand-research, audience-research, comment-mining, competitor-social-research, influencer-prospecting, trend-discovery, product-demand-research
AnalyzeDiagnose ads, creator profiles, transcripts, policy risk, landing-page message match, and unusual social performancecompetitor-ad-intelligence, creator-profile-teardown, transcript-intelligence, meta-ads-analyzer, meta-ad-policy-checker, ad-to-landing-page-auditor, outlier-post-finder
CreateRepurpose research, remix graphic ads, make product photography and social graphics, and animate static imagescontent-repurposing, remix-graphic-ad-from-reference, product-photoshoot, goose-graphics, animate-image
Learn and iterateBring results back into research and analysis, then decide the next testRe-run the relevant analysis skill with current performance and audience evidence

ScrapeCreators powers structured public social and ad-library research behind several workflows. Signed-in GooseWorks users access it through the managed first-party proxy and do not need a separate ScrapeCreators key. The user-facing skills turn that source data into a brief, shortlist, analysis, or recommendation instead of returning raw API output.

Browse the Brand Growth collection

After installation, start with:

/gooseworks onboard me

The agent will collect the useful company context for future growth work and finish by asking what you want to do first. Existing users can skip onboarding and keep using /gooseworks exactly as they do today.


Commands

npx gooseworks search "reddit scraping"   # Search the skill catalog
npx gooseworks credits                     # Check your credit balance
npx gooseworks update                      # Update to latest skill version

Skills Catalog

200+ skills across the growth stack, grouped by focus area:

CategoryWhat's inside
AdsResearch, build, and analyze paid campaigns across Meta and Google
SEOKeyword research, content gaps, SERP analysis, technical audits
Lead generationFind, enrich, and qualify prospects for your pipeline
OutreachDraft, personalize, and run outbound across email and social
ContentBlog posts, social content, carousels, video scripts, newsletters
ResearchCompany, market, and prospect deep-dives
Competitive intelTrack competitor pricing, launches, positioning, and ads
MonitoringWatch for mentions, signals, and changes across the web
SocialScrape and analyze social platforms and audiences
BrandVoice, positioning, and visual brand assets

Browse and search every skill at skills.gooseworks.ai.


Usage Examples

After installing, just ask your coding agent naturally:

"/gooseworks Generate static ad creatives for my brand"
"/gooseworks Use the reddit-post-finder skill to search r/startups"
"/gooseworks Use the apollo-lead-finder skill to find CTOs at AI companies"
"/gooseworks Use the competitor-intel skill to research Acme Corp"
"/gooseworks Use the goose-graphics skill to create a LinkedIn carousel about our launch"

Your agent will search the GooseWorks catalog, download the skill, and run it automatically.


Building from Source

git clone https://github.com/gooseworks-ai/goose-skills.git
cd goose-skills
node scripts/validate-skills.js  # Validate SKILL.md + skill.meta.json contract
node scripts/build-index.js      # Generate skills-index.json
node bin/goose-skills.js list    # Test locally

Skill Metadata Contract

Each skill directory must include:

  • SKILL.md — Skill documentation and usage guide
  • skill.meta.json — Machine-readable metadata

skill.meta.json fields:

FieldRequiredDescription
slugYesUnique kebab-case identifier
categoryYescapabilities, composites, or playbooks
tagsYesString array of category tags
installation.base_commandYesInstall command
installation.supportsYesArray: claude, codex, cursor
featuresNoFeature flags
github_urlNoSource repository URL
authorNoSkill author
example_promptNoCopyable prompt shown in the catalog and docs for trying the skill

Security & Trust

These skills run inside your coding agent, so it's worth knowing exactly what they do:

  • Open source & inspectable. Every skill — its SKILL.md instructions and all scripts — lives in this repo under the MIT license. The gooseworks CLI fetches skills at runtime so recipes stay current, but the source you'd run is right here to read, diff, or pin before you run it.
  • Scripts run locally. Skill scripts execute on your machine and write to /tmp/gooseworks-scripts/, never into your project directory. Only API requests go through GooseWorks servers; review any script before letting your agent run it.
  • Your agent stays in control. The skills are a tool your agent reaches for when it fits the task (data at scale, sources behind auth, a specific provider) — not a replacement for its built-in web search or fetch on quick lookups. You can read or edit any installed SKILL.md to tune that behavior.
  • Credentials stay local. Auth is a Bearer token stored at ~/.gooseworks/credentials.json (file mode 0600). Third-party provider keys (Apify, Apollo, etc.) are held server-side — your token never touches them. All network calls are HTTPS.
  • The MCP server is opt-in. Registering the GooseWorks MCP server is off by default; it only happens if you explicitly run gooseworks install --mcp.

Found something that looks off? Open an issue — we'd rather fix it in public.


License

MIT — see LICENSE for details.

The skill files and CLI in this repository are MIT-licensed. The GooseWorks API they connect to is a separate paid service governed by its own terms.

其他

中风险

  • 来源需自行核对维护者身份。
  • 包含脚本或命令调用,安装前请复核。
  • 可能需要外部 token、网络权限或第三方服务。
  • 未检测到高风险命令。
  • 扫描发现:3 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/lead-generation/capabilities/job-scraper" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/lead-generation/capabilities/job-scraper" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/lead-generation/capabilities/job-scraper" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/lead-generation/capabilities/job-scraper" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/lead-generation/capabilities/job-scraper" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
name: job-scraper
description: >
  Search for job postings across LinkedIn and Indeed. Use when users want to find open roles,
  monitor hiring signals, identify companies hiring for specific positions, or research
  competitor hiring activity. Returns job title, company, location, salary, description,
  seniority level, and direct apply URLs. No login or cookies required.
tags: [lead-generation, research]

Job Scraper

Search for job postings across LinkedIn and Indeed using Apify. Find open roles by keyword, location, company, or job type. Use for hiring signal detection, GTM research, or competitive intelligence.

No LinkedIn cookies. No Indeed login. Just search queries in, structured job data out.

When to Auto-Load

Load this skill when:

  • User says "find jobs", "who is hiring", "what roles is [company] hiring for"
  • User wants hiring signals ("find companies growing their AI team")
  • User wants competitive intelligence ("what is [competitor] hiring for")
  • User says "job search", "open roles", "job listings", "job postings"

Prerequisites

Apify API Token

Required for both LinkedIn and Indeed scraping. Set in .env:

APIFY_API_TOKEN=your_token_here

No LinkedIn cookies, Indeed login, or any platform credentials needed. That's the only setup.


Sources

This skill searches two job platforms via Apify actors:

SourceApify ActorBest ForCost
LinkedInautomation-lab/linkedin-jobs-scraperB2B, tech, SaaS, enterprise roles. Has seniority level, job function, industries.~$0.002/job
Indeedborderline/indeed-scraperBroadest coverage. Richest data — salary, company details, ratings, contacts, street addresses.~$0.004/job

Source Selection Logic

Do NOT ask the user which source to use unless genuinely ambiguous. Decide based on context:

  1. User specifies a source → use that source only.
  2. Context strongly suggests one source:
    • B2B/tech/SaaS roles, enterprise companies, seniority-level filtering → LinkedIn
    • Hourly/blue-collar roles, local/retail jobs, salary-focused search → Indeed
    • Company hiring research ("what is Stripe hiring for") → LinkedIn (better company filtering)
  3. No clear signal → search both sources, deduplicate results by job title + company name, present combined results.

After deciding, tell the user which source(s) you're searching and why. Don't ask — inform.


Workflow

Phase 0: Understand the Request

Extract from the user's message:

  • Search term — job title, role, or keyword (required)
  • Location — city, state, country, or "Remote" (optional)
  • Company — specific company name (optional)
  • Recency — "recent", "last week", "last 30 days" (optional)
  • Job type — fulltime, parttime, contract, internship (optional)
  • Remote — whether to filter for remote jobs (optional)
  • Result count — how many results they want (default: 25)

If anything is ambiguous, pick reasonable defaults and tell the user what you chose. Do not ask clarifying questions for things you can reasonably infer.

Phase 1: Search

LinkedIn — automation-lab/linkedin-jobs-scraper

API call:

curl -X POST "https://api.apify.com/v2/acts/automation-lab~linkedin-jobs-scraper/runs?token=$APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQuery": "AI engineer",
    "location": "San Francisco",
    "maxItems": 25
  }'

Input fields:

FieldTypeDescription
searchQuerystringJob title or keywords (required)
locationstringCity, state, or country (optional)
maxItemsintegerMax jobs to return (default: 50)

Polling for results:

# Check run status (poll every 10s)
curl "https://api.apify.com/v2/acts/automation-lab~linkedin-jobs-scraper/runs/{RUN_ID}?token=$APIFY_API_TOKEN"

# When status is SUCCEEDED, fetch results
curl "https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN"

Output fields per job:

  • title — Job title
  • companyName — Company name
  • companyLinkedinUrl — Company LinkedIn page
  • companyLogo — Logo URL
  • location — City, state
  • salary — Salary text (when available)
  • employmentType — Full-time, Part-time, Contract, etc.
  • seniorityLevel — Entry, Mid-Senior, Director, Executive, etc.
  • jobFunction — Engineering, Sales, Marketing, etc.
  • industries — Industry classification
  • descriptionText — Full job description (plain text)
  • descriptionHtml — Full job description (HTML)
  • applicantsCount — Number of applicants
  • postedAt — When posted (e.g., "6 days ago")
  • url — Direct link to the LinkedIn job posting
  • applyUrl — Direct apply URL

Indeed — borderline/indeed-scraper

API call:

curl -X POST "https://api.apify.com/v2/acts/borderline~indeed-scraper/runs?token=$APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "AI engineer",
    "location": "San Francisco, CA",
    "country": "us",
    "maxResults": 25
  }'

Input fields:

FieldTypeDescription
querystringJob title or keywords (required)
locationstringCity and state (optional)
countrystringLowercase 2-letter country code (required). Common: us, uk, ca, de, fr, in, au
maxResultsintegerMax jobs to return

Important: The country field is required for Indeed. If the user doesn't specify a country, default to us. Use lowercase 2-letter codes only.

Output fields per job:

  • title — Job title
  • companyName — Company name
  • companyDescription — Company description
  • companyNumEmployees — Company size
  • companyRevenue — Company revenue range
  • companyUrl — Company Indeed page
  • location — Object with city, postalCode, country, formattedAddressShort, latitude, longitude, streetAddress
  • salary — Object with salaryCurrency, salaryMin, salaryMax, salaryText, salaryType (hourly/yearly)
  • descriptionText — Full job description (plain text)
  • descriptionHtml — Full job description (HTML)
  • datePublished — Posted date (YYYY-MM-DD)
  • age — Human-readable age ("24 days ago")
  • expired — Whether job is still active
  • isRemote — Remote flag
  • jobType — Employment type
  • jobUrl — Direct Indeed job URL
  • applyUrl — Direct apply URL
  • rating — Company rating and review count
  • emails — Contact emails (when available)
  • attributes — Job attributes list (benefits, requirements, etc.)
  • hiringDemand — Urgent hire / high volume hiring flags

Phase 2: Filter & Deduplicate

Recency Filtering

If the user asked for recent jobs, filter results by date:

  • LinkedIn: Use postedAt field (e.g., "6 days ago") — parse the text to determine recency.
  • Indeed: Use datePublished field (YYYY-MM-DD) — compare against today's date.

Remove jobs older than what the user requested. If no recency filter specified, still remove jobs older than 30 days by default to avoid stale data.

Deduplication (when using both sources)

When searching both LinkedIn and Indeed, the same job may appear on both platforms. Deduplicate by matching:

  1. Normalize company name (lowercase, strip "Inc", "LLC", "Corp", etc.)
  2. Normalize job title (lowercase)
  3. If company name AND job title match, keep the result with richer data (prefer Indeed for salary data, LinkedIn for seniority level)

Phase 3: Present Results

Show results as a summary table:

Source: LinkedIn + Indeed (deduplicated)
Jobs found: {count}
Location: {location}
Search: "{query}"

| # | Title | Company | Location | Salary | Posted | Source |
|---|-------|---------|----------|--------|--------|--------|
| 1 | AI Engineer | Stripe | SF, CA | $200K-$300K | 3 days ago | LinkedIn |
| 2 | ML Engineer | Meta | Menlo Park, CA | $58.65/hr | Mar 14 | Indeed |
| ... |

After the table:

  • Note how many were filtered for recency
  • Note how many duplicates were removed
  • Provide the total cost of the search

If the user wants more detail on a specific job, show the full description.

Phase 4: Export (Optional)

If the user wants to save results:

{search-term}-jobs-{YYYY-MM-DD}.csv

CSV columns:

title, company, location, salary, employment_type, seniority_level, posted_date, job_url, apply_url, description, source

Normalize fields across sources so the CSV has a consistent schema regardless of whether the job came from LinkedIn or Indeed.


Cost Estimates

SearchLinkedIn OnlyIndeed OnlyBoth Sources
25 jobs~$0.05~$0.10~$0.15
50 jobs~$0.10~$0.20~$0.30
100 jobs~$0.20~$0.40~$0.60

LinkedIn is cheaper per job. Indeed returns richer data per job. Both together give the most complete picture.


Common Use Cases

Hiring signal detection: "Find companies hiring AI engineers in SF" → Search both sources, group by company, rank by number of open roles. Companies with 5+ AI roles are actively building.

Competitive intelligence: "What is Anthropic hiring for?" → Search LinkedIn with searchQuery: "Anthropic". Shows their open roles, team growth, and strategic priorities.

Salary research: "What do ML engineers make in NYC?" → Search Indeed (richer salary data). Filter to NYC, aggregate salary ranges.

GTM prospecting: "Find companies hiring for VP of Sales" → These companies are scaling their sales org and may need sales tools. Export the company list for outreach.


Error Handling

ErrorFix
APIFY_API_TOKEN not setAsk user to add it to .env
Indeed: Missing country inputAdd country field with lowercase 2-letter code (default: us)
LinkedIn: 0 resultsBroaden search query or remove location filter
Indeed: 999 results returnedThe maxResults field may not cap results. Filter client-side.
Apify run fails or times outRetry once. If still fails, try the other source.
Stale results (30+ days old)Apply recency filter. Warn user about data freshness.

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!