A career lifecycle tool. Catalog your work, tailor resumes to specific job listings, prep for interviews, track your time, send invoices, and manage the relationships that move your career forward — all in one place.
The core pipeline is functional end-to-end:
- Employment catalog — structured, deeply detailed records of everywhere you've worked, every project you've shipped, every accomplishment with the metrics to back it up. Manual entry and AI-powered extraction from raw notes, performance reviews, and brag docs.
- AI-tailored resumes — paste a job listing, and the AI extracts requirements, maps your catalog entries to each one, and generates a strategy. Review which evidence goes where, add relevance notes explaining your framing, synthesize your notes into a refined strategy, then generate a markdown draft. Edit the draft, approve it, and produce a professionally formatted
.docxwith your contact info, brand-specific styling, and a clean layout.
The resume pipeline is the core value proposition: everything before it (data entry, AI extraction) is bootstrapping your catalog, and everything after it (interview prep, time tracking, invoicing) builds on the same foundation.
- Multi-user support — authentication, per-user data isolation, hosted deployment. Beta testers are waiting.
- Interview prep — practice questions from your actual experience, meeting notes tied to applications, application status tracking
- Time tracking & invoicing — log hours, generate timesheets, send invoices
- Relationship management — track follow-ups and the people who matter to your career
For the full roadmap, see docs/06-planned-features.md. For the project's mission and design philosophy, read docs/00-mission.md.
Functional MVP. Five milestones complete: planning, database schema, data entry CRUD, AI extraction pipeline, and resume generation. The app can ingest career data (manually or via AI extraction from raw text), organize it into a structured catalog, and generate tailored resumes as downloadable Word documents for specific job applications.
Currently single-user and self-hosted. Multi-user support and hosted deployment are the next milestone.
Start the Docker environment:
docker compose up -dRun migrations:
docker compose exec app php artisan migrateInstall frontend dependencies and start the Vite dev server (run from host machine, leave running in a separate terminal):
cd laravel
npm install
npm run devAccess the app at http://localhost:8145.
For production builds, replace npm run dev with npm run build. The dev server is preferred during active development since it hot-reloads CSS and Blade template changes without manual rebuilds.
| Container | Image | Purpose | Ports |
|---|---|---|---|
| success-app | php:8.5-fpm (custom) | PHP-FPM with Laravel extensions and Composer | 9000 (internal) |
| success-nginx | nginx:alpine | Serves laravel/public/, proxies PHP to app |
8145 → 80 |
| success-db | mysql:8.0 | MySQL database | 3491 → 3306 |
Docker Compose reads from the root .env file for container names, ports, and database credentials. This file is gitignored and generated during project setup. See .env.example for the expected variables.
Laravel's own laravel/.env handles application-level config (app key, database connection, session driver, etc.) and is also gitignored.
From the host machine, the database is accessible on port 3491.
All artisan commands run through the app container:
docker compose exec app php artisan migrate
docker compose exec app php artisan make:model Example -m
docker compose exec app php artisan test
docker compose exec app php artisan tinkerOn production servers, drop the Docker prefix:
php artisan migrateDetailed technical documentation lives in the docs/ directory:
- Mission — why we're building this, design philosophy, anti-goals
- Database Schema — table definitions, model relationships, cascade behavior
- Services & Commands — service classes, artisan commands, business logic
- Routes & Controllers — route structure, controller conventions, form request pattern
- Frontend — Tailwind/Vite setup, Blade conventions, design system, component classes
- AI Development Notes — conventions for AI-assisted development with Claude
- Planned Features — milestones, schema design principles, deferred features, and open questions
Success is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for the full text.
The AGPL is a strong copyleft license. In short: you can run, modify, and distribute Success freely, but if you operate a modified version as a network service, you must make your modifications available to the users of that service under the same license. This protects the project and its users from closed-source forks running as competing hosted offerings.
You can self-host Success on your own infrastructure. You'll need to provide your own AI provider API keys for features that depend on them. When a hosted version exists, it'll be cheap — the goal is to keep the basic features (catalog, resume builder, interview prep) affordable to people who are unemployed and price-sensitive, with paid features priced for people who are already using the tool to manage paid work.
The MVP is functional with five milestones complete and established patterns across all layers. New entity types follow the same structure as existing ones (model + form request + controller + Blade views + feature tests), the AI pipeline has clear extension points, and the design system uses a small set of reusable component classes. Reading through the resume generation flow — from ResumeDraftController through ResumeAiService to ResumeDocumentRenderer — is the fastest way to understand how the pieces fit together.
If you've worked on career tools, resume parsers, or AI-powered document generation and have opinions about what works and what doesn't — those opinions are wanted. Open an issue or start a discussion.