Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证JobNetWork — jobs, internships, and career opportunities for students and freshers.
翻译准备中
正在加载完整 README。
查看完整 README ↗Stack: Next.js 14 (App Router) + Supabase (Postgres/Auth) + Vercel (hosting + cron) + Brevo (email alerts). Reasoning: it's the fastest path for a solo founder to a real production site — Supabase gives you a database, auth, and a dashboard without running your own server; Vercel gives you hosting + built-in cron for the email digest and price scrape jobs; both have generous free tiers.
app/
api/
jobs/route.ts -> proxies artha.link, merges in your own manually-added jobs
jobs/filters/route.ts -> proxies artha.link's filter option lists
cron/email-digest/route.ts -> sends the "new jobs matching your filters" email
cron/price-scrape/route.ts -> refreshes the scraped price/salary reference table
jobs/page.tsx -> the public listing page (filters + pagination + cards)
components/
JobCard.tsx, FilterBar.tsx, Pagination.tsx, EmailSignup.tsx
lib/
artha.ts -> artha.link API client with 429 backoff
supabase.ts -> Supabase server client
types.ts -> shared types
supabase/schema.sql -> tables for your own jobs, email subscribers, scraped prices
.env.example
npx create-next-app@latest already assumed — drop these files into that project (or npm install here once you add a package.json/tsconfig; this scaffold assumes Next 14 + TypeScript + Tailwind, all defaults from create-next-app).supabase/schema.sql in its SQL editor..env.example to .env.local and fill in real values.npm run dev locally, then push to GitHub and import into Vercel for a live URL (Vercel gives you yourproject.vercel.app immediately; add a custom domain in Vercel's dashboard whenever you buy one).vercel.json (included) so Vercel calls your digest and price-scrape endpoints on a schedule automatically — no server to babysit. Vercel's free Hobby plan only allows cron jobs to run once per day each — both are already set to once-daily (0 8 * * * and 0 9 * * *). If you upgrade to Pro later you can run price-scrape more often.Set ARTHA_API_KEY as a Vercel environment variable (Project Settings → Environment Variables), never in client code. Every call to artha.link happens inside app/api/jobs/route.ts, which runs on the server — the browser never sees the key. This also means you can rotate the key without redeploying your frontend.
I've stubbed this as a scheduled job (app/api/cron/price-scrape/route.ts) rather than building it in full, because it needs decisions only you can make:
robots.txt and Terms of Service before scraping it — some explicitly prohibit it, and a few (LinkedIn, Indeed) actively rate-limit or block scrapers and have pursued legal action against scrapers in the past. Safer sources: sites with an official API or open data feed, or sites whose ToS is silent/permissive on scraping.Retry-After/429s exactly like you do for artha.link.The stub uses cheerio for static HTML; if a target site needs JS rendering, swap in playwright (heavier, needs a different Vercel runtime — happy to wire that up once you pick sources).
components/EmailSignup.tsx collects an email + saved filters into the subscribers table. app/api/cron/email-digest/route.ts runs daily (see vercel.json), pulls jobs posted since each subscriber's last_sent_at, and sends via Brevo (set BREVO_API_KEY and a verified EMAIL_FROM; check it with /api/cron/email-check?key=CRON_SECRET). Swap in SendGrid/Postmark if you prefer; the calling code is a 10-line change.
https://<project>.vercel.app URL immediately.