A scalable, collaborative platform for discovering internships, jobs, research opportunities, hackathons, and more in the computer science field.
- 12 Opportunity Categories β Internships, jobs, research, hackathons, conferences, workshops, scholarships, fellowships, and more
- Smart Filtering β Filter by type, location, skills, and deadline urgency
- Full-Text Search β Instantly find opportunities by keywords
- Responsive Design β Works on desktop, tablet, and mobile
- Automatic Cleanup β Expired opportunities are removed daily via GitHub Actions
- Contributor Tracking β PR submissions automatically tracked (hidden metadata)
- JSON Validation β Ensures data quality with pre-commit hooks and CI/CD checks
- Browser Caching β IndexedDB support for offline access and fast loading
- Scalable Architecture β Supports 100+ opportunities without performance degradation
| Category | Description | Use Case |
|---|---|---|
| Internship | Short-term (2-6 months) | Summer/semester placements |
| Job | Full-time/contract roles | Career opportunities |
| Research | Academic/industry research | Publications, learning |
| Project | Hands-on projects | Portfolio building |
| Hackathon | Competitive events | Innovation, prizes |
| Conference | Tech conferences | Networking, learning |
| Workshop | Training sessions | Skill development |
| Scholarship | Financial aid | Tuition support |
| Fellowship | Structured programs | Mentorship, growth |
| Freelance | Part-time/gig work | Flexible income |
| OpenSource | Open-source contributions | Community impact |
| Grant | Project funding | Ideas to reality |
- Vanilla HTML/CSS/JavaScript (zero dependencies for UI)
- IndexedDB for client-side caching
- Responsive grid layout
- Modal for detailed views
jobs.jsonβ Single source of truth- JSON Schema for validation (
schema.json) - GitHub Actions for automation
- Pre-commit hooks (Husky)
- Automated workflows:
- Daily expired item cleanup
- PR contributor tracking
- JSON validation on every commit
Simply visit the static page (no installation required).
# Clone the repository
git clone https://github.com/your-org/opportunity-board.git
cd opportunity-board
# Install dependencies
npm install
# Setup git hooks
npx husky install
# Validate JSON before contributing
npm run validate- Edit
jobs.jsondirectly or submit a PR - Follow the schema (see CONTRIBUTING.md)
- Validate your changes:
npm run validate
- Submit PR β Your contribution will be auto-tracked with metadata
{
"title": "DevOps Engineer Intern",
"org": "Vercel",
"type": "Internship",
"location": "Remote",
"skills": "Docker, Kubernetes, CI/CD, Node.js",
"stipend": "$7,500/mo",
"deadline": "2026-07-01",
"desc": "Help us scale our infrastructure and improve deployment systems.",
"eligibility": "2nd+ year B.Tech students, Docker experience preferred.",
"apply": "https://vercel.com/careers"
}See CONTRIBUTING.md for detailed guidelines and schema reference.
[
{
"title": "Job Title",
"org": "Organization",
"type": "Internship | Job | Research | Project | ...",
"location": "City, Country",
"skills": "Skill1, Skill2, Skill3",
"stipend": "Amount with currency",
"deadline": "YYYY-MM-DD",
"desc": "Brief description",
"eligibility": "Who can apply",
"apply": "URL or 'internal'"
}
]See ARCHITECTURE.md for the enhanced schema with:
- Unique IDs
- Structured location and compensation data
- Multi-faceted filtering
- Full contributor tracking
File: .github/workflows/cleanup-expired.yml
Runs daily at 2:00 AM UTC:
- Removes opportunities past their deadline
- Creates automated PR for review
- Maintains data freshness
Customization: Edit the cron schedule in cleanup-expired.yml
schedule:
- cron: '0 2 * * *' # Daily at 2 AM UTCFile: .github/workflows/add-contributor.yml
Automatically triggered on PRs to jobs.json:
- Detects newly added opportunities
- Adds contributor metadata (hidden from UI)
- Comments on PR confirming attribution
Example metadata (stored but not shown):
{
"contributors": [
{
"username": "github-username",
"pullRequest": "https://github.com/org/repo/pull/123",
"addedAt": "2026-04-26T10:30:00Z"
}
]
}File: .github/workflows/validate.yml
Runs on every push/PR:
- Validates JSON syntax
- Checks schema compliance
- Prevents invalid data merges
- Direct DOM rendering
- In-memory filtering
- Modal details view
- IndexedDB Caching β Cache data locally for offline access
- Virtual Scrolling β Render only visible items (supports 1000+ entries)
- Service Worker β Background updates and offline mode
- Full-text Search β Sub-100ms search latency (FlexSearch.js)
See ARCHITECTURE.md for implementation details.
- ARCHITECTURE.md β System design, scalability strategy, schema v2.0
- CONTRIBUTING.md β Contribution guidelines and validation rules
- IMPLEMENTATION.md β Step-by-step implementation guide for features
- schema.json β JSON Schema for data validation
Ensure JSON is valid before committing:
npm run validateOutput example:
β
jobs.json is valid!
π Summary:
- Total opportunities: 5
- Last updated: 2026-04-26T10:30:00Z
Auto-validate on file changes:
npm run validate:watch- Chrome/Edge β Latest 2 versions
- Firefox β Latest 2 versions
- Safari β Latest 2 versions
- Mobile β iOS 12+, Android 6+
- Basic UI and filtering
- JSON data structure
- Contribution guidelines
- GitHub Actions for cleanup
- Data validation with pre-commit hooks
- Contributor tracking automation
- IndexedDB caching
- Virtual scrolling for large datasets
- Service Worker support
- Migration to schema v2.0
- Enhanced filtering and metadata
- Analytics dashboard
- Notification system (email/Slack)
- User watchlists
- AI-powered recommendations
Track opportunities by:
- Category β Which types are most popular
- Location β Remote vs. on-campus distribution
- Timeline β Deadline clustering
- Engagement β Most viewed opportunities
Coming in v2.0
We welcome contributions! Please:
- Read CONTRIBUTING.md
- Validate your JSON:
npm run validate - Create a PR with a descriptive title
- Your contributor name will be automatically tracked
MIT Β© 2026 Department of Computer Science
- Issues β Report bugs or suggest features on GitHub
- Discussions β Ask questions or share ideas
- Email β Contact the maintainers
- Built with β€οΈ by the CS Department
- Contributors tracked automatically via GitHub Actions
- Inspired by job board and opportunity aggregator platforms
Last Updated: April 26, 2026
Version: 1.0.0
Opportunities: 5+ and growing!