I Built a Niche AI/ML Job Board in 48 Hours — Here's the Exact Stack
I just launched aijobsboard.oblivionlabz.net — a fully autonomous AI/ML remote jobs board that auto-aggregates listings, serves job seekers for free, and charges employers to feature listings.
The Business Model
- Job seekers: Free. Always.
- Employers: $99-$299 to feature/pin a listing (via Stripe Checkout)
- Zero manual work: Jobs auto-populate from APIs every 30 minutes
Proven model: a similar niche board made $21k in its first 4.5 months of 2025.
The Tech Stack
Next.js 14 (App Router)
TypeScript
Tailwind CSS
Stripe (Checkout + Webhooks)
Vercel (hosting)
Cloudflare DNS
How Jobs Auto-Populate
I pull from 3 free sources with zero scraping — all RSS/JSON feeds:
const SOURCES = [
'https://remoteok.com/api?tag=ai',
'https://remotive.com/api/remote-jobs?category=software-dev&limit=50',
'https://jobicy.com/?feed=job_feed&job_category=dev&job_types=full-time'
]
No scraping. No paid APIs. Free to consume.
The Stripe Flow
- Employer hits
/post-job - Fills out company, title, URL, listing type
- Redirects to Stripe Checkout ($99 or $299)
- On success, webhook fires and job gets featured
export async function POST(req: Request) {
const event = stripe.webhooks.constructEvent(
body, sig, process.env.STRIPE_WEBHOOK_SECRET!
)
if (event.type === 'checkout.session.completed') {
// Store featured job, send confirmation
}
}
What Makes It Autonomous
- Jobs refresh via Vercel ISR (revalidate every 30 min)
- Payments process automatically via Stripe
- No database needed
- Zero moderation for organic listings
The SEO Play
Niche job boards rank fast for long-tail terms:
- "remote machine learning jobs"
- "AI engineer remote jobs 2026"
- "LLM engineer remote work"
Each job listing is a static page with proper meta tags and schema markup.
The Numbers
- Build time: 48 hours
- Monthly cost: $0 (Vercel free tier + free APIs)
- Revenue model: $99-$299 per featured listing
- Autonomy level: 97%
The board is live: aijobsboard.oblivionlabz.net
Built by Oblivion Labz
Top comments (0)