Finding Tenders at Scale: Getting Keywords Right and Scraping the Hard Stuff
Automating the Search for Bids, RFPs, and Contract Opportunities
In my recent article I shared a simple system to track tenders and RFPs with Hexomatic and ChatGPT. The big question that came back was how to get better keywords and what to do when opportunities don’t show up in Google at all. Let’s go deeper into both.
1. Keywords First, Scaling Second
Hexomatic is about scale. It does not search differently than you can. If a keyword query is weak in Google, it will be weak in Hexomatic. So the first step is always to build and test queries manually.
You can use ChatGPT to generate keyword queries, but the way you frame the request matters. Most tenders and RFPs don’t use broad categories like “IT services” or “marketing.” They use very specific language. For IT, you might see “network penetration testing,” “data center migration,” or “help desk support.” For marketing, it might be “video production,” “SEO audit,” or “social media campaign management.” The key is to think in terms of what the buyer would write in the RFP, not how you describe your business on your website.
Step 1: Break Down Your Services Into Real Buyer Language
Instead of “IT services,” list concrete deliverables: “cybersecurity audit,” “software development,” “cloud hosting,” “network monitoring,” “IT help desk.”
Instead of “marketing,” list: “branding,” “media buying,” “website redesign,” “event promotion,” “SEO services.”
Instead of “construction,” list: “roof repair,” “HVAC installation,” “asphalt paving,” “building renovation.”
Step 2: Build Prompts With These Details
By service and location
I provide cybersecurity services in Miami-Dade. Break down cybersecurity into common buyer terms like penetration testing, security audits, firewall setup, and monitoring. Generate 10 advanced Google search queries using site:, OR, and parentheses to find open tenders, bids, RFPs, or RFQs. Exclude closed, awarded, archived, or expired. Give me a clean list without numbers or symbols, with each keyword on a new line.
By industry focus
I provide branding and digital marketing services. Break these into common RFP terms like logo design, website redesign, social media campaign management, and video production. Generate 10 Google queries to find active RFPs from universities and colleges in the U.S. Use those service keywords. Exclude expired, awarded, or closed. Give me a clean list without numbers or symbols, with each keyword on a new line.
By geography
I sell IT support and software development services. Break these into buyer-specific terms like help desk, application development, cloud migration, and system integration. My target markets are New York, Miami, and Los Angeles. Generate 20 queries to find active tenders in these cities. Exclude expired, awarded, or closed. Give me a clean list without numbers or symbols, with each keyword on a new line.
Step 3: Test Before Scaling
Run each query in Google manually:
If the top results are generic “procurement home pages” with no active solicitations, refine the query.
If you see recent opportunities that mention your exact service terms, save the query.
Expect to run several iterations before you find the sweet spot.
Once you have a working list, then move to Hexomatic to scale.
Scaling with Hexomatic
Create a new Workflow and start with Data Input in Hexomatic and paste the queries.
Add Google Search Scraper and set results to 100 per query.
Schedule the workflow for Mondays.
With 30 queries, you’ll collect 3,000 results weekly without lifting a finger.
2. Dealing With Raw Data
What comes back from Google scraping is never clean. You’ll see duplicates, outdated listings, irrelevant solicitations, and sometimes random PDFs or policy documents. Treat this as raw material that needs processing.
ChatGPT Filtering
Instead of one simple filter prompt, layer your instructions:
Service match:
From this list of tenders, keep only those directly related to IT support, including help desk, cloud migration, or software maintenance. Exclude unrelated entries such as hardware procurement or telecom services.
Budget or scope filter:
Keep only opportunities above $50k estimated value or those mentioning multi-year contracts.
Geography filter:
Include only tenders issued by agencies in Florida, New York, or California.
You can chain these together in one prompt so that ChatGPT delivers a short, structured list instead of a messy dump.
Cleaning in Excel or Google Sheets
Use formulas and macros to create another filter layer:
Keyword filters: Highlight or hide rows based on words like “IT help desk,” “penetration testing,” or “branding.”
Date filters: Remove solicitations older than 90 days.
Conditional formatting: Color-code deadlines that are less than 14 days away.
De-duplication: Use “Remove duplicates” to clean up repeated listings.
This creates a fast, repeatable way to reduce thousands of rows into something usable.
Manual Review
Even with strong filtering, final judgment is still required. Examples:
A tender might mention “IT support” but actually be for hardware maintenance only.
A marketing RFP might require a specialty you don’t offer, like large-scale event production.
A construction bid might be limited to pre-qualified contractors.
These details rarely surface in automated filters, so a human scan of the shortlist is essential.
Automation gets you from 10 hours of work to 30 minutes. But those last 30 minutes—filtering, cleaning, and reviewing—are what separate wasted effort from actionable opportunities.
3. When Google Isn’t Enough
Google is powerful for discovery, but it doesn’t cover everything. Certain niches and opportunities never show up in search results, especially when agencies or companies publish directly to their own portals. This is also the case when you already know the exact website you want to monitor.
When the Recipe Builder Works
If the site has a simple structure, Hexomatic’s recipe builder is enough. Good use cases are:
Pages with a static list of open solicitations and links.
Tables where titles, deadlines, and reference numbers are separated into columns.
Portals with clean pagination, such as “?page=2, ?page=3.”
In these cases, you can quickly create a recipe to capture all essential fields like title, deadline, link, and reference ID.
When You Need a Custom Recipe
Some procurement or vendor portals are more complex and require a tailored scraper. Signs you’ll need one:
Dynamic filters: You must choose categories or dates from dropdowns before results appear.
Session-based URLs: Each search generates a temporary link that breaks normal scraping.
Infinite scroll: Results load only as you scroll, with no stable pagination.
Embedded files: Key details are hidden in PDFs or Word docs that require text extraction.
Logins: Some corporate or university portals require vendor accounts before you can view opportunities.
For these cases, a concierge-built recipe ensures the workflow extracts the right fields and runs reliably on schedule.
Why This Matters
Many procurement opportunities are niche-specific and locked inside these portals. If you know where to look, custom scraping turns them into structured data you can monitor weekly. Competitors relying only on Google will miss them.
Final Notes
The sequence is simple: build strong keyword queries, test them in Google, scale them with Hexomatic, then clean the data. For the portals where Google fails, scrape directly with recipes.
👉 If you want us to create your workflow or a custom scraper for a specific site, book our concierge service.