Free, CORS-enabled REST endpoints, RSS 2.0 syndication, and zero-cost Telegram alert bots. Power your Discord channels, university job boards, and automated trackers with direct career portal feeds.
Choose your integration method below: deploy our ultra-lightweight Telegram bot on a tiny VPS, poll our free REST/RSS endpoints, or use GitHub Actions for 100% zero-server scheduled alerts.
All Active Jobs (Global): Clean JSON array of all verified active software and tech internships worldwide, sorted newest first.
Today's New Sync (Diff): Returns newly discovered and reopened internships from the latest daily sync cycle. Ideal for polling bots.
{
"updated_at": "2026-10-15T03:00:00Z",
"new_count": 5,
"reopened_count": 1,
"total_active": 128,
"new_jobs": [
{
"company": "Google",
"title": "Software Engineering Intern, Summer 2027",
"url": "https://www.google.com/about/careers/...",
"city_tag": "Bengaluru",
"category": "Software",
"posted": "2026-10-14"
}
]
}
Query regional JSON datasets directly without client-side filtering:
/in/api/active.json & /in/api/latest.json
/us/api/active.json & /us/api/latest.json
/ca/api/active.json & /ca/api/latest.json
/uk/api/active.json & /uk/api/latest.json
/eu/api/active.json & /eu/api/latest.json
/metrics.json (Counts across all countries)
Standard RSS 2.0 feed. Connect directly to no-code Telegram bots, Discord webhooks, or Slack with zero programming.
import requests
data = requests.get("https://internscan.vercel.app/api/latest.json").json()
for job in data.get("new_jobs", []):
print(f"[{job['company']}] {job['title']} -> {job['url']}")
const res = await fetch("https://internscan.vercel.app/api/latest.json");
const { new_jobs } = await res.json();
console.log(`Found ${new_jobs.length} new openings!`);
Our bot script is built with pure Python 3 using standard libraries, requiring less than 15% of a 256MB RAM server.
git clone https://github.com/vishnunandan555/internscan.git
cd internscan/bot
pip install -r requirements.txt
cp .env.example .env && nano .env
python3 main.py
.envCreate a bot in 30 seconds via @BotFather on Telegram, add it to your channel as an Admin, and paste your values:
TELEGRAM_BOT_TOKEN=7123456789:AAHfkj...
TELEGRAM_CHAT_ID=@my_internships_channel
POLL_INTERVAL_SECONDS=1800
Use the pre-packaged service unit so your bot boots automatically on server restart:
sudo cp internscan-bot.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now internscan-bot
sudo systemctl status internscan-bot
Users in your group can message: /latest (new roles today), /active (all verified roles), /status (health check & memory).
Read detailed deployment instructions and troubleshooting in bot/README_bot.md on GitHub →
Fork vishnunandan555/internscan to your personal GitHub account.
In your forked repo: Navigate to Settings → Secrets and variables → Actions and add two secrets:
TELEGRAM_BOT_TOKEN: Bot token from @BotFatherTELEGRAM_CHAT_ID: Channel username (e.g. @my_channel) or chat IDYour GitHub Actions workflow will execute automatically on schedule. When any new internship appears, it immediately pushes the notification to your Telegram chat!
active: false and timestamped with closed. Records are permanently retained to track posting flapping.uid = "{company_slug}:{external_id}" derived from the employer's official ATS requisition number.// Single Job Schema
{
"uid": "google:123456789",
"company": "Google",
"title": "Software Engineering Intern, Summer 2027",
"url": "https://www.google.com/about/careers/applications/jobs/results/...",
"locations": ["Bengaluru, Karnataka, India"],
"city_tag": "Bengaluru",
"category": "Software",
"first_seen": "2026-10-12",
"last_seen": "2026-10-15",
"active": true,
"closed": null,
"source": "api"
}
Positions are fetched directly from Workday, Greenhouse, SmartRecruiters, Lever, Oracle HCM, Eightfold, and custom corporate APIs every 3 hours.
Both our scrapers and bot engine avoid heavy frameworks or headful browsers. Pure Python standard libraries ensure instant cold starts and minimal resource consumption.
Rule-based categorization categorizes roles into Software, AI/ML, Data Engineering, Silicon/Hardware, Cloud/Infra, Mobile, and Security buckets.
The entire scraping engine, database, website, and Telegram bot are licensed under MIT. Contributions and new company adapters are welcomed on GitHub.