Turn procurement portal tenders into CRM deals each morning

By General Input

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Integrations

  • Anchor Browser
  • Google Sheets
  • HubSpot
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Operations

Every weekday at 7am, log into the procurement and tender portals I track and turn genuinely relevant new notices into CRM pipeline. The value here is filtering noise, not forwarding everything, so be strict.

Start in Google Sheets. Use Get Values to read my portal config tab. Each row describes one portal: its name, the login URL, the saved search terms to run there, and my qualifying rules, which include minimum contract value, target sectors, eligible regions, and the minimum days of runway I need between today and the submission deadline to actually put a bid together.

For each portal, work inside a saved Anchor Browser profile so the session stays authenticated behind the portal login. Reuse the stored profile named for that portal when one already exists. If a portal has no profile yet, start a browser session, let me sign in once through the live view, and use Create Profile to save that logged-in state under the portal's name so every later run goes straight in. Most of these portals have no public API and nothing useful without a login, so the persisted profile is what makes this workflow possible at all.

With the profile attached, use Perform Web Task on each portal to run that portal's saved search and pull every notice published since the last run. For each notice capture the tender reference number, the buying authority, the notice title, the contract value, the submission deadline, and a direct source link to the original notice.

Before scoring anything, read the log tab in the same Google Sheet and dedupe strictly on the portal's tender reference number. The same notice is often re-listed, amended, or republished as a correction, and the reference number is the only reliable identity. If a reference is already logged, skip it entirely and do not create a second deal.

Score what remains against my qualifying rules and drop everything that does not fit. Apply the runway rule as its own hard filter: if the submission deadline leaves less time than my minimum, drop the notice even when the value, sector, and region are a perfect match, because a tender I cannot physically respond to in time is not pipeline. When a notice is genuinely borderline rather than clearly out, keep it and say in the Slack summary why you were unsure.

For each qualifier, use HubSpot Create Deal. Put the notice title and buying authority in the deal name, set the amount to the contract value, and set the close date to the submission deadline so the pipeline reflects real bid urgency rather than a guess. Record the tender reference number and the source link on the deal so anyone can open the original notice in one click.

After a deal is created successfully, use Append Values to add a row to the Google Sheet log with the tender reference number, the portal it came from, the deal that was created, and the date it qualified. This is what stops the same notice creating a duplicate deal on a later run. Only append after the deal actually exists, so anything that failed gets retried on the next run instead of being silently marked as handled.

Finish with one Slack message using Send a Message. List the newly qualified tenders ranked by how soon they close, soonest first, each with the buyer, contract value, submission deadline, days remaining, and the source link. If nothing qualified, say so plainly and mention how many notices were reviewed and filtered out.

Most importantly, explicitly call out any portal where the login failed, the saved profile expired, or the search did not complete. Name those portals in their own clearly marked section, separate from the results, and state that their notices are missing from this run. Never let a broken portal be reported as zero new tenders, because a silent zero looks identical to a quiet day and that is exactly how teams miss bids.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerTurn Mailjet email clicks into ranked HubSpot follow-upsStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account