YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
JobPortal AI β Open Source Job Search OS
An open-source, local-first job search platform with AI career tools, multi-source scraping, and application tracking.
Status: Early Beta. Core tracker and scraping work. AI features require Ollama or cloud API key. Not production-hardened yet.
What Works Today
β Stable
- User auth β register, login, JWT refresh, OAuth (Google/GitHub)
- Application tracker β kanban board, status tracking, interviews, reminders
- Job scraping β Greenhouse, Lever, Ashby public APIs + universal URL scraper
- Job search β filter by remote/salary/seniority/location/type
- Profile editor β experience, education, skills, preferences
- Resume CRUD β create versions, PDF/DOCX export, upload & parse
- Cover letters β create, edit, AI generate
- Alerts β saved searches with email/webhook/in-app notifications
- Admin β source management, health dashboard, bulk import
- Chrome extension β detect jobs, one-click save (prototype)
- Dark/light theme β neo-brutalism UI with working toggle
β οΈ Beta (works but needs evaluation)
- AI resume review β ATS scoring, keyword gaps (requires LLM)
- AI job matching β compare resume vs JD
- Interview prep β question generation, STAR coaching
- Cover letter generation β AI-written, tone selection
- Resume tailoring β optimize bullets for specific job
- Networking messages β LinkedIn/email drafts
- Salary insights β aggregate from scraped data
- Skill gap analysis β identifies missing skills + learning plan
π§ͺ Experimental
- Career path explorer β AI trajectory mapping
- Culture match β work style assessment
- Salary negotiation coach β offer analysis + scripts
- Elevator pitch generator
- Job comparison tool
- Market trends β skill demand tracking
- Gamification β streaks, achievements
- Semantic search β pgvector embeddings (infrastructure ready, indexing TODO)
π« Not Implemented Yet
- Chrome Web Store distribution
- Email/Gmail sync
- Mobile native app
- Billing/quotas
- Workday/iCIMS/BambooHR connectors
- Hosted public demo
Architecture
Frontend: Next.js 15 Β· React 19 Β· Tailwind v4 Β· Framer Motion
Backend: FastAPI Β· SQLAlchemy 2.0 async Β· Pydantic v2 Β· LiteLLM
Database: PostgreSQL 17 (pgvector) Β· Redis 7
Workers: Celery Β· Scheduled scraping + alerts
Storage: Cloudflare R2 (production) Β· Local (development)
AI: Ollama (default, free) Β· OpenAI Β· Anthropic Β· Gemini Β· Mistral Β· DeepSeek Β· Grok Β· HF
Supported Job Sources
| Source | Type | Status |
|---|---|---|
| Greenhouse (30+ boards) | Public API | β Working |
| Lever (15+ boards) | Public API | β Working |
| Ashby | Public API | β Working |
| RemoteOK | Free API | β Working |
| Arbeitnow | Free API | β Working |
| HN Who's Hiring | Algolia API | β Working |
| WeWorkRemotely | RSS | β Working |
| Remotive | RSS | β Working |
| Any URL (universal) | HTML/JSON-LD/LLM | β Working |
| Workday | Planned | β |
| SmartRecruiters | Planned | β |
| iCIMS | Planned | β |
Quick Start
git clone https://github.com/anky2002/best
cd best
make setup # Installs deps, starts DB/Redis, runs migrations, seeds demo data
make dev # Starts DB + Redis
make backend # Terminal 1: API on :8000
make frontend # Terminal 2: Web on :3000
# Optional: Local AI (free, no API key needed)
ollama pull llama3.2
Demo login: demo@jobportal.dev / demo123
Admin: admin@jobportal.dev / admin123
API docs: http://localhost:8000/api/v1/docs
LLM Providers
Default is Ollama (free, local, private). Add cloud keys in Settings for better quality:
| Provider | Env Var | Best For |
|---|---|---|
| Ollama | (none needed) | Privacy, free, offline |
| OpenAI | OPENAI_API_KEY |
Best quality overall |
| Anthropic | ANTHROPIC_API_KEY |
Cover letters, long-form |
| DeepSeek | DEEPSEEK_API_KEY |
Cheapest cloud option |
GOOGLE_API_KEY |
Fast, good value | |
| Mistral | MISTRAL_API_KEY |
European hosting |
| xAI | XAI_API_KEY |
Grok models |
| HuggingFace | HUGGINGFACE_API_KEY |
Open models |
Security
- Passwords: Argon2 hashing
- API keys: Fernet AES encryption at rest (PBKDF2 key derivation)
- Tokens: JWT with enforced secret in production
- See SECURITY.md and PRIVACY.md
Known Limitations
- Tokens stored in localStorage (XSS risk β HttpOnly cookies planned)
- No token revocation on logout (blacklist planned)
- Rate limiter fails open if Redis down
- AI features not evaluated for accuracy yet
- No hosted demo available
Contributing
See CONTRIBUTING.md
License
MIT β see LICENSE
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support