Opportunity Hub
Job & Lead Discovery Portal
Role: Full-Stack Engineer
Next.jsReactTypeScriptGoogle Sheets APITanStack TablenuqsTailwind CSSdate-fnsReact MarkdownPythonJobSpyPlaywrightgspreadDockerRailway
Opportunity Hub is a read-only analytics and browsing portal for scraped job listings and startup leads written by a Python job-scraping pipeline into Google Sheets. Unlike manual spreadsheet digging, it provides a structured dashboard for discovering, filtering, and acting on fresh opportunities across multiple sources — with overview analytics, per-source data tables, advanced filtering, and record-level detail views.
The platform pairs a production Next.js frontend (deployed on Vercel) with a multi-source Python ingestion pipeline that scrapes Indeed, LinkedIn, TechCrunch, TopStartups, GrowthList, and Wellfound, normalizes records, enriches them with company-size and funding metadata, and appends deduplicated rows to Google Sheets. The portal consumes the same spreadsheet and column definitions, turning raw scraped output into a fast, shareable discovery interface for teams.
What we built
Google Sheets Data Layer
- Built a read-only Google Sheets integration using a service account with tab discovery, schema detection (job vs lead), and server-side caching for fast, reliable reads across all worksheet tabs.
- Exposed REST API routes (/api/tabs, /api/sheets/[tab]) for tab metadata and per-sheet data, separating data fetching from UI concerns.
Tab Catalog & Navigation
- Designed a tab catalog that groups data into Jobs (keyword-based tabs plus pinned sources like TopStartups Jobs and Wellfound) and Leads (TechCrunch, GrowthList).
- Added row counts and sidebar navigation so users can browse 20+ sources without opening the raw spreadsheet.
Overview Dashboard
- Built an analytics dashboard with jobs-vs-leads breakdown, top sources, top locations, and a 30-day postings timeline.
- Surfaced recent activity metrics including week-over-week posting deltas aggregated across all tabs.
Per-Tab Data Tables
- Implemented schema-aware data tables with TanStack Table — sortable columns, pagination (100 rows/page), and distinct layouts for job vs. lead records.
- Supported job fields (company, title, location, salary, work arrangement, seniority) and lead fields (funding amount, round, investors, industry, country).
Impact
- Replaced manual spreadsheet digging with a structured, filterable discovery portal for jobs and startup leads.
- Centralized 900+ records across 25 worksheet tabs into a single analytics dashboard with shareable filtered views.
- Automated multi-source ingestion from 5+ platforms with deduplication, enrichment, and continuous sheet updates.
- Enabled teams to quickly discover remote jobs by keyword, location, and source, and track startup funding leads in one place.
- Delivered an end-to-end full-stack system — Python pipeline → Google Sheets → Next.js API → production UI on Vercel.