Search engine and pipeline manager for Spanish and European public tenders with automated source synchronization, multi-company tracking, and AI-powered tender summaries.
The problem
Reviewing procurement opportunities across disparate public portals and reading lengthy tender specifications requires an organized discovery and tracking workflow.
The solution
Synchronization of PLACSP and TED portals from Laravel. React and Inertia provide search filters and a kanban board; document extraction and structured summaries run through configurable AI provider adapters.
From publication to bid tracking
Public procurement sources feed a searchable catalog tracked per company. Specification review connects original documents with on-demand AI summaries and pipeline tasks.
Aggregate public sources
PLACSP · TED · Laravel
Scheduled synchronization imports Spanish and European tenders into the catalog. For PLACSP, status tracking allows resuming ingestion without creating duplicates.
Discover relevant opportunities
React · Inertia · saved filters
The search interface allows browsing tenders and applying criteria. Each company saves custom filters to quickly revisit search terms.
Review specifications
Queues · AI providers · cache
Specifications are fetched from primary sources. When an analysis is requested, background workers extract text, structure the output, and record token costs.
Organize bid tracking
Kanban · checklist · company
Selected opportunities are organized by company on a kanban pipeline with review tasks. Original documents and cached summaries remain available.
Updated catalog
Official procurement notices are unified into a searchable database with custom filters and direct document access.
Structured review
Company-specific pipelines link opportunities, tasks, and documentation. AI summaries assist reading while keeping original sources intact.
Key technical challenges
Updating opportunities without duplicating records
PLACSP synchronization identifies records by official tender codes and preserves sync state timestamps. This allows the ingestion engine to incorporate revisions without treating amendments as duplicate tenders.
Avoiding redundant specification re-analysis
Tender summaries are persisted in the database and reused. The controller verifies whether an analysis job is already queued and provides recovery for stalled workers, while re-generation checks tender amendments and user permissions.
Decoupling AI providers while maintaining output structure
A provider registry abstracts multiple LLM APIs behind a common adapter layer. Output schemas are enforced in code while prompt templates remain editable. Every run logs model version, token counts, and cost metrics.
Core capabilities
- Automated synchronization with PLACSP and TED portals.
- Saved search filters and multi-tenant company kanban board.
- Original tender specification download from source portals.
- AI summarization with caching, cost tracking, and token usage metrics.

