best / README.md
anky2002's picture
fix: Honest README - real feature status, no false claims, actual ATS count"
dc1d22f verified
|
Raw
History Blame Contribute Delete
4.87 kB
# 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
```bash
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 | `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](SECURITY.md) and [PRIVACY.md](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](CONTRIBUTING.md)
## License
MIT β€” see [LICENSE](LICENSE)