BossHunter
스마트 구직 에이전트(소스 공개, PolyForm 비상업적 라이선스; 상업적 이용은 별도 서면 허가 필요)
Almanac은 오픈소스입니다
Almanac is an open-source, self-hosted property operations front end for teams already running on Google Drive and Sheets. It flags what needs attention, answers from your real records with citations,
비즈니스TypeScript · CSSGitHub @natebking온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Self-hosted, Google-native property operations. See what's due, answers grounded in your own records, files stay in Drive.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Property operations on Google Drive. A mobile-friendly, source-grounded front end for the property records you already keep in Google Drive and a master spreadsheet.
A personal project, originally built for a friend's property workflow and shared as-is — no warranty or support promised.
All included records, emails, property names, owners, vendors, and Google URLs are sample data unless you replace them in your own private environment.
If an operator is running this from scratch with Claude, Codex, or another coding assistant, start with:
OPERATOR_START_HERE.md for the operator.BOT_HANDOFF.md for the coding assistant.docs/operator-env-reference.md for environment variables.Create a clean handoff archive with:
npm run handoff:operator
The archive is written under build/almanac-self-host-handoff and excludes
secrets, local databases, node_modules, build output, and Vercel local state.
The public name is Almanac (tagline "Property operations on Google Drive"),
pending a final domain and trademark check. The public landing page lives at
/open-source; it is separate from the authenticated app dashboard at /.
See docs/security-review.md for scrub status, security controls, and release
risks. Detailed release and market-positioning notes are kept in the operator's
private working copy, not in the public repository.
{{tenant_name}}.Prerequisites: Node.js 20+ and the sqlite3 command-line tool (preinstalled on
macOS and most Linux distributions; install with apt-get install sqlite3 if
missing). npm run db:init uses sqlite3 to apply the local migration SQL.
.env.example to .env.AUTH_MODE=alpha for local single-user testing.GOOGLE_MODE=local for local mock testing.OPENAI_API_KEY blank to use the deterministic local assistant.npm install.npm run db:init.npm run dev.The app has Clerk wiring behind AUTH_MODE=clerk. For a hosted alpha, configure
Clerk in restricted or invitation-only mode, add the alpha tester and operator as invited users,
set ALMANAC_ALLOWED_EMAILS to the comma-separated invited emails, and set
the Clerk environment variables from .env.example.
Run the readiness check before inviting the operator:
vercel env pull .env.local --environment=production
npm run alpha:readiness
npm run alpha:clerk-access
npm run alpha:fixture-bundle
npm run alpha:google-oauth
npm run alpha:hosted-smoke
The pull command refreshes the ignored local env file with the hosted Production settings. The readiness command checks those Vercel-pulled environment variables and the sample fixture files. It reports blockers, warnings, and manual checks without printing secret values.
The Clerk access command checks live Clerk users and invitations against
ALMANAC_ALLOWED_EMAILS. Clerk restricted mode still needs a dashboard
confirmation because the Clerk Backend API used here does not expose that
setting as a read-only check.
The fixture bundle command creates
build/almanac-test-portfolio-upload with the sample Drive files, an upload
checklist, and a manifest for manual Google Drive setup.
The Google OAuth command prints the exact Google Cloud APIs, redirect URI, and
Vercel env commands needed to clear the hosted Drive/Docs blocker. It exits
nonzero until GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET are configured.
After the operator's real email is added to ALMANAC_ALLOWED_EMAILS, dry-run the
Clerk invite before sending it:
vercel env run -e production --scope vercel-team-placeholder -- sh -c 'npm run alpha:invite-user -- --email [email protected]'
Add --send only after the dry run says the address is ready.
After Google OAuth is configured, npm run alpha:hosted-smoke confirms that
the production site is Clerk login-gated, /sign-in is reachable, and the
setup page points to the beta smoke-test checklist.
Local development uses SQLite by default. Hosted Vercel testing should use a managed Postgres database such as Neon:
DATABASE_PROVIDER=postgres npm run db:generate
DATABASE_PROVIDER=postgres npm run db:push:postgres
Set DATABASE_PROVIDER=postgres and the managed Postgres DATABASE_URL in
Vercel before deploying the hosted alpha.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗