Empty database. Click Run internet sweep on the Dashboard (or run python internet_sweep.py) to populate tenders.
⚠
Tender247 session expired
On your laptop run python3 tender247_setup.py and push the new tender247_state.json to the server.
Active shortlist
—
not yet expired
My tenders
—
assigned to me
Closing ≤ 7d
—
on shortlist
Reminders due
—
today or overdue
Unassigned
—
need an owner
Awaiting triage
—
new, unassigned
—
Closing in next 14 days
Shortlisted tenders sorted by close date — act on these first.
No shortlisted tenders closing in the next 14 days.
By assignee
No assignments yet.
Agent runs
Triggers run the Python scripts in the background. Tail logs/ for live output.
No runs yet.
Top matches awaiting review
Highest-confidence tenders that are new AND unassigned — shortlisted or owner-tagged ones are filtered out.
| Fit | Tender | Buyer | Location | Source | Match | Score | Value | Closes | Status | Actions |
|---|
No tenders to show.
Showing 0 tenders
PSU Tenders
Tenders from Indian PSU vendor portals — TCIL, RailTel, BEL, ECIL and others. Pick a PSU from the dropdown to focus.
0 total
| Fit | Tender | Buyer | Location | Source | Match | Score | Value | Closes | Status | Actions |
|---|
No PSU tenders to show.
Showing 0 tenders
Shortlisted tenders
—
Tenders assigned to me
—
Tenders assigned to you (any status except discarded/rejected). Sorted by close date — earliest first.
Archive
—
Shortlisted tenders whose close date passed. The watcher checks daily for ~7 days to see if a corrigendum / extension / re-tender appears, and auto-promotes both back to Shortlist when confidence > 60.
All Scraped Tenders
Every tender the scraper has captured — including discarded ones. Adjust the score if the classifier got something wrong.
Showing 0 of 0
No data yet — run a scrape first.
| Score | Title | Buyer | Location | Status | Source | Closes | Added | Actions | |
|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||
Sources
One card per tender source. Use Setup to re-capture login session or refresh selectors when the portal changes.
T7
Tender247
active
Login-gated aggregator · Playwright with saved session
ToS note: automated access may violate vendor terms. Throttle aggressively.
Session filetender247_state.json
Config filetender247_config.json
AI
Internet sweep
active
Claude web-search agent · catches tenders outside Tender247
Runs one or more queries per Mobilise product line. No login required — uses your Anthropic API key.
TC
TCIL
active
Indian govt IT outsourcer · Playwright · partner-login for downloads
Filtered to IT & Networking + Telecommunication categories.
Listing is public; attachments need a saved partner-login session.
ScheduleEvery 2h · 07:00–21:00 IST
Session filetcil_state.json
+
Add another source
CPP Portal, GeM, state e-procurement, or another paid portal
Local configuration
Tender247 loginin .env
Anthropic API keyin .env
SQLite database./tenders.db
Server127.0.0.1
Email notifications
Summary digest after every successful scrape / sweep
Taxonomy & focus areas
Edits apply to new scrapes automatically. Use "Re-classify all" to re-score existing tenders after a change.
Products
Focus areas
Describe what kinds of tenders to prioritise. Click the magic wand to auto-generate keywords from your description — the classifier uses these to score relevance.
Keywords
Geography
Hybrid mode: preferred states get a score boost, excluded states are auto-discarded.
Preferred states (+boost)
Excluded states (auto-discard)
Schedule
Automated scrapes run daily at 9:00 AM and 4:00 PM IST via systemd timer. Control and monitor here.
Timer
—
checking…
Next fire
—
Last run
—
Auto-refreshes every 15 s while this page is open.
Schedule details
Fire times
• 09:00 IST · 03:30 UTC
• 16:00 IST · 10:30 UTC
Behaviour
• Random 0–120 s jitter to avoid thundering-herd
• Catches up on missed runs (Persistent=true)
• Emails digest after each successful run
Scheduled-run log
Loading…
Settings
Sources, AI routing, mail alerts and notifications. Editable by admins.
Tender247 credentials
Used for the initial setup wizard and for headless auto-relogin when the saved session expires.
PSU vendor portals
Loading PSU sources…
AI providers
Pick a routing strategy and add API keys for the providers you want to use.
Falls back automatically across providers if one fails / hits its quota.
Routing strategy
API keys & endpoints
🤖
Claude
Anthropic — set via ANTHROPIC_API_KEY env on the server
checking…
✨
Gemini
not set
⚡
Groq
not set
🖥
Ollama
…
Where do I get these keys? show me
Gemini: aistudio.google.com/apikey — free tier: 1500 req/day, 1M token context
Groq: console.groq.com/keys — free tier: ~14,400 req/day, 700+ tokens/sec
Claude (Anthropic): console.anthropic.com — set on server only (paid)
▾ Advanced — per-task routing & Ollama model names
The preset above just batch-sets these dropdowns. Touch them only if you want different providers per task.
Editing any of these flips the preset to Custom.
Model overrides
Mail alerts
Each alert has its own enable toggle and its own recipient list — no
fallback. Recipients can be anyone — they don't need to be portal
users. Comma- / semicolon- / newline-separated.
Loading alerts…
Preview
Default notification recipients legacy
Comma-separated. Used by the SMTP test-email button and the legacy
Tender247 scrape digest. Per-alert recipients in the
Mail alerts tab take precedence over this list — they do not
inherit from it.
Company Profile
The data here drives the
Evaluate eligibility button on each tender. Everyone can view;
only admins can edit.
—
read-only · admins edit
🔍
AI Research
Search the public web and pre-fill this profile. You'll review every value before it's saved.
…
0 / 0
…
Snapshot
Loading…
Loading company profile…