Brazil Gov IT Opportunities Monitor
Under maintenancePricing
Pay per usage
Brazil Gov IT Opportunities Monitor
Under maintenanceFind Brazilian PNCP public procurement opportunities related to IT/software, enrich them with items and edital/TR/ETP evidence, and output a clean scored dataset.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Vinicius Assumpção de Araujo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Find Brazilian public procurement opportunities related to IT, software, cloud, data center, public management systems, support, and digital transformation.
This Actor monitors PNCP open-proposal opportunities, enriches candidate tenders with PNCP items and document metadata, optionally downloads selected edital/TR/ETP PDF or DOCX attachments, extracts text locally, and returns a scored dataset with evidence snippets.
It is designed for:
- IT vendors tracking public-sector opportunities in Brazil;
- consultants building bid pipelines;
- market researchers monitoring public procurement demand;
- teams feeding Sheets, Notion, CRM, BI, or alert workflows.
Why this is useful
PNCP is public, but raw search is noisy. Generic keywords catch health procedures, public servants, social programs, and administrative text. This Actor narrows the mess into a small set of scored opportunities and keeps the evidence: matched terms, item-level signals, documents, extracted snippets, deadlines, agencies, and values.
Data sources
- Open proposal list:
https://pncp.gov.br/api/consulta/v1/contratacoes/proposta - Items:
https://pncp.gov.br/api/pncp/v1/orgaos/{cnpj}/compras/{ano}/{sequencial}/itens - Documents:
https://pncp.gov.br/api/pncp/v1/orgaos/{cnpj}/compras/{ano}/{sequencial}/arquivos - Optional local extraction from selected PDF/DOCX attachments using PyMuPDF and python-docx.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
dataFinal | string | today + 30 days | Search opportunities with proposal deadlines up to this date. Accepts YYYY-MM-DD or YYYYMMDD. |
uf | string | empty | Optional Brazilian state filter, e.g. SP, RJ, DF. |
keywords | array/string | IT terms | Terms used for scoring. Prefer specific phrases. |
enrichDetails | boolean | true | Fetch PNCP items and document metadata. |
maxDetailRequests | integer | 20 | Limit enriched opportunities to control runtime and rate limits. |
extractDocuments | boolean | false | Download and parse selected edital/TR/ETP PDF/DOCX attachments. |
maxDocumentsToExtract | integer | 2 | Max selected attachments parsed per enriched opportunity. |
maxDocumentBytes | integer | 8000000 | Hard cap per downloaded document. |
maxExtractedChars | integer | 18000 | Text cap per parsed document. |
maxPages | integer | 3 | PNCP pages to scan. Each page can return up to 50 opportunities. |
pageSize | integer | 50 | PNCP accepts 10 to 50. |
minScore | integer | 12 | Minimum IT fit score to output. |
Example input:
{"dataFinal": "2026-07-31","keywords": ["software", "sistema de gestão", "sistemas de gestão", "sistema informatizado", "tecnologia da informação", "informática", "computadores", "notebook", "servidor de rede", "data center", "licença de software", "cloud", "nuvem", "segurança da informação"],"enrichDetails": true,"maxDetailRequests": 20,"extractDocuments": true,"maxDocumentsToExtract": 2,"maxDocumentBytes": 8000000,"maxExtractedChars": 18000,"maxPages": 2,"pageSize": 50,"minScore": 12}
Output dataset
Each row includes:
opportunity_idtitlematched_keywordsit_fit_scoreestimated_value_brlproposal_open_atproposal_deadlinepublished_atmodalitypurchase_statusagency,agency_cnpj,unit,city,stateitem_countdocument_countmatching_itemsmatching_documentsextracted_documentspncp_urlsummary_pt_br
extracted_documents contains only compact evidence, not the full document text:
- document title/type/URL;
- matched terms found inside the parsed attachment;
- snippet around the match;
- extracted character count;
- download/parse errors when present.
A run summary is also stored in the default key-value store as SUMMARY.
Example result
A local validation run scanning 100 PNCP opportunities with detail enrichment and attachment extraction found a high-confidence opportunity:
- agency: Município de Osório/RS
- estimated value: R$ 2.159.171,68
- score: 100
- PNCP items: 10
- PNCP documents: 13
- parsed attachments with IT evidence: 2
- detected signals: software, sistemas de gestão, informática, data center, cloud
Attachment snippets confirmed systems for public management, cloud computing, data center infrastructure, migration, support, licensing, and maintenance.
Cost and performance notes
Local validation on a Mac with maxPages=2, pageSize=50, maxDetailRequests=20, and extractDocuments=true took about 46 seconds for 100 listed opportunities.
For cloud/commercial runs:
- start with
extractDocuments=falsefor cheap broad monitoring; - enable
extractDocuments=truefor high-confidence runs or smaller state/agency slices; - measure real Apify CU after first cloud run before enabling paid pricing;
- keep
maxDocumentBytesandmaxDocumentsToExtractconservative.
No Apify Proxy is required. This Actor uses public PNCP APIs.
Local development
cd ~/Apify/actors/brazil-gov-it-opportunities/opt/homebrew/bin/python3.12 -m venv .venv. .venv/bin/activatepython -m pip install -r requirements.txtpython -m unittest discover -s tests -vapify validate-schemaapify run --purge
Limitations
- It does not submit bids or interact with procurement systems.
- It does not provide legal advice.
- PNCP API availability and rate limits can affect runs.
- Scanned PDFs without embedded text may require OCR; this MVP intentionally avoids heavy OCR models.
- Classification is keyword/scoring based, not legal analysis.
Guardrails
- Uses public PNCP data only.
- Does not require Apify Proxy.
- Does not require secrets in input.
- Does not store full edital text by default; it stores compact snippets and evidence.
- Review ToS/legal/commercial positioning before paid Store launch.