opencompany
스스로 개선하는 AI가 사업 전체를 운영, 6명 AI 직원이 개발·디자인·회계·영업·마케팅·세무를 200개 모델로 자동화
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Ever® Hust™ - The Anti-Hustle Career OS. An open agentic job-search platform that finds, evaluates and tailors your applications, then tracks every one from first search to signed offer - https://hust.so
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗An open agentic job-search platform that finds, evaluates and tailors your applications, then tracks every one from first search to signed offer.
Website · Documentation · Live App · Discord · Roadmap
[!NOTE] Hust is a standalone product. It runs fully without any Gauzy product — its only hard external dependency is the Ever Jobs API (job listings). It optionally integrates with the wider Ever Gauzy platform for the agency/company scenario. See Relationship to Ever Gauzy / Ever Jobs.
Hust is an open-source, AI-native platform that takes a job seeker through the entire journey — from the first search to a signed offer — without the spray-and-pray grind. The interface is conversational: an AI assistant on the left, a live jobs canvas on the right. But unlike a job board or a search box, Hust doesn't just find roles — it evaluates them for you, tailors your applications, and tracks every one through to the offer.
Anti-Hustle is the whole point: instead of pushing you to apply to more, Hust helps you apply to fewer, better jobs. It scores each opening against your CV and goals with an explainable fit verdict — and an honest "don't bother" when the math says so — flags postings that may not be real with a ghost-job radar, turns your profile into real, ATS-ready résumés and cover letters (generated with your sign-off, never sent behind your back), preps you with a STAR interview story bank, scripts your salary negotiation, and runs funnel analytics that learn from your outcomes to sharpen your targeting.
Two principles run through everything: quality over quantity and human-in-the-loop. Hust is built to say no on your behalf — to bad-fit roles and fake postings — and never applies for you without explicit consent. Your data stays yours, the source is auditable, and the AI's job is to advise, not to grind.
Hust works for individuals out of the box and scales to agencies and enterprises — organizations, teams, an admin console, an enterprise API, and white-label branding are built in, and an optional integration with the Ever Gauzy platform adds employee/org sync (SSO) and automated apply-at-scale. Hust's only hard dependency is the Ever Jobs sourcing API; everything else — including the Gauzy integration — is optional. Released under AGPL-3.0.
The candidate journey, end to end: find → evaluate → tailor → apply → interview → negotiate → track.
| Category | Feature | Details |
|---|---|---|
| AI Chat | Conversational job search | Split-screen with persistent sessions, deep-link support |
| Job Canvas | List / Split / Map views | Realtime updates via Supabase, Google Maps integration |
| AI Tools | 12 orchestrated tools | Search, apply, cover letters, interview prep, salary insights, company research, resume builder |
| Favorites & Compare | Side-by-side comparison | Compare jobs with "Discuss with AI" integration |
| Subscriptions | Free / Pro / Enterprise tiers | Stripe checkout, gated features, BYOK API keys |
| Alerts | Custom job alerts | Email notifications via Resend (daily/weekly) |
| Admin | Dashboard + white-label | User management, analytics, branding, org AI config |
| Enterprise | Teams & API | Organization accounts, developer API keys, usage analytics |
| PWA | Installable + offline | Service worker, push notifications, offline fallback |
| i18n | Multi-language | Language switcher in sidebar |
Deeper candidate-workflow depth — the fit-scoring engine, ghost-job radar, document rendering, pipeline, and funnel analytics — is on the active roadmap toward the full Anti-Hustle Career OS. See the PRD.
| Conversational job search | Live jobs canvas |
|---|---|
Full walkthroughs and a live demo at hust.so and docs.hust.so.
| Layer | Technology |
|---|---|
| Framework | Next.js 16.1 (App Router, Turbopack, Server Components) |
| Styling | Tailwind CSS 4.1 + ShadCN UI |
| Build | Turborepo monorepo + pnpm |
| Auth | BetterAuth v1 (LinkedIn OAuth) |
| Database | PostgreSQL via Supabase (Drizzle ORM) |
| AI | Vercel AI SDK v6, OpenRouter, Claude Sonnet 4 default |
| Observability | Langfuse (prompts + tracing), Sentry, PostHog, OpenTelemetry |
| Payments | Stripe subscriptions + webhooks |
| React Email + Resend | |
| Background Jobs | Trigger.dev v3 |
| State | Zustand (client), React Query (server state) |
| Testing | Jest (1240 unit tests) + Playwright (E2E) |
| Deployment | Vercel |
Requirements: Node.js 24+ · pnpm 10+ · a Supabase project · a LinkedIn Developer App · a Stripe account · an AI provider key (OpenRouter or Anthropic).
graph TB
subgraph "Client (Browser)"
UI[Next.js 16 App Router]
SW[Service Worker / PWA]
end
subgraph "API Routes (Serverless)"
Auth[BetterAuth + LinkedIn OAuth]
Chat[AI Chat Stream]
Jobs[Jobs CRUD + Search]
Stripe[Stripe Webhooks]
Admin[Admin APIs]
end
subgraph "AI Layer"
Orchestrator[Orchestrator Agent]
Router[Model Router<br/>BYOK → Preference → Tier → Default]
Tools[12 AI Tools]
Langfuse[Langfuse Prompts]
end
subgraph "Data"
DB[(PostgreSQL / Supabase)]
Realtime[Supabase Realtime]
Storage[Supabase Storage]
end
subgraph "External Services"
OpenRouter[OpenRouter / Anthropic]
StripeAPI[Stripe]
ResendAPI[Resend Email]
TriggerDev[Trigger.dev]
Maps[Google Maps]
end
UI --> Auth & Chat & Jobs & Stripe & Admin
Chat --> Orchestrator --> Router --> OpenRouter
Orchestrator --> Tools
Orchestrator --> Langfuse
Jobs --> DB
Realtime --> UI
TriggerDev --> DB & ResendAPI
UI --> Maps
ever-hust/
├── apps/web/ # Next.js application
│ ├── app/
│ │ ├── (admin)/ # Admin dashboard (route group)
│ │ ├── (auth)/ # Login / signup (route group)
│ │ ├── (dashboard)/ # Main app: chat, jobs, profile, settings
│ │ ├── (marketing)/ # Landing, pricing, about, contact, docs
│ │ └── api/ # 40+ API routes
│ ├── components/ # React components (canvas, chat, admin, etc.)
│ ├── hooks/ # 18 custom hooks
│ └── lib/ # Utilities, env, stores, constants
├── packages/
│ ├── ai/ # Orchestrator, model router, tools, prompts
│ ├── auth/ # BetterAuth config
│ ├── cv-parser/ # CV/resume parsing
│ ├── db/ # Drizzle ORM schemas + migrations
│ ├── email/ # React Email templates + send helpers
│ ├── jobs-api/ # Ever Jobs external API client
│ ├── stripe/ # Stripe checkout, portal, webhooks
│ ├── supabase/ # Supabase client (Realtime + Storage)
│ ├── triggers/ # Trigger.dev background tasks
│ ├── ui/ # ShadCN shared components
│ ├── utils/ # Shared utilities
│ └── config/ # Shared configs
├── tests/e2e/ # Playwright E2E tests
└── docs/ # Documentation
# Install dependencies
pnpm install --ignore-scripts
# Copy environment variables
cp .env.example .env.local
# Fill in the values in .env.local
# Push database schema
pnpm db:push
# Seed development data
pnpm db:seed
# Start development
pnpm dev
pnpm dev # Start all apps in development mode
pnpm build # Build all packages and apps
pnpm lint # Lint all packages
pnpm check-types # TypeScript type checking
pnpm test # Run unit tests (38 suites, 1240 tests)
pnpm test:e2e # Run Playwright E2E tests
pnpm db:push # Push schema changes to database
pnpm db:migrate # Run database migrations
pnpm db:seed # Seed database with test data
pnpm db:studio # Open Drizzle Studio
pnpm db:generate # Generate migration files
See .env.example for the complete list. Key groups:
| Group | Variables | Required |
|---|---|---|
| Database | DATABASE_URL | ✅ |
| Supabase | NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | ✅ |
| Auth | BETTER_AUTH_SECRET, BETTER_AUTH_URL, LINKEDIN_CLIENT_* | ✅ |
| AI | OPENROUTER_API_KEY or ANTHROPIC_API_KEY | ✅ (at least one) |
| Stripe | STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET | Production only |
RESEND_API_KEY | Production only | |
| Analytics | NEXT_PUBLIC_POSTHOG_KEY, NEXT_PUBLIC_SENTRY_DSN | Optional |
| Observability | LANGFUSE_* | Optional |
| Maps | NEXT_PUBLIC_GOOGLE_MAPS_API_KEY | Optional |
# Run all unit tests
pnpm test
# Run specific project
pnpm test -- --selectProjects ai
pnpm test -- --selectProjects stripe
# Run with coverage
pnpm test -- --coverage
# Run E2E tests
pnpm test:e2e
Current coverage: 38 test suites, 1240 tests across 9 projects. See docs/TESTING.md for details.
Hust is fully usable on its own — a self-serve, single-user AI job-search assistant. The only hard external dependency is the Ever Jobs API (job listings). Hust owns its own login (BetterAuth + LinkedIn), users, database, and apply flow.
Hust optionally plugs into the wider Ever Gauzy platform to serve the agency / company scenario, where a business sources and applies to jobs on behalf of its employees at scale. There are two optional, future integration seams — both via the Gauzy AI API, both off by default:
| Seam | Standalone default | Integrated (optional) |
|---|---|---|
| A — Auto-apply | Manual apply (opens the job's apply URL) | Application executed by Gauzy AI's AutomationTask queue + the Ever Gauzy AI Automation client |
| B — Identity & employee/org/tenant sync | Own BetterAuth + LinkedIn + own DB | SSO + employees mirrored from Ever Gauzy API (shared JWT, external*Id cross-refs) |
How the pieces fit in integrated mode: Ever Gauzy = back office (orgs, teams, employees, pipelines) · Ever Gauzy AI = engine (match, score, auto-apply, alerts) · Hust = the employee-facing UI to review and apply · Ever Gauzy AI Automation = executes the applications.
Design rule: never make Gauzy a hard dependency. Hust must always build, run, and ship without it. Full details: docs/GAUZY-INTEGRATION.md.
Full documentation lives at docs.hust.so. In-repo references:
| Document | Description |
|---|---|
| PRD | Full product requirements with implementation status |
| Gauzy / Gauzy AI Integration | Optional, standalone-first integration with the Gauzy platform |
| MVP Summary | Detailed changelog of all 12 implementation batches |
| Architecture Decisions | 15 ADRs covering key design choices |
| Testing Guide | Test setup, running, and writing guide |
Hust is meant to be served over HTTPS only. If you discover a security vulnerability, please report it responsibly to [email protected] rather than opening a public issue. See SECURITY.md for scope and our responsible-disclosure policy.
Hust is free, open-source software licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later). See LICENSE for the full text.
Copyright © 2026 Ever Co. LTD.
Because Hust is designed to be operated as a network service, the AGPL's §13 applies: if you run a modified version of Hust and let users interact with it over a network, you must make the Complete Corresponding Source of your modified version available to those users. The canonical source is published at https://github.com/ever-hust/ever-hust, and the running application exposes a "Source Code" link in its footer. This obligation remains even when white-label branding is enabled.
Ever® Hust™, Ever® Gauzy™, Ever Jobs, and related names and logos are trademarks of Ever Co. LTD.
The source code is AGPL-3.0. The hosted service brand, trademarks, and content ("Hust", "Ever Jobs", logos, marketing copy) remain the property of Ever Co. LTD and are not licensed under the AGPL. You may run, modify, and redistribute the code; you may not pass off your deployment as the official Hust service. White-label branding does not transfer any trademark rights.
develop, PR to main; conventional commits; pnpm only.Copyright © 2026-present, Ever Co. LTD. All rights reserved.