📺 Full walkthrough video: https://youtu.be/VuC99QbD4O0
Who it's for
This workflow is for French agencies, consultancies, or freelancers who regularly bid on public procurement contracts and want to automate the entire monitoring and pre-qualification process without manually browsing the BOAMP portal.
How it works
The workflow runs in three scheduled phases each week:
- Fetch phase (Monday 10am): Reads API parameters and tender type filters (Travaux / Services / Fournitures) from a Google Sheet config tab. It then calls the BOAMP open-data API with pagination, filtering results by publication date and type, and appends all matching tenders to a master "All" sheet tab.
- Keyword matching phase (Monday noon): Reads search keywords from the config sheet, loads all unprocessed tenders, loops over each one, fetches the PDF from the BOAMP URL, extracts text, and runs keyword matching. Tenders that match at least one keyword are written to a "Target" sheet tab and marked as processed. Short keywords (≤ 3 characters, e.g. "IA", "API") are matched using strict word boundary detection to avoid false positives.
- AI qualification phase (Monday 6pm): Reads all target tenders, fetches each PDF again, and sends the full text to a Claude Sonnet AI agent. The agent returns a structured JSON with a relevance score (0–10), a synthesis, positive points, blocking points, and a recommendation (Répondre / Approfondir / Passer). Results are written back to the Target sheet and logged in a final "Match" sheet.
How to set up
- [ ] Duplicate the template Google Sheet: https://docs.google.com/spreadsheets/d/14whk-IjO0LojBJqR-6JzxAXsYqYwJcFv6G50q7GbyR4
- [ ] Connect Google Sheets OAuth2 credentials to all Google Sheets nodes
- [ ] In the duplicated sheet, fill in the Config tab with your tender type checkboxes (Travaux, Services, Fournitures), search keywords (comma-separated), and lookback period in days
- [ ] Add your Anthropic API credential to the Claude Sonnet Model node
- [ ] Customize the AI agent system prompt in the Content Analysis Agent node to match your company profile and elimination criteria
- [ ] Adjust the three schedule triggers if a different cadence is needed
Requirements
- Google Sheets account (OAuth2)
- Anthropic API key (Claude Sonnet)
- Access to the BOAMP open-data API (free, no key required)
How to customize
- Swap Claude Sonnet for another LLM (OpenAI GPT-4o, Mistral) in the AI agent sub-node to change the qualification model
- Extend the keyword matching logic in the
Build Keyword Search Query code node to support boolean operators or regex patterns
- Update the system prompt in the
Content Analysis Agent node to reflect your own company profile, technical stack, and go/no-go criteria
- Add a final notification step (email, Slack, or Notion) after the Match sheet is updated to alert your team of high-scoring tenders in real time