1- # Jobs Scraper Global
1+ # Vagas LinkedIn Brasil (Remoto)
22
3- Bot de automacao para buscar vagas de tecnologia no LinkedIn em escala global e exportar os resultados para Excel.
3+ Bot de automacao para buscar vagas no LinkedIn com foco em Brasil remoto e exportar os resultados em Excel e PDF .
44
5- ## O que mudou
5+ ## Comportamento atual
66
7- - Busca padrao agora cobre vagas no mundo todo (location=Worldwide )
8- - Projeto refatorado para uma arquitetura modular e manutencao facilitada
9- - Configuracao por variaveis de ambiente para localizacao, idioma, keywords e comportamento do navegador
10- - Tratamento de erro centralizado e logs com timestamp
11- - Deduplicacao de vagas antes da exportacao
7+ - Escopo geografico: Brasil (geoId padrao ` 106057199 ` )
8+ - Modalidade: remoto apenas ( ` f_WT=2 ` )
9+ - Tipos de contrato padrao: PJ e CLT ( ` f_JT=C,F ` )
10+ - Exportacao em dois formatos: ` .xlsx ` e ` .pdf `
11+ - Deduplicacao por link (ou por titulo + empresa + local quando o link nao existe)
1212
13- ## Arquitetura
13+ ## Estrutura do projeto
1414
15- - index.js: entrypoint enxuto e tratamento de falhas
16- - src/config .js: leitura e validacao de configuracoes
17- - src/browser .js: descoberta de Chrome/Edge e abertura do Puppeteer
18- - src/linkedinScraper .js: logica de busca e extracao no LinkedIn
19- - src/exporter .js: exportacao para Excel
20- - src/logger .js: logs padronizados
21- - src/app .js: orquestracao do fluxo completo
15+ - ` index.js ` : entrypoint e tratamento de falhas
16+ - ` src/app .js ` : fluxo principal (coleta e exportacao)
17+ - ` src/config .js ` : leitura das variaveis de ambiente
18+ - ` src/browser .js ` : inicializacao do navegador para o Puppeteer
19+ - ` src/linkedinScraper .js ` : montagem da URL e extracao das vagas
20+ - ` src/exporter .js ` : geracao de Excel e PDF
21+ - ` src/logger .js ` : logs padronizados
2222
2323## Requisitos
2424
@@ -29,66 +29,77 @@ Bot de automacao para buscar vagas de tecnologia no LinkedIn em escala global e
2929## Instalacao
3030
31311 . Clone o projeto
32- 2 . Execute npm install
32+ 2 . Rode ` npm install `
3333
3434## Execucao
3535
36- - Producao: npm start
37- - Desenvolvimento: npm run dev
38- - Hot reload: npm run run
36+ - Producao: ` npm start `
37+ - Desenvolvimento: ` npm run dev `
38+ - Hot reload: ` npm run run `
3939
40- ## Configuracao por ambiente
40+ ## Variaveis de ambiente
4141
42- Variaveis opcionais:
42+ Todas sao opcionais.
4343
44- - SEARCH_LOCATION: local da busca (padrao: Worldwide)
45- - SEARCH_LANGUAGE: idioma da busca (padrao: en)
46- - SEARCH_KEYWORDS: lista separada por virgula
47- - HEADLESS: true ou false (padrao: false)
48- - WAIT_BETWEEN_SEARCHES_MS: espera entre buscas (padrao: 5000)
49- - PAGE_TIMEOUT_MS: timeout de seletores (padrao: 10000)
50- - VIEWPORT_WIDTH: largura do navegador (padrao: 1280)
51- - VIEWPORT_HEIGHT: altura do navegador (padrao: 800)
52- - OUTPUT_FILE: nome do arquivo de saida (padrao: vagas_linkedin.xlsx)
53- - CHROME_PATH: caminho do executavel do navegador
44+ - ` HEADLESS ` (padrao: ` false ` )
45+ - ` WAIT_BETWEEN_SEARCHES_MS ` (padrao: ` 5000 ` )
46+ - ` PAGE_TIMEOUT_MS ` (padrao: ` 10000 ` )
47+ - ` VIEWPORT_WIDTH ` (padrao: ` 1280 ` )
48+ - ` VIEWPORT_HEIGHT ` (padrao: ` 800 ` )
49+ - ` OUTPUT_FILE ` (padrao: ` vagas_linkedin.xlsx ` )
50+ - ` PDF_FILE ` (padrao: ` vagas_linkedin.pdf ` )
51+ - ` SEARCH_LOCATION ` (padrao: ` Brasil ` )
52+ - ` SEARCH_GEO_ID ` (padrao: ` 106057199 ` )
53+ - ` SEARCH_LANGUAGE ` (padrao: ` pt ` )
54+ - ` JOB_TYPES ` (padrao: ` C,F ` )
55+ Valores comuns: `C` (PJ), `F` (CLT), `C,F` (ambos)
56+ - ` SEARCH_KEYWORDS ` (lista separada por virgula)
57+ - ` CHROME_PATH ` (caminho do executavel do navegador)
5458
55- Exemplo no Windows cmd:
59+ Exemplo no Windows cmd (Brasil remoto, PJ+CLT) :
5660
57- set SEARCH_LOCATION=Worldwide&& set SEARCH_LANGUAGE=en&& set HEADLESS=true&& npm start
61+ ``` bat
62+ set SEARCH_GEO_ID=106057199&& set JOB_TYPES=C,F&& set HEADLESS=true&& npm start
63+ ```
5864
59- Exemplo com keywords customizadas :
65+ Exemplo com palavras-chave personalizadas :
6066
61- set SEARCH_KEYWORDS=NodeJS,ReactJS,Python,DevOps&& npm start
67+ ``` bat
68+ set SEARCH_KEYWORDS=UX Designer,UI Designer,Product Manager,Product Owner&& npm start
69+ ```
6270
6371## Saida
6472
65- Planilha Excel com as colunas :
73+ Arquivos gerados por padrao :
6674
67- - palavra
68- - titulo
69- - empresa
70- - local
71- - link
75+ - ` vagas_linkedin.xlsx `
76+ - ` vagas_linkedin.pdf `
7277
73- Arquivo padrao: vagas_linkedin.xlsx
78+ Colunas exportadas:
7479
75- ## Exemplo de planilha:
80+ - ` palavra `
81+ - ` titulo `
82+ - ` empresa `
83+ - ` local `
84+ - ` link `
7685
77- < img width = " 1901 " height = " 599 " alt = " Image " src = " https://github.com/user-attachments/assets/7c1c525f-1abb-438c-a398-3a44c23727fa " />
86+ No PDF, os links sao normalizados para uma versao curta do LinkedIn quando possivel, reduzindo risco de truncamento.
7887
7988## Troubleshooting
8089
8190Chrome/Edge nao encontrado:
8291
83- - Instale Chrome ou Edge
84- - Ou informe CHROME_PATH manualmente
92+ - Instale Google Chrome ou Microsoft Edge
93+ - Ou informe ` CHROME_PATH ` manualmente
8594
86- Exemplo:
95+ Exemplo no Windows cmd :
8796
97+ ``` bat
8898set CHROME_PATH=C:\Program Files\Google\Chrome\Application\chrome.exe&& npm start
99+ ```
89100
90101## Avisos
91102
92103- Respeite os termos de uso do LinkedIn
93104- Use o scraper de forma etica e responsavel
94- - A estrutura de HTML do LinkedIn pode mudar e exigir ajuste de seletores
105+ - O HTML do LinkedIn pode mudar e exigir ajuste de seletores
0 commit comments