linkedin-jobs-scraper

Web scraping skill for LinkedIn job postings using public API endpoints. Extract job data without authentication.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "linkedin-jobs-scraper" with this command: npx skills add nicolassantos23/linkedin-jobs-scraper

LinkedIn Jobs Scraper Skill

Esta skill extrai vagas de emprego do LinkedIn usando a API pública não autenticada. Funciona em VPS sem navegador, apenas com requests + BeautifulSoup.

Busca rápida (título, empresa, local, URL) em segundos.
Detalhes completos (descrição, data) sob demanda por vaga.

⚠️ Avisos

  • Legal: Scraping de dados públicos é legal nos EUA (hiQ v. LinkedIn, 2022), mas viola os ToS do LinkedIn
  • Riscos: LinkedIn pode bloquear o IP se houver excesso de requisições
  • Volume: Limite a <100 buscas/dia para uso pessoal
  • Sem login: Nenhuma autenticação é usada

Uso via CLI

Busca rápida (padrão)

python scraper.py --keywords "python developer" --location "Brazil" --limit 10

Busca com filtros

python scraper.py \
  --keywords "data scientist" \
  --location "Brazil" \
  --remote only \
  --experience mid-senior \
  --job-type full-time \
  --posted last-week \
  --limit 20 \
  --output jobs.csv

Uso via Python

from scraper import LinkedInJobsScraper

scraper = LinkedInJobsScraper()

# Busca rápida (retorna em segundos)
jobs = scraper.search_jobs(
    keywords="python developer",
    location="Brazil",
    remote="only",
    limit=25
)

# Cada job tem: title, company, location, url, job_id
for job in jobs:
    print(f"{job['title']} - {job['company']} - {job['location']}")

# Detalhes completos de uma vaga específica (1 request extra)
details = scraper.get_job_details(job_id="4413133140")
print(details['description'][:300])  # descrição completa
print(details['posted_date'])        # ex: "1 week ago"

Parâmetros

ParâmetroValoresDescrição
--keywordstextoTítulo ou habilidade
--locationtextoCidade, estado ou país
--remoteonly, yes, noFiltro remoto
--experienceinternship, entry, associate, mid-senior, director, executiveNível
--job-typefull-time, part-time, contract, temporary, internshipTipo
--postedlast-24h, last-week, last-month, anytimeData
--limitnúmero (default: 25)Máx. vagas
--outputarquivo .csv ou .jsonSalvar resultados

Dados Retornados

Busca rápida (search_jobs)

{
  "title": "Python Engineer",
  "company": "Nortal",
  "location": "Greater Porto Alegre",
  "url": "https://br.linkedin.com/jobs/view/python-engineer...",
  "job_id": "4413133140"
}

Detalhes completos (get_job_details)

{
  "job_id": "4413133140",
  "title": "Python Engineer - Work from home",
  "company": "Nortal",
  "location": "Greater Porto Alegre",
  "posted_date": "1 week ago",
  "description": "Full job description text...",
  "employment_type": "Full-time",
  "seniority_level": "Mid-Senior level",
  "job_function": "Engineering",
  "industries": "Software Development"
}

Exemplos

# Vagas Python remotas no Brasil
python scraper.py --keywords "python" --location "Brazil" --remote only --limit 10

# Vagas de Data Scientist sênior nesta semana
python scraper.py --keywords "data scientist" --location "United States" --experience mid-senior --posted last-week --limit 5 --output ds_jobs.json
from scraper import LinkedInJobsScraper
import pandas as pd

scraper = LinkedInJobsScraper()
jobs = scraper.search_jobs("machine learning", "Europe", remote="yes", limit=50)

df = pd.DataFrame(jobs)
print(df['company'].value_counts().head(10))

Estrutura

linkedin-jobs-scraper/
├── SKILL.md
├── scraper.py
├── __init__.py
└── README.md

Dependências

pip install requests beautifulsoup4

pandas é opcional (use se quiser analisar os dados).

Boas Práticas

  • Delay de 2-5s entre requisições (automático)
  • Máximo ~100 requisições/dia
  • User-Agent rotacionado automaticamente
  • Cache os resultados (dados públicos mudam pouco)
  • Para descrições, chame get_job_details() só quando necessário

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Free Voiceover

Get voiced-over videos ready to post, without touching a single slider. Upload your video or script (MP4, MOV, AVI, WebM, up to 500MB), say something like "a...

Registry SourceRecently Updated
General

Voiceover Ai Free

add video or text into voiced-over videos with this skill. Works with MP4, MOV, AVI, WebM files up to 500MB. content creators, marketers, educators use it fo...

Registry SourceRecently Updated
General

BlueBubbles (tc)

Send and manage iMessages via BlueBubbles self-hosted macOS server

Registry SourceRecently Updated
General

OpenClaw Problem Solver自动修复小龙虾

A specialized skill designed to diagnose and solve OpenClaw issues or bugs. It prioritizes searching the official documentation (docs.openclaw.ai) first, fal...

Registry SourceRecently Updated