# EditalBR — Extrator de Editais de Concurso (`joaosbp/edital-extractor-br`) Actor

Extrai dados estruturados de editais PDF de concursos (FCC, Cebraspe, FGV): órgão, vagas, salários, taxas, níveis, período de inscrição e data da prova. Determinístico, sem IA, ~US$ 0,001 por edital.

- **URL**: https://apify.com/joaosbp/edital-extractor-br.md
- **Developed by:** [João Victor](https://apify.com/joaosbp) (community)
- **Categories:** AI, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## EditalBR — Extrator de Editais de Concurso Público (FCC · Cebraspe · FGV)

Extrai **dados estruturados** de editais de abertura de concursos públicos brasileiros
em PDF — sem IA, sem custo por documento, determinístico.

### O que ele extrai

| Campo | Descrição |
|---|---|
| `bancaDetectada` | FCC, Cebraspe ou FGV (domínio da URL + assinatura no texto) |
| `orgao` | Órgão promotor do certame |
| `vagas` | Número de vagas imediatas |
| `remuneracaoMinima/Maxima` | Faixa salarial detectada no edital |
| `niveis` | Escolaridade exigida (médio, superior…) |
| `taxasInscricao` | Valores de inscrição por nível/cargo |
| `inscricaoInicio/inscricaoFim` | Período de inscrições |
| `dataProva` | Data prevista da prova objetiva |
| `paginas`, `camposPreenchidos` | Metadados do documento e cobertura (x/8) |

### Entrada

```json
{
  "urls": [
    "https://conhecimento.fgv.br/sites/default/files/concursos/edital-01-2026-nav-brasil_1.pdf"
  ]
}
```

Um lote aceita até 200 URLs. Cada edital vira **uma linha** no dataset; um PDF com
problema (scan, senha, HTTP erro) vira linha de erro — **nunca derruba o lote**.

### Honestidade técnica

- **Campos best-effort:** se um campo não é encontrado deterministicamente, vem `null`.
  Nada é inventado. `camposPreenchidos` mostra a cobertura por edital.
- **Bancas suportadas:** FCC, Cebraspe e FGV (templates validados contra editais reais
  2026: MP-AL/FCC, CACD/Cebraspe, NAV Brasil/FGV — cobertura 7-8 de 8 campos).
  Editais de outras bancas são processados com os padrões genéricos (cobertura menor).
- **Somente PDFs com camada de texto.** Editais escaneados (imagem) são rejeitados
  com erro explícito — OCR não faz parte deste Actor.
- **Input-driven:** você passa as URLs (dos sites das bancas, agregadores ou DOU).
  Descoberta automática de editais novos não faz parte deste Actor.

### Casos de uso

- Agregadores de concursos: padronizar editais de bancas diferentes no mesmo schema
- Apps de estudo com IA: alimentar pipelines com dados estruturados do edital
- Alertas de vagas: extrair vagas/salário/datas para notificações segmentadas

***

### 🇧🇷 Suite de Dados Públicos BR / BR Public Data Suite

Este Actor faz parte de uma suite brasileira de dados públicos e jurídicos. Combine-os em pipelines:

- **LicitacoesBR** — radar de licitações PNCP (editais e vencedores): https://apify.com/joaosbp/licitacoes-pncp-br
- **CNPJ Lookup BR** — consulta CNPJ em lote com dados da Receita Federal: https://apify.com/joaosbp/cnpj-enrichment-lookup-br
- **CnpjDeltaBR** — monitor de mudanças cadastrais de CNPJs: https://apify.com/joaosbp/cnpj-delta-monitor-br
- **ComplianceBR** — screening de sanções CEIS/CNEP/CEPIM: https://apify.com/joaosbp/cnpj-sanctions-screening-br
- **Contact Scraper BR** — emails, WhatsApp + enriquecimento CNPJ: https://apify.com/joaosbp/website-contact-finder-br
- **PrazoBR** — extrator de prazos e obrigações jurídicas: https://apify.com/joaosbp/legal-deadlines-extractor-br
- **AutosTimeline BR** — cronologia de autos e pendências: https://apify.com/joaosbp/case-timeline-builder-br
- **PublicaBR** — monitor de publicações processuais (DataJud/CNJ): https://apify.com/joaosbp/publicacoes-processuais-br
- **EditalBR** — extrator de editais de concurso em PDF: https://apify.com/joaosbp/edital-extractor-br
- **Pricing Monitor BR** — monitor de páginas de preço SaaS: https://apify.com/joaosbp/competitor-pricing-page-monitor

**Pipeline sugerido:** LicitacoesBR encontra editais → CNPJ Lookup enriquece o vencedor → ComplianceBR verifica sanções → CnpjDeltaBR monitora mudanças cadastrais.

# Actor input Schema

## `urls` (type: `array`):

Uma ou mais URLs públicas de editais de concurso em PDF (FCC, Cebraspe ou FGV). A banca é detectada automaticamente pelo domínio e pelo conteúdo.

## Actor input object example

```json
{
  "urls": [
    "https://conhecimento.fgv.br/sites/default/files/concursos/edital-01-2026-nav-brasil_1.pdf",
    "https://cdn.cebraspe.org.br/concursos/irbr_26_diplomacia/arquivos/0F832BA5F314E5ECB89C951F0212CD330DE6CC71ED33D3434909FE4A48653D3F.pdf"
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://conhecimento.fgv.br/sites/default/files/concursos/edital-01-2026-nav-brasil_1.pdf",
        "https://cdn.cebraspe.org.br/concursos/irbr_26_diplomacia/arquivos/0F832BA5F314E5ECB89C951F0212CD330DE6CC71ED33D3434909FE4A48653D3F.pdf"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("joaosbp/edital-extractor-br").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": [
        "https://conhecimento.fgv.br/sites/default/files/concursos/edital-01-2026-nav-brasil_1.pdf",
        "https://cdn.cebraspe.org.br/concursos/irbr_26_diplomacia/arquivos/0F832BA5F314E5ECB89C951F0212CD330DE6CC71ED33D3434909FE4A48653D3F.pdf",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("joaosbp/edital-extractor-br").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://conhecimento.fgv.br/sites/default/files/concursos/edital-01-2026-nav-brasil_1.pdf",
    "https://cdn.cebraspe.org.br/concursos/irbr_26_diplomacia/arquivos/0F832BA5F314E5ECB89C951F0212CD330DE6CC71ED33D3434909FE4A48653D3F.pdf"
  ]
}' |
apify call joaosbp/edital-extractor-br --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=joaosbp/edital-extractor-br",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/FKL3zUnb14jHesbmo/builds/rln41nOJdsdaxtSKD/openapi.json
