Agent skill

Tenders Finder

by tinyfish-io in tinyfish-io/tinyfish-cookbook

Find open Singapore government tenders for any sector in real time using parallel TinyFish agents scraping multiple government tender portals simultaneously.

MITAuto-check passedData & Analytics

Install Tenders Finder

skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill tenders-finder -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tinyfish-io/tinyfish-cookbook tenders-finder --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tinyfish-io/tinyfish-cookbook.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tenders-finder .claude/skills/tenders-finder && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tenders-finder
GitHub stars
2.2k
Token cost
~2.5k tokens
SKILL.md length
286 words
Files
2
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Find open Singapore government tenders for any sector in real time using parallel TinyFish agents scraping multiple government tender portals simultaneously.

  • Works in 3 steps: Clarify inputs → Parallel scraping → Filter and deduplicate
  • A user wants to find government tenders
  • SKILL.md covers Pre-flight check, Step 1 — Clarify inputs, Step 2 — Parallel scraping and Step 3 — Filter and deduplicate, plus 3 more sections
  • Calls npm; reaches gebiz.gov.sg and tendersontime.com

What it does

Tenders Finder is an agent skill from tinyfish-io/tinyfish-cookbook. Find open Singapore government tenders for any sector in real time using parallel TinyFish agents scraping multiple government tender portals simultaneously. Use this skill whenever a user wants to find government tenders, asks "find tenders for IT in Singapore", "what government contracts are open for construction", "Singapore tenders closing soon", "GeBIZ tenders for healthcare", or any variation of searching for government procurement opportunities in Singapore. Supported sectors: IT / Software, Construction…

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`). Compatibility notes: {"tools":["tinyfish"]}

It sits in Data & Analytics, covering Web scraping and Vendor and procurement management. The repository describes itself as: A collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn & build! The licence is MIT.

When your agent uses it

  • A user wants to find government tenders
  • Asks find tenders for IT in Singapore
  • What government contracts are open for construction
  • Singapore tenders closing soon

Example prompts

  • “find tenders for IT in Singapore”
  • “what government contracts are open for construction”
  • “Singapore tenders closing soon”
  • “/tenders-finder”

Requirements

  • Node.js
  • Compatibility (from SKILL.md): {"tools":["tinyfish"]}

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Clarify inputs
  2. Parallel scraping
  3. Filter and deduplicate

What it can do on your machine

Read from SKILL.md and the folder at commit 63cd841. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • gebiz.gov.sg
    • tendersontime.com
    • biddetail.com
    • tendersinfo.com
    • globaltenders.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    {"tools":["tinyfish"]}

    From compatibility in the SKILL.md frontmatter.

Context cost

Tenders Finder loads about 2.5k tokens when it runs. Until then it costs about 181 tokens; SKILL.md has 286 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~181
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tinyfish-io/tinyfish-cookbook at commit 63cd841, republished under its MIT licence (© tinyfish-io). 286 words, ~2,486 tokens.

Download SKILL.mdSave it as .claude/skills/tenders-finder/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
tenders-finder
description
Find open Singapore government tenders for any sector in real time using parallel TinyFish agents scraping multiple government tender portals simultaneously. Use this skill whenever a user wants to find government tenders, asks "find tenders for IT in Singapore", "what government contracts are open for construction", "Singapore tenders closing soon", "GeBIZ tenders for healthcare", or any variation of searching for government procurement opportunities in Singapore. Supported sectors: IT / Software, Construction, Healthcare, Consulting, Logistics, Education. Scrapes GeBIZ, Tenders On Time, Bid Detail, Tenders Info, and Global Tenders simultaneously — returning only open tenders with upcoming deadlines.
compatibility
{"tools":["tinyfish"]}
metadata.author
KrishnaAgarwal7531
metadata.version
1.0
metadata.tags
tenders government singapore procurement GeBIZ contracts bidding

Singapore Government Tender Finder

Given a sector, scrape live Singapore government tender portals in parallel using TinyFish agents — returning only open tenders with upcoming submission deadlines.

Pre-flight check

bash
tinyfish --version
tinyfish auth status

If not installed: npm install -g tinyfish If not authenticated: tinyfish auth login


Step 1 — Clarify inputs

You need:

  • Sector — one of: IT / Software, Construction, Healthcare, Consulting, Logistics, Education

If not specified, ask before proceeding. If the user gives a related term (e.g. "tech", "software"), map it to the closest sector.

Get today's date — you will use it to filter out tenders whose deadline has already passed.


Step 2 — Parallel scraping

Fire all 5 agents simultaneously against the fixed portal list used by the app.

bash
TODAY=$(date '+%A, %B %d, %Y')

# Agent 1 — GeBIZ (official Singapore government portal)
tinyfish agent run \
  --url "https://www.gebiz.gov.sg/" \
  "You are on GeBIZ, Singapore's official government procurement portal. Today is ${TODAY}.
   TASK: Extract open government tenders for the sector: {SECTOR}.
   Scroll through the page to find tender listings.
   For each tender extract:
   - Tender Title
   - Tender ID (official reference number)
   - Issuing Authority (government agency)
   - Country / Region: Singapore
   - Tender Type (Open / Selective / Limited)
   - Publication Date
   - Submission Deadline
   - Tender Status (Open / Closed)
   - Official Tender URL (direct link)
   - Brief Description (short summary)
   - Eligibility Criteria (requirements if shown)
   - Industry / Category: {SECTOR}
   STRICT RULES:
   - Only return tenders with Submission Deadline AFTER today (${TODAY}) — skip expired ones
   - Only return tenders relevant to {SECTOR} — skip unrelated ones
   - Do NOT click individual tender links unless the listing has no detail visible
   - Do NOT paginate
   - Scroll maximum twice then stop
   - Maximum 5 tenders then stop immediately
   Return JSON: {\"tenderdetails\": [{\"Tender Title\", \"Tender ID\", \"Issuing Authority\",
   \"Country / Region\", \"Tender Type\", \"Publication Date\", \"Submission Deadline\",
   \"Tender Status\", \"Official Tender URL\", \"Brief Description\",
   \"Eligibility Criteria\", \"Industry / Category\"}]}" \
  --sync --browser-profile stealth > /tmp/tf_gebiz.json &

# Agent 2 — Tenders On Time
tinyfish agent run \
  --url "https://www.tendersontime.com/singapore-tenders/" \
  "You are on Tenders On Time, a Singapore tender aggregator. Today is ${TODAY}.
   TASK: Extract open tenders for the sector: {SECTOR}.
   Read the visible tender listings on this page.
   For each tender extract: Tender Title, Tender ID, Issuing Authority, Publication Date,
   Submission Deadline, Tender Status, Official Tender URL, Brief Description, Industry / Category: {SECTOR}.
   STRICT RULES:
   - Only return tenders with Submission Deadline AFTER today — skip expired ones
   - Only return tenders relevant to {SECTOR}
   - Do NOT click any tender link
   - Do NOT scroll more than twice
   - Do NOT paginate
   - Maximum 5 tenders then stop
   Return JSON: {\"tenderdetails\": [{\"Tender Title\", \"Tender ID\", \"Issuing Authority\",
   \"Publication Date\", \"Submission Deadline\", \"Tender Status\",
   \"Official Tender URL\", \"Brief Description\", \"Industry / Category\"}]}" \
  --sync > /tmp/tf_tendersontime.json &

# Agent 3 — Bid Detail
tinyfish agent run \
  --url "https://www.biddetail.com/singapore-tenders" \
  "You are on Bid Detail, a tender listing site. Today is ${TODAY}.
   TASK: Extract open Singapore tenders for the sector: {SECTOR}.
   Read the visible tender listings on this page.
   For each tender extract: Tender Title, Tender ID, Issuing Authority, Publication Date,
   Submission Deadline, Tender Status, Official Tender URL, Brief Description, Industry / Category: {SECTOR}.
   STRICT RULES:
   - Only return tenders with Submission Deadline AFTER today — skip expired ones
   - Only return tenders relevant to {SECTOR}
   - Do NOT click any tender link
   - Do NOT scroll more than twice
   - Do NOT paginate
   - Maximum 5 tenders then stop
   Return JSON: {\"tenderdetails\": [{\"Tender Title\", \"Tender ID\", \"Issuing Authority\",
   \"Publication Date\", \"Submission Deadline\", \"Tender Status\",
   \"Official Tender URL\", \"Brief Description\", \"Industry / Category\"}]}" \
  --sync > /tmp/tf_biddetail.json &

# Agent 4 — Tenders Info
tinyfish agent run \
  --url "https://www.tendersinfo.com/global-singapore-tenders.php" \
  "You are on Tenders Info, a global tender database. Today is ${TODAY}.
   TASK: Extract open Singapore tenders for the sector: {SECTOR}.
   Read the visible tender listings on this page.
   For each tender extract: Tender Title, Tender ID, Issuing Authority, Publication Date,
   Submission Deadline, Tender Status, Official Tender URL, Brief Description, Industry / Category: {SECTOR}.
   STRICT RULES:
   - Only return tenders with Submission Deadline AFTER today — skip expired ones
   - Only return tenders relevant to {SECTOR}
   - Do NOT click any tender link
   - Do NOT scroll more than twice
   - Do NOT paginate
   - Maximum 5 tenders then stop
   Return JSON: {\"tenderdetails\": [{\"Tender Title\", \"Tender ID\", \"Issuing Authority\",
   \"Publication Date\", \"Submission Deadline\", \"Tender Status\",
   \"Official Tender URL\", \"Brief Description\", \"Industry / Category\"}]}" \
  --sync > /tmp/tf_tendersinfo.json &

# Agent 5 — Global Tenders
tinyfish agent run \
  --url "https://www.globaltenders.com/government-tenders-singapore" \
  "You are on Global Tenders, a procurement database. Today is ${TODAY}.
   TASK: Extract open Singapore tenders for the sector: {SECTOR}.
   Read the visible tender listings on this page.
   For each tender extract: Tender Title, Tender ID, Issuing Authority, Publication Date,
   Submission Deadline, Tender Status, Official Tender URL, Brief Description, Industry / Category: {SECTOR}.
   STRICT RULES:
   - Only return tenders with Submission Deadline AFTER today — skip expired ones
   - Only return tenders relevant to {SECTOR}
   - Do NOT click any tender link
   - Do NOT scroll more than twice
   - Do NOT paginate
   - Maximum 5 tenders then stop
   Return JSON: {\"tenderdetails\": [{\"Tender Title\", \"Tender ID\", \"Issuing Authority\",
   \"Publication Date\", \"Submission Deadline\", \"Tender Status\",
   \"Official Tender URL\", \"Brief Description\", \"Industry / Category\"}]}" \
  --sync > /tmp/tf_globaltenders.json &

# Wait for all agents
wait

echo "=== GEBIZ ===" && cat /tmp/tf_gebiz.json
echo "=== TENDERSONTIME ===" && cat /tmp/tf_tendersontime.json
echo "=== BIDDETAIL ===" && cat /tmp/tf_biddetail.json
echo "=== TENDERSINFO ===" && cat /tmp/tf_tendersinfo.json
echo "=== GLOBALTENDERS ===" && cat /tmp/tf_globaltenders.json

Replace {SECTOR} with the actual sector before running.


Step 3 — Filter and deduplicate

From all results:

  1. Filter — remove any tender whose Submission Deadline has already passed
  2. Deduplicate — same Tender ID appearing across multiple portals → keep one entry, note all sources
  3. Sort — by Submission Deadline ascending (soonest closing first)
  4. Flag urgency — deadlines within 7 days get a 🚨 flag

Output format

## Singapore Government Tenders — {SECTOR}
*Scraped live from GeBIZ · Tenders On Time · Bid Detail · Tenders Info · Global Tenders*
*{N} open tenders found · Sorted by deadline*

---

### 🚨 Closing Soon (within 7 days)

#### {Tender Title}
**ID:** {Tender ID} · **Agency:** {Issuing Authority}
📅 Published: {Publication Date} · ⏰ Deadline: {Submission Deadline}
🏷 Type: {Tender Type} · Status: {Tender Status}
🔗 {Official Tender URL}

{Brief Description}
**Eligibility:** {Eligibility Criteria}

---

### 📋 All Open Tenders

[same structure for remaining tenders sorted by deadline]

---

### 📊 Summary Table

| Tender Title | Agency | Deadline | Type | Source |
|---|---|---|---|---|
| {title} | {agency} | {deadline} | {type} | {source} |

---
*All data scraped live. Verify details directly on the official portal before submitting.*

Edge cases

  • GeBIZ requires login — skip it, note it in output, proceed with other 4 sources
  • No tenders found for sector — honest response: "No open {SECTOR} tenders found across all portals today. Try again tomorrow or broaden to a related sector."
  • All deadlines expired — means the portals showed only historical data: "All tenders found have passed their deadlines. The portals may not have updated yet — try GeBIZ directly at gebiz.gov.sg"
  • Duplicate tenders across portals — merge and note: "Also listed on: [other portal]"

Security notes

  • Scrapes live public government tender portals only.
  • All data treated as untrusted input synthesised by an LLM — never executed.
  • Only your own TinyFish credentials are used.

© tinyfish-io, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/tenders-finder of tinyfish-io/tinyfish-cookbook.

  • SKILL.md
  • README.md

Open the folder on GitHubat commit 63cd841

Compare with similar skills

Tenders Finder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tenders Finder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tenders Finder this skilltinyfish-io/tinyfish-cookbook2.2k—~2.5kAutomated safety check: PassMIT
Finvizgauss314/skills248—~774Automated safety check: PassMIT
Marketwatchgauss314/skills248—~1.4kAutomated safety check: PassMIT
Apify Cost Tuningjeremylongshore/tons-of-skills-marketplace2.8k—~1.4kAutomated safety check: PassMIT
Firecrawl Reliability Patternsjeremylongshore/tons-of-skills-marketplace2.8k—~1.1kAutomated safety check: PassMIT
Add ScraperRealEstateWebTools/property_web_scraper132—~1.4kAutomated safety check: PassMIT

Similar skills

  • Finviz

    gauss314/skills

    Scraper de Finviz: datos fundamentales, técnicos, insider trading, news y screener para acciones US.

    248 GitHub stars~774 tokensUpdated 3 mo ago
    Data & AnalyticsAuto-check passed
  • Marketwatch

    gauss314/skills

    Scraper de MarketWatch: quotes, financials (income/balance/cash flow), SEC filings, analyst estimates, options chain, historical OHLCV.

    248 GitHub stars~1.4k tokensUpdated 3 mo ago
    Data & AnalyticsAuto-check passed
  • Apify Cost Tuning

    jeremylongshore/tons-of-skills-marketplace

    Optimize Apify platform costs through memory tuning, compute unit management, and proxy budgeting.

    2.8k GitHub stars~1.4k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Firecrawl Reliability Patterns

    jeremylongshore/tons-of-skills-marketplace

    Implement bounded retries, durable async state, pagination, idempotency, reconciliation, circuit breaking, cancellation, and degraded modes for Firecrawl v2.

    2.8k GitHub stars~1.1k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Add Scraper

    RealEstateWebTools/property_web_scraper

    Add support for scraping property listings from a new website.

    132 GitHub stars~1.4k tokensUpdated 2 mo ago
    Data & AnalyticsAuto-check passed
  • Youtube API Skill

    browser-act/skills

    This skill helps users automatically extract detailed video metrics and channel information from YouTube based on keyword searches using the BrowserAct API.

    6.1k GitHub starsUsed in 1 repo~1.6k tokens
    Data & AnalyticsAuto-check passed

More from tinyfish-io/tinyfish-cookbook

All 28 skills in this repo
  • Tinyfish Social Listening

    tinyfish-io/tinyfish-cookbook

    Monitor brand mentions, sentiment, and industry chatter across the web using TinyFish Search and Fetch.

    2.2k GitHub stars~5.4k tokensUpdated 2 days ago
    Auto-check passed
  • Academic Research Mapper

    tinyfish-io/tinyfish-cookbook

    Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel.

    2.2k GitHub stars~3.5k tokensUpdated 2 days ago
    Auto-check passed
  • Agent

    tinyfish-io/tinyfish-cookbook

    Default browser automation agent — click, fill forms, navigate, log in, and extract structured data from any website using a natural-language goal, or run the same task across multiple sites in…

    2.2k GitHub stars~1.1k tokensUpdated 2 days ago
    Auto-check passed
  • Company Hiring Intelligence

    tinyfish-io/tinyfish-cookbook

    Reverse-engineer what a company is building by scraping their job postings, careers page, LinkedIn Jobs, and engineering blog using TinyFish web agents.

    2.2k GitHub stars~3.6k tokensUpdated 2 days ago
    Auto-check passed
  • Competitor Product Monitor

    tinyfish-io/tinyfish-cookbook

    Monitor competitor product releases and new feature announcements.

    2.2k GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed
  • Dep Security

    tinyfish-io/tinyfish-cookbook

    Check every dependency in a package.json against live CVE databases and security advisories in real time — specifically targeting vulnerabilities disclosed in the last 48 hours, the window that…

    2.2k GitHub stars~2.4k tokensUpdated 2 days ago
    Auto-check passed

Questions about Tenders Finder

What does Tenders Finder do?

Find open Singapore government tenders for any sector in real time using parallel TinyFish agents scraping multiple government tender portals simultaneously. Tenders Finder is an agent skill from tinyfish-io/tinyfish-cookbook. Find open Singapore government tenders for any sector in real time using parallel TinyFish agents scraping multiple government tender portals simultaneously.

When should I use Tenders Finder?

Tenders Finder fits situations like: A user wants to find government tenders; asks find tenders for IT in Singapore; what government contracts are open for construction; singapore tenders closing soon.

How do I install Tenders Finder in Claude Code?

Run `npx skills add tinyfish-io/tinyfish-cookbook --skill tenders-finder -a claude-code`. Or copy the skill folder (skills/tenders-finder in tinyfish-io/tinyfish-cookbook) into .claude/skills/tenders-finder in your project. Claude Code loads it when a task matches its description.

How do I install Tenders Finder in Codex?

Run `npx skills add tinyfish-io/tinyfish-cookbook --skill tenders-finder -a codex`. Or copy the skill folder (skills/tenders-finder in tinyfish-io/tinyfish-cookbook) into .agents/skills/tenders-finder in your project. Codex loads it when a task matches its description.

Can I use Tenders Finder in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tinyfish-io/tinyfish-cookbook --skill tenders-finder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tenders-finder, .gemini/skills/tenders-finder, .github/skills/tenders-finder and .opencode/skills/tenders-finder in your project.

What does Tenders Finder need to run?

Going by SKILL.md and its folder, Tenders Finder needs the command-line tools its instructions call (npm). Our summary lists: Node.js. Compatibility (from SKILL.md): {"tools":["tinyfish"]}.

Does Tenders Finder access the network?

SKILL.md names 5 domains. In commands or code: gebiz.gov.sg, tendersontime.com, biddetail.com, tendersinfo.com and globaltenders.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Tenders Finder safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tenders Finder use?

Tenders Finder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tenders Finder use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Tenders Finder?

Skills that share tags, products or a category with Tenders Finder: Finviz (gauss314/skills, 248 stars), Marketwatch (gauss314/skills, 248 stars), Apify Cost Tuning (jeremylongshore/tons-of-skills-marketplace, 2.8k stars) and Firecrawl Reliability Patterns (jeremylongshore/tons-of-skills-marketplace, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tenders Finder?

tinyfish-io (a GitHub organization) maintains it in tinyfish-io/tinyfish-cookbook, which has 2,230 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 8, 2026.

Source: tinyfish-io/tinyfish-cookbook on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.