- Register
openintern.dev(confirm checkout is standard.devpricing, not premium). - Optional: register
openintern.ca(Canadian Presence Requirement — citizens/PRs eligible) and 301 to.dev. - Skip aftermarket
intern.dev.
Already created: https://github.com/dnexdev/openintern (public, Apache-2.0).
Suggested topics: internships, open-data, job-board, typescript, nextjs, greenhouse.
Homepage: https://openintern.dev
| Secret | Purpose |
|---|---|
DATABASE_URL |
Neon/Postgres connection string (required for Ingest + Dump workflows) |
Without DATABASE_URL, scheduled Ingest/Dump runs fail immediately. Add the same Neon URL you use locally / on Vercel.
# From a machine with gh auth:
gh secret set DATABASE_URL --body "$DATABASE_URL"Then re-run: Actions → Ingest → Run workflow (and Dump once dumps are empty).
- Import
dnexdev/openinternat vercel.com - Framework: Next.js; root
vercel.jsonsets install/build for the monorepo - Add env vars from
.env.example(DATABASE_URLrequired; optionalAPI_RATE_LIMIT_PER_MINUTE) - Domains → add
openintern.devand point DNS at Vercel - Ingest/dumps stay on GitHub Actions (not Vercel Cron)
Hobby notes: fine for the board + rate-limited API. Daily dumps remain the bulk path.
- Create a free Neon project
- Copy the connection string →
DATABASE_URL - Locally or in CI:
pnpm db:migrate pnpm sync-companies && pnpm ingest
In the repo Actions tab, ensure Ingest and Dump are allowed for scheduled runs. After setting DATABASE_URL, manually run Dump once so dump-latest has jobs.json / jobs.csv.