// docs

Glassdoor PLP

Extrai listagem de vagas (PLP) do Glassdoor com paginação, localização e suporte a remoto.

Nota importante: alguns campos podem retornar null em produção, dependendo da página de origem. Nesta documentação, os exemplos de output são preenchidos intencionalmente com valores não nulos para facilitar integração.

Chamada HTTP

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "glassdoor.com.br",
  "type": "plp",
  "jobTitle": "desenvolvedor backend",
  "location": "Brasil",
  "isRemote": false,
  "page": 2
}'

Chamada MCP

A mesma seam também aparece no MCP hospedado como uma tool dedicada. Os argumentos reaproveitam os campos do extract, mas target e type já ficam fixos pela tool.

Ver guia completo do MCP

Endpoint

POST /v1/mcp

Tool name

glassdoor_com_br_plp

Auth

Bearer ou X-API-Key

glassdoor_com_br_plp tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "glassdoor_com_br_plp",
    "arguments": {
      "jobTitle": "desenvolvedor backend",
      "location": "Brasil",
      "isRemote": false,
      "page": 2,
      "executionId": "exec_example_123"
    }
  }
}

Possibilidades de input

Campos suportados nesta API do POST /v1/extract, com regras específicas de obrigatoriedade e condicionais.

Campo Tipo Status Regra Default Exemplo
keyword
Palavra-chave para buscas PLP. Em Google Search ela representa a query enviada ao Google; em Booking PLP é obrigatória; em outros PLPs pode substituir a URL.
string Condicional Pode ser usado como alternativa a jobTitle. - iphone 15 pro max
jobTitle
Título/cargo para buscas de vagas (ex.: Catho e Glassdoor) quando a URL não for enviada.
string Condicional Obrigatorio quando keyword nao for enviada. - desenvolvedor backend
location
Localizacao textual usada no Glassdoor PLP e no Hoteis.com PLP (ex.: Brasil, Curitiba, Sao Paulo).
string Opcional Texto de localizacao para resolver locId/locType no Glassdoor. - Brasil
isRemote
Quando true, prioriza busca de vagas remotas no Glassdoor PLP.
boolean Opcional Quando true, prioriza busca remota. - true
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatorio no payload e deve combinar com o seam. - mercadolivre.com.br
type
Tipo da extração: pdp, idp, plp, review ou places.
enum Obrigatório Sempre obrigatorio no payload e deve combinar com o seam. - pdp
page
Paginacao. Em PLP inicia em 1; em review (MercadoLivre, Booking e Hoteis) inicia em 0.
integer Opcional Pagina da listagem (inteiro >= 1). - 2

Exemplos de request

PLP por jobTitle/location

Busca de vagas por cargo e localizacao.

PLP por jobTitle/location
{
  "target": "glassdoor.com.br",
  "type": "plp",
  "jobTitle": "desenvolvedor backend",
  "location": "Brasil",
  "isRemote": false,
  "page": 2
}

PLP remoto usando keyword

Busca remota sem location explicita, usando keyword como alternativa a jobTitle.

PLP remoto usando keyword
{
  "target": "glassdoor.com.br",
  "type": "plp",
  "keyword": "engenheiro de dados",
  "isRemote": true,
  "page": 1
}

Schema de response (leaf paths)

Mapa de paths de saída com tipo esperado para esta API.

responseSchema
{
  "requestId": "string (uuid)",
  "executionId": "string (uuid)",
  "data.source": "string",
  "data.type": "string",
  "data.parser": "string",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.query.jobTitle": "string",
  "data.query.location": "string",
  "data.query.locationId": "number",
  "data.query.locationType": "string",
  "data.query.locationTypeCode": "string",
  "data.query.isRemote": "boolean",
  "data.query.page": "number",
  "data.searchTrackingKey": "string",
  "data.totalResults": "number",
  "data.primaryResults": "number",
  "data.page": "number",
  "data.resultsPerPage": "number",
  "data.offset": "number",
  "data.nextPage": "number",
  "data.nextPageUrl": "string",
  "data.items[].position": "number",
  "data.items[].listingId": "number",
  "data.items[].title": "string",
  "data.items[].normalizedJobTitle": "string",
  "data.items[].locationName": "string",
  "data.items[].locationType": "string",
  "data.items[].ageInDays": "number",
  "data.items[].easyApply": "boolean",
  "data.items[].sponsoredJob": "boolean",
  "data.items[].payCurrency": "string",
  "data.items[].payPeriod": "string",
  "data.items[].salarySource": "string",
  "data.items[].salaryRange.p10": "number",
  "data.items[].salaryRange.p50": "number",
  "data.items[].salaryRange.p90": "number",
  "data.items[].url": "string",
  "data.items[].applyUrl": "string",
  "data.items[].seoUrl": "string",
  "data.items[].discoverDate": "string",
  "data.items[].descriptionSnippet": "string",
  "data.items[].importConfigId": "number",
  "data.items[].employer.id": "number",
  "data.items[].employer.name": "string",
  "data.items[].employer.shortName": "string",
  "data.items[].employer.rating": "number",
  "data.items[].employer.reviewCount": "number",
  "data.items[].logoUrl": "string"
}

Exemplo de response

responseExample
{
  "requestId": "8a6f5a73-e2f8-4982-9db0-1d7fd4f920e1",
  "executionId": "f5039d9d-5e2e-4eac-b7fd-3256a6cb0f6d",
  "data": {
    "source": "glassdoor.com.br",
    "type": "jlp",
    "parser": "bff",
    "url": "https://www.glassdoor.com.br/Vaga/jobs.htm?sc.keyword=desenvolvedor+backend&locT=N&locId=36",
    "requestUrl": "https://www.glassdoor.com.br/job-search-next/bff/jobSearchResultsQuery",
    "extractedAt": "2026-02-28T20:10:00.000Z",
    "query": {
      "jobTitle": "desenvolvedor backend",
      "location": "Brasil",
      "locationId": 36,
      "locationType": "COUNTRY",
      "locationTypeCode": "N",
      "isRemote": false,
      "page": 2
    },
    "searchTrackingKey": "tracking-key-123",
    "totalResults": 630,
    "primaryResults": 30,
    "page": 2,
    "resultsPerPage": 30,
    "offset": 30,
    "nextPage": 3,
    "nextPageUrl": "https://www.glassdoor.com.br/Vaga/jobs.htm?sc.keyword=desenvolvedor+backend&locT=N&locId=36&p=3",
    "items": [
      {
        "position": 31,
        "listingId": 1009999255417,
        "title": "Desenvolvedor Full Stack Júnior",
        "normalizedJobTitle": "Desenvolvedor Full Stack",
        "locationName": "Trabalho remoto",
        "locationType": "S",
        "ageInDays": 8,
        "easyApply": true,
        "sponsoredJob": false,
        "payCurrency": "BRL",
        "payPeriod": "MONTHLY",
        "salarySource": "EMPLOYER_PROVIDED",
        "salaryRange": {
          "p10": 9000,
          "p50": 12000,
          "p90": 15000
        },
        "url": "https://www.glassdoor.com.br/partner/jobListing.htm?jobListingId=1009999255417",
        "applyUrl": "https://www.glassdoor.com.br/partner/jobListing.htm?tgt=APPLY_START&jobListingId=1009999255417",
        "seoUrl": "https://www.glassdoor.com.br/job-listing/desenvolvedor-full-stack-j%C3%BAnior-comerc-energia-JV_IC2479061_KO0,31_KE32,46.htm?jl=1009999255417",
        "discoverDate": "2026-02-03T00:00:00.000Z",
        "descriptionSnippet": "Atuacao com Python e arquitetura de servicos em nuvem.",
        "importConfigId": 322429,
        "employer": {
          "id": 2759194,
          "name": "Comerc Energia",
          "shortName": "Comerc Energia",
          "rating": 2.6,
          "reviewCount": 198
        },
        "logoUrl": "https://media.example.com/jeitto-square.png"
      }
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.extractedAt string (iso datetime) Data/hora ISO da extração. 2026-02-28T20:10:00.000Z
data.items[].ageInDays number Idade da vaga em dias. 8
data.items[].applyUrl string URL de candidatura quando disponivel. https://www.glassdoor.com.br/partner/jobListing.htm?tgt=APPLY_START&jobListingId=1009999255417
data.items[].descriptionSnippet string Trecho resumido da descricao da vaga. Atuacao com Python e arquitetura de servicos em nuvem.
data.items[].discoverDate string Data de descoberta/publicacao da vaga. 2026-02-03T00:00:00.000Z
data.items[].easyApply boolean Indica se permite candidatura rapida. true
data.items[].employer.id number Identificador do empregador. 2759194
data.items[].employer.name string Nome do empregador. Comerc Energia
data.items[].employer.rating number Nota do empregador. 2.6
data.items[].employer.reviewCount number Quantidade de avaliacoes do empregador. 198
data.items[].employer.shortName string Nome curto do empregador. Comerc Energia
data.items[].importConfigId number Identificador interno de configuracao de importacao. 322429
data.items[].listingId number Identificador da vaga no Glassdoor. 1009999255417
data.items[].locationName string Nome textual da localizacao da vaga. Trabalho remoto
data.items[].locationType string Tipo de localizacao da vaga. S
data.items[].logoUrl string URL do logo do empregador. https://media.example.com/jeitto-square.png
data.items[].normalizedJobTitle string Titulo normalizado do cargo. Desenvolvedor Full Stack
data.items[].payCurrency string Moeda de salario. BRL
data.items[].payPeriod string Periodo de pagamento (ex.: MONTHLY). MONTHLY
data.items[].position number Posicao absoluta do item dentro da busca. 31
data.items[].salaryRange.p10 number Percentil inferior da faixa salarial. 9000
data.items[].salaryRange.p50 number Percentil mediano da faixa salarial. 12000
data.items[].salaryRange.p90 number Percentil superior da faixa salarial. 15000
data.items[].salarySource string Fonte da informacao salarial. EMPLOYER_PROVIDED
data.items[].seoUrl string URL SEO publica da vaga. https://www.glassdoor.com.br/job-listing/desenvolvedor-full-stack-j%C3%BAnior-comerc-energia-JV_IC2479061_KO0,31_KE32,46.htm?jl=1009999255417
data.items[].sponsoredJob boolean Indica se a vaga e patrocinada. false
data.items[].title string Titulo da vaga. Desenvolvedor Full Stack Júnior
data.items[].url string URL principal do item/vaga. https://www.glassdoor.com.br/partner/jobListing.htm?jobListingId=1009999255417
data.nextPage number Numero da proxima pagina quando disponivel. 3
data.nextPageUrl string URL de preview para a proxima pagina. https://www.glassdoor.com.br/Vaga/jobs.htm?sc.keyword=desenvolvedor+backend&locT=N&locId=36&p=3
data.offset number Deslocamento calculado para paginação. 30
data.page number Pagina atual. 2
data.parser string Parser utilizado internamente para extrair o resultado. bff
data.primaryResults number Quantidade de itens retornados na pagina atual. 30
data.query.isRemote boolean Indica se a busca foi marcada como remota. false
data.query.jobTitle string Cargo utilizado na busca. desenvolvedor backend
data.query.location string Localizacao resolvida para a busca. Brasil
data.query.locationId number Identificador interno de localizacao no Glassdoor. 36
data.query.locationType string Tipo de localizacao no BFF (COUNTRY, STATE, CITY). COUNTRY
data.query.locationTypeCode string Codigo resumido de localizacao (N, S, C). N
data.query.page number Pagina solicitada. 2
data.requestUrl string URL efetivamente requisitada ao endpoint de origem. https://www.glassdoor.com.br/job-search-next/bff/jobSearchResultsQuery
data.resultsPerPage number Quantidade de resultados por pagina. 30
data.searchTrackingKey string Chave de rastreio de busca retornada pelo Glassdoor. tracking-key-123
data.source string Origem dos dados extraidos. glassdoor.com.br
data.totalResults number Total de vagas encontradas para o filtro. 630
data.type string Tipo normalizado do retorno para listagem de vagas. jlp
data.url string URL final de busca considerada para a extração. https://www.glassdoor.com.br/Vaga/jobs.htm?sc.keyword=desenvolvedor+backend&locT=N&locId=36
executionId string (uuid) Campo executionId retornado no payload de resposta. f5039d9d-5e2e-4eac-b7fd-3256a6cb0f6d
requestId string (uuid) Campo requestId retornado no payload de resposta. 8a6f5a73-e2f8-4982-9db0-1d7fd4f920e1

Erros comuns

Status errorCode Quando acontece
400 INVALID_PAYLOAD JSON inválido ou violação das regras de validação do payload.
401 UNAUTHORIZED Header Authorization ausente ou token/chave inválida.
402 INSUFFICIENT_CREDITS Saldo de créditos insuficiente para a API solicitada.
403 FORBIDDEN Usuário sem acesso ou API temporariamente desabilitada.
409 EXECUTION_CONFLICT executionId conflita com uma execução em estado incompatível.
429 RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS Limite de taxa ou limite de requisições em voo excedido.
5xx UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_INVOCATION_FAILED / WORKER_FUNCTION_ERROR / WORKER_INVALID_RESPONSE / INTERNAL_ERROR Falha de servidor no worker, provider/proxy ou gateway. Nesses casos os créditos são estornados automaticamente.
WhatsApp