Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Coleta e consulta dados de leiloeiros oficiais de todas as 27 Juntas Comerciais do Brasil. Scraper multi-UF, banco SQLite, API FastAPI e exportacao CSV/JSON.
.claude/skills/junta-leiloeiros/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 28% | 0% |
Coleta e consulta dados de leiloeiros oficiais de todas as 27 Juntas Comerciais do Brasil. Scraper multi-UF, banco SQLite, API FastAPI e exportacao CSV/JSON.
Coleta dados públicos de leiloeiros oficiais de todas as 27 Juntas Comerciais estaduais, persiste em banco SQLite local e oferece API REST e exportação em múltiplos formatos.
C:\Users\renat\skills\junta-leiloeiros\
├── scripts/
│ ├── scraper/
│ │ ├── base_scraper.py ← classe abstrata
│ │ ├── states.py ← registro dos 27 scrapers
│ │ ├── jucesp.py / jucerja.py / jucemg.py / jucec.py / jucis_df.py
│ │ └── generic_scraper.py ← usado pelos 22 estados restantes
│ ├── db.py ← banco SQLite
│ ├── run_all.py ← orquestrador de scraping
│ ├── serve_api.py ← API FastAPI
│ ├── export.py ← exportação
│ └── requirements.txt
├── references/
│ ├── juntas_urls.md ← URLs e status de todas as 27 juntas
│ ├── schema.md ← schema do banco
│ └── legal.md ← base legal
└── data/
├── leiloeiros.db ← banco SQLite (criado no primeiro run)
├── scraping_log.json ← log de cada coleta
└── exports/ ← arquivos exportadosbashpip install -r C:\Users\renat\skills\junta-leiloeiros\scripts\requirements.txt ## Para Sites Com Javascript: playwright install chromium
bash## Todos Os 27 Estados python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py ## Estados Específicos python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py --estado SP RJ MG ## Ver O Que Seria Coletado Sem Executar python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py --dry-run ## Controlar Paralelismo (Default: 5) python C:\Users\renat\skills\junta-leiloeiros\scripts\run_all.py --concurrency 3
python C:\Users\renat\skills\junta-leiloeiros\scripts\db.py
sqlite3 C:\Users\renat\skills\junta-leiloeiros\data\leiloeiros.db \ "SELECT estado, COUNT() FROM leiloeiros GROUP BY estado"
## Servir Api Rest
python C:\Users\renat\skills\junta-leiloeiros\scripts\serve_api.py
**Endpoints:**
- `GET /leiloeiros?estado=SP&situacao=ATIVO&nome=silva&limit=100`
- `GET /leiloeiros/{estado}` — ex: `/leiloeiros/SP`
- `GET /busca?q=texto`
- `GET /stats`
- `GET /export/json`
- `GET /export/csv`
## Exportar Dados
python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format csv python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format json python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format all python C:\Users\renat\skills\junta-leiloeiros\scripts\export.py --format csv --estado SP
## Usar Em Código Python
import sys sys.path.insert(0, r"C:\Users\renat\skills\junta-leiloeiros\scripts") from db import Database
db = Database() db.init()
leiloeiros = db.get_all(estado="SP", situacao="ATIVO")
resultados = db.search("silva")
stats = db.get_stats()
## Adicionar Scraper Customizado
Se um estado precisar de lógica específica (ex: site usa JavaScript):
from .base_scraper import AbstractJuntaScraper, Leiloeiro from typing import List
class MeuEstadoScraper(AbstractJuntaScraper): estado = "XX" junta = "JUCEX" url = "https://www.jucex.xx.gov.br/leiloeiros"
async def parse_leiloeiros(self) -> ListLeiloeiro]: soup = await self.fetch_page() if not soup: return ] # lógica específica aqui return self.make_leiloeiro(nome="...", matricula="...")]
Registrar em `scripts/scraper/states.py`:from .meu_estado import MeuEstadoScraper SCRAPERS"XX"] = MeuEstadoScraper
## Referências
- URLs de todas as juntas: `references/juntas_urls.md`
- Schema do banco: `references/schema.md`
- Base legal da coleta: `references/legal.md`
- Log de coleta: `data/scraping_log.json`
## Best Practices
- Provide clear, specific context about your project and requirements
- Review all suggestions before applying them to production code
- Combine with other complementary skills for comprehensive analysis
## Common Pitfalls
- Using this skill for tasks outside its domain expertise
- Applying recommendations without understanding your specific context
- Not providing enough project context for accurate analysis
## Related Skills
- `leiloeiro-avaliacao` - Complementary skill for enhanced analysis
- `leiloeiro-edital` - Complementary skill for enhanced analysis
- `leiloeiro-ia` - Complementary skill for enhanced analysis
- `leiloeiro-juridico` - Complementary skill for enhanced analysis
- `leiloeiro-mercado` - Complementary skill for enhanced analysis
## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 10,397 | 3,046 | -71% | 1 | 1 | 0% | 1,708 | 2,291 | +34% | 0 | 0 | — |
case-02 | fail→pass | 14,016 | 4,524 | -68% | 1 | 1 | 0% | 2,320 | 2,677 | +15% | 0 | 0 | — |
case-03 | fail→pass | 12,260 | 5,368 | -56% | 1 | 1 | 0% | 2,459 | 2,827 | +15% | 0 | 0 | — |
case-04 | fail→pass | 8,627 | 2,370 | -73% | 1 | 1 | 0% | 1,592 | 2,182 | +37% | 0 | 0 | — |
case-05 | fail→pass | 10,607 | 4,309 | -59% | 1 | 1 | 0% | 1,951 | 2,492 | +28% | 0 | 0 | — |
case-06 | fail→pass | 11,952 | 5,097 | -57% | 1 | 1 | 0% | 2,125 | 2,736 | +29% | 0 | 0 | — |
case-07 | fail→pass | 7,831 | 3,166 | -60% | 1 | 1 | 0% | 1,399 | 2,335 | +67% | 0 | 0 | — |
case-08 | fail→pass | 8,584 | 2,868 | -67% | 1 | 1 | 0% | 1,387 | 2,258 | +63% | 0 | 0 | — |
case-09 | fail→pass | 12,960 | 4,994 | -61% | 1 | 1 | 0% | 2,557 | 2,790 | +9% | 0 | 0 | — |
case-10 | fail→pass | 10,396 | 3,420 | -67% | 1 | 1 | 0% | 1,946 | 2,441 | +25% | 0 | 0 | — |
case-11 | fail→pass | 11,476 | 5,231 | -54% | 1 | 1 | 0% | 1,952 | 2,186 | +12% | 0 | 0 | — |
case-12 | fail→pass | 9,940 | 10,158 | +2% | 1 | 1 | 0% | 1,777 | 2,299 | +29% | 0 | 0 | — |
case-13 | fail→pass | 9,916 | 3,281 | -67% | 1 | 1 | 0% | 1,685 | 2,329 | +38% | 0 | 0 | — |
case-14 | fail→pass | 6,540 | 3,427 | -48% | 1 | 1 | 0% | 1,251 | 2,353 | +88% | 0 | 0 | — |
case-15 | fail→pass | 10,649 | 3,230 | -70% | 1 | 1 | 0% | 1,960 | 2,262 | +15% | 0 | 0 | — |
case-16 | fail→pass | 7,641 | 5,801 | -24% | 1 | 1 | 0% | 1,341 | 2,179 | +62% | 0 | 0 | — |
case-17 | fail→pass | 9,249 | 2,640 | -71% | 1 | 1 | 0% | 1,684 | 2,261 | +34% | 0 | 0 | — |
case-18 | fail→pass | 8,443 | 2,542 | -70% | 1 | 1 | 0% | 1,653 | 2,192 | +33% | 0 | 0 | — |
case-19 | fail→pass | 12,018 | 4,545 | -62% | 1 | 1 | 0% | 2,154 | 2,459 | +14% | 0 | 0 | — |
case-20 | fail→fail | 28,367 | 16,123 | -43% | 1 | 1 | 0% | 3,287 | 4,892 | +49% | 0 | 0 | — |
case-21 | fail→fail | 17,363 | 18,516 | +7% | 1 | 1 | 0% | 3,083 | 5,147 | +67% | 0 | 0 | — |
case-22 | fail→fail | 16,994 | 14,895 | -12% | 1 | 1 | 0% | 3,286 | 4,393 | +34% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +86 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.