Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
AI safety roles matched to your profile. See why you fit, where your gaps are, and what to do next.
BusinessGitHub @baishargOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A career command center for AI safety talent. Users maintain living profiles, receive AI-powered opportunity matching with fit explanations, and get personalized career recommendations.
Live at safetytalent.org.
ASTN connects three groups: individuals pursuing AI safety careers, local organizations (like BAISH) managing their communities, and opportunity posters looking for matched candidates.
| Layer | Technology |
|---|---|
| Frontend | React 19, TanStack Start/Router/Query, Tailwind v4, shadcn/ui |
| Backend | Convex (database, real-time sync, serverless functions) |
| Auth | Clerk (GitHub, Google, Email+Password) |
| AI | Claude (career advisor, extraction), Gemini Flash (matching), Kimi K2.5 (conversation) |
| Resend with React Email templates | |
| Analytics | PostHog |
| Deployment | Vercel |
| Runtime | Bun |
git clone <repo-url>
cd ASTN
vp install
.env.local file with your client-side keys:VITE_CONVEX_URL=<your convex deployment url>
VITE_CLERK_PUBLISHABLE_KEY=<your clerk publishable key>
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY | Yes | Claude API key for matching, career advisor, and extraction |
RESEND_API_KEY | Yes | Resend key for transactional email |
EIGHTY_K_ALGOLIA_APP_ID | No | 80K Hours job scraping |
EIGHTY_K_ALGOLIA_API_KEY | No | 80K Hours job scraping |
AIRTABLE_TOKEN | No | aisafety.com job board + CRM import |
AIRTABLE_BASE_ID | No | Airtable base for imports |
AIRTABLE_TABLE_NAME | No | Airtable table for imports |
bun run dev
This runs both the Vite frontend and Convex backend concurrently.
bun run dev:web # Frontend only
bun run dev:convex # Convex backend only
bun run build # Production build
bun run lint # Type check + lint
bun run format # Prettier format
src/
routes/ # TanStack file-based routing (all pages)
components/ # React components organized by feature
agent-sidebar/ # AI career advisor
matches/ # Match cards and detail views
profile/ # Profile editor and upload wizard
org/ # Organization pages and admin
ui/ # shadcn/ui primitives
hooks/ # Shared React hooks
lib/ # Client utilities
convex/
schema.ts # Database schema (all tables + indexes)
matching/ # Two-tier AI matching engine
agent/ # Career advisor agent (tools, prompts, threads)
aggregation/ # Opportunity scrapers (80K Hours, aisafety.com)
enrichment/ # Profile extraction from CV and conversation
engagement/ # LLM engagement scoring
emails/ # React Email templates + send logic
careerActions/ # Personalized career step generation
crons.ts # Scheduled jobs (sync, emails, engagement)
| Path | Description |
|---|---|
/ | Dashboard with matches, career actions, events |
/profile/edit | Profile editor |
/matches | Opportunity matches by fit tier |
/opportunities | Browse all opportunities |
/orgs | Organization directory with map |
/org/:slug/admin | Org admin dashboard |
/admin | Platform admin |