How aientech/dossier works
Dossier is a self-hosted job-search and application-tracking product for one person. Its central workflow builds a career profile, turns a job posting into a match assessment and tailored documents, then supports refinement, PDF download, and application tracking. Separate capabilities cover job discovery, daily agent drafts, startup listings, Gmail and Calendar, and an MCP connector. The map reflects README-documented workflows and sampled route, auth, job-runner, and persistence code; unsampled subsystems are represented at their listed paths, with relationships omitted where evidence is insufficient.
Main entry points: new-application.tsx New application · settings-data.ts Settings access · profile-editor.tsx Career profile · application-view.tsx Application details
Components 30
Profile and documents
- Career profile
src/app/(app)/profile/profile-editor.tsx - Profile import
src/lib/profile-import.ts - Base resume
src/app/(app)/resume/resume-workspace.tsx - Resume themes
src/lib/themes.ts - PDF generation
src/lib/pdf/render.ts
Job search and tracking
- New application
src/app/(app)/new/new-application.tsx - Application details
src/app/(app)/applications/[id]/application-view.tsx - Application tracking
src/app/(app)/applications/board.tsx - Dashboard
src/app/(app)/dashboard.tsx - Job search
src/app/(app)/jobs/jobs-screen.tsx - Search sources
src/lib/job-search/search.ts - Startup listings
src/lib/startups/refresh.ts
AI and automation
- AI writing and matching
src/lib/ai/tasks/index.ts - AI providers
src/lib/ai/provider.ts - Background jobs
src/lib/jobs/runner.ts - Daily job agent
src/lib/agent/run.ts
External integrations
- MCP connector
src/lib/connector/tools.ts - Google services
src/lib/google/account.ts - Google OAuth
src/lib/google/oauth.ts
Platform and data
- Settings access
src/lib/settings-data.ts - Settings rules
src/lib/settings.ts - Session auth
src/lib/auth/session.ts - Private route guard
src/lib/route.ts - Connector OAuth
src/lib/connector/oauth.ts - Data export and import
src/lib/data-export.ts - Database client
src/lib/prisma.ts - PostgreSQL
- Runtime configuration
src/lib/env.ts - Key derivation
src/lib/keys.ts
Other components
- Job seeker
Connections 29
- Job seeker → Career profile: maintains
README.md - Job seeker → Profile import: imports resume
README.md - Job seeker → Base resume: builds
README.md - Career profile → New application: supplies profile facts
README.md - Job seeker → New application: pastes posting
README.md - New application → AI writing and matching: requests matching and drafts
README.md - AI writing and matching → AI providers: uses model
- Job seeker → Job search: searches jobs
README.md - Job search → Search sources: searches sources
- Job seeker → Startup listings: explores startups
README.md - Job seeker → Daily job agent: reviews drafts
README.md - Daily job agent → Background jobs: queues work
- Job seeker → Application details: refines documents
README.md - Application details → PDF generation: downloads PDFs
- Job seeker → Application tracking: tracks progress
README.md - Job seeker → Dashboard: reviews activity
README.md - Job seeker → Resume themes: customizes resume
README.md - Job seeker → Google services: connects account
README.md - Google OAuth → Google services: authorizes account
src/app/api/google/callback/route.ts - Job seeker → MCP connector: uses connector
README.md - MCP connector → Connector OAuth: verifies access token
src/app/api/mcp/route.ts - Private route guard → Session auth: checks session
src/lib/route.ts - Settings access → Settings rules: loads and saves settings
src/lib/settings-data.ts - Settings access → Database client: queries settings
src/lib/settings-data.ts - Database client → PostgreSQL: connects
src/lib/prisma.ts - Session auth → Key derivation: derives session keys
src/lib/auth/session.ts - Key derivation → Runtime configuration: reads configuration
src/lib/keys.ts - Job seeker → Data export and import: exports or restores data
README.md - New application → Background jobs: runs background tasks