Maestro Career Studio

io.github.seinun-aiv0.7.1更新於 Oct 1, 2026

Tailor resumes, score them against job posts and track applications, all on your own machine.

概覽

AI 產生的概覽

在本機執行求職工作台,讓助理依職缺客製履歷、為履歷評分並追蹤應徵進度。

功能
提供 83 個工具,讓助理儲存職缺描述、以本機固定規則與已儲存履歷比對評分、找出技能落差、以可接受或復原的差異形式客製履歷,並產生 LaTeX 或 Typst 格式的 PDF。它也管理職涯經歷、履歷版本、應徵追蹤,以及技能落差與履歷契合度等分析。可透過 full、hunt、apply、explore、templates、career 等工具集限制啟用的工具。
適用情境
適合希望助理在自己電腦上推進個人求職流程的情況:閱讀職缺、評分與客製履歷、撰寫求職信與篩選問題回覆、追蹤應徵。它面向單台電腦上的單一使用者,而非團隊共用。
執行需求
以本機程序方式執行,透過 .mcpb 擴充套件或外掛啟動;需要先執行 Maestro Career Studio 應用程式,該應用程式透過 Docker Desktop(或 Docker Engine 加 Compose v2)與 Git 安裝,首次下載約 1 GB、解壓後約需 3-4 GB 磁碟空間;Windows 上需使用 WSL。AI 功能可選配 OpenAI 或 Gemini 金鑰;評分、PDF 與追蹤不需金鑰。連線類型應保持 STDIO。
安裝前請注意
應用程式沒有登入機制,任何能存取它的一方都能讀取和修改全部職涯紀錄及已儲存的金鑰;它應只監聽 127.0.0.1,絕不可暴露到網路或通道。使用 AI 功能時,履歷與職缺資訊會傳送給所選的 AI 服務,金鑰保存在本機。Companion 瀏覽器擴充套件可代填應徵表單,但未經確認不會送出。刪除專案資料夾會刪除你的資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Maestro Career Studio,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Maestro Career Studio]

[CI] [CodeQL] [Tests] [License] [Project site] [Container images]

Tailor your resume to every job, without the AI making things up.

Maestro Career Studio is a free, open-source job application studio that runs on your computer. Every resume is built from things you actually did, every AI edit is a change you accept or undo, and the result is a real LaTeX or Typst PDF.

  • Same score, every time. The match score uses fixed rules and runs on your computer with no AI service involved, so the same resume and job always get the same score.
  • Every AI edit is a diff. Suggested changes arrive as a before/after you accept or undo, one by one.
  • Fills job applications for you. The browser Companion fills Workday-style forms from your saved answers and attaches your resume. You review and submit.

Your career record and application tracker are stored on your computer. When you use AI features, resume and job information is sent to the AI service you choose.

Get started: install it → add your resumes → save a job and get your tailored resume. New to this? The Getting Started guide walks you through every step.

[Score, tailor, see every AI edit, download the PDF — end to end]

Works with Claude, Codex or the ChatGPT desktop app (83 tools) · bring your own AI key — OpenAI or Gemini; scoring, PDFs and tracking work without one · runs on your computer, no account · take everything with you — your whole record exports to one career.md file

Made for one person on one computer. There is no login: anything that can reach the app can read and change your whole career record and your saved API keys. Out of the box it only listens on your own machine (127.0.0.1), so that's safe. Never expose it to a network — not the internet, your home network, or a tunnel. SECURITY.md has the details.

Contents: Why Maestro CS? · Prerequisites · Quickstart · Updating · Using it well · Driving it from Claude, Codex, or ChatGPT (MCP) · The rest of the toolkit · Where your files live · Community & contributing · Licensing · Troubleshooting


Why Maestro CS?

Your time belongs in your career, not in the paperwork around it. Most of a job search goes into documents thrown away a week later: a resume rebuilt for each role, a cover letter written again from memory, the same "tell us about a time you…" answered for the fourth time. Here you record what you actually did once, and every document after that is assembled from that record.

It never writes things you didn't do. Your work goes into one career history. Resumes are built from the bullets you approved, word for word; rewording a bullet is a separate step that asks you first. When a job asks for something your resume doesn't show, Maestro asks you about it — if it's true, it's saved for every future application; if not, it stays a gap. Every change is saved as a resume version, so you can always compare or go back.

Real, professional PDFs without the formatting headache. You edit content in a simple editor — a bullet is a bullet — and a template handles the layout, so changing a word can never break the formatting. Switch templates any time without touching your content, or bring your own design.

Nothing here is rented. Free and open source (Apache 2.0), no account, no subscription. Use the AI service you choose and pay only for what you use — about a penny per application.

How it works

  • Your career record. Upload every resume version you have. Maestro merges them into one record of your jobs, projects and skills, removing duplicates. Bullets taken unchanged from your files are approved automatically; anything merged or written by AI waits for your review.
  • The match score. Maestro compares your resume with a saved job using fixed scoring rules plus a small model that runs on your computer — no AI service is involved, so the same resume and job always get the same 0–100 score. It is not an employer's score or a prediction of an interview; use it to compare your own drafts and catch gaps. One thing moves over time: recent experience counts more, so a score can shift slightly as months pass (KNOWN_ISSUES.md).
  • Tailoring. Suggested changes arrive as a before/after view you accept or undo, one by one.
  • PDFs. Built on your computer with LaTeX or Typst, two professional typesetting systems.

How it compares

Only claims you can check yourself (as of August 2026 — tell us if a row has gone stale):

Typical AI resume buildersCLI skill frameworks (e.g. career-ops)Maestro CS
Match scoringAn AI guesses — same input, different score each runAI judgmentFixed rules — same input, same score, every time
Shows whether tailoring helpedStatic score onlyNot measuredScore before and after, per application
See what the AI changedNo historyNoEvery change shown, undoable
PDF outputHouse web templatesHTML → PDFLaTeX and Typst, bring your own template
Career recordNone (per document)Plain markdown/YAML filesOrganized, versioned — exports to one career.md
Works with AI assistantsNoCommand-line skill files83 tools for Claude, Codex, ChatGPT desktop — on your own computer
Submits applications for youN/ANever (stated)Never without your yes, per application
Cost$15–75/monthFree + AI usageFree (Apache 2.0) + your own AI usage — ≈1¢ per application

Prerequisites

  • Docker Desktop (or Docker Engine + Compose v2). Docker runs the app in a self-contained box on your computer, so you don't install anything else.
  • On Windows, WSL. Install Docker Desktop with its WSL 2 engine, and run every command below in the Ubuntu (WSL) window from your WSL home folder — step by step.
  • Git — it downloads the app and, later, its updates (macOS offers to install it on first use; on Windows, install it inside WSL with sudo apt install git).
  • Disk space — about a 1 GB download, roughly 3–4 GB once unpacked. Most of it is the PDF tools and the small scoring model.
  • An AI key — OpenAI or Gemini; either one is enough. It powers tailoring, cover letters and screening answers, building your career history, the Companion's form filling, and the Assistant. Without a key, scoring, PDFs and tracking still work — see Do you need an API key?

Quickstart

New here? docs/GETTING_STARTED.md is the step-by-step version — from installing Docker to your first tailored PDF.

The app is the only required piece; the rest are optional and can be added any time:

PieceWhat it takes
1. The appone docker compose up -d (below) — runs on your own computer only
2. An AI keySettings › AI & models in the app; OpenAI or Gemini, either alone is enough
3. Your AI assistantoptional. Claude: install the .mcpb extension from Settings → Extensions. Codex / ChatGPT desktop: add the plugin from Settings → Plugins. Details
4. The Companion (browser extension)optional. chrome://extensions → Developer mode → Load unpacked → the repo's extension/ folder. Nothing to configure — full steps
bash
# 1. Download the project and create your settings filegit clone https://github.com/seinun-ai/maestro-career-studio.gitcd maestro-career-studiocp .env.example .env
# 2. Start the app (downloads about 1 GB the first time)docker compose up -d

Then open http://localhost:3000 and add your AI key in Settings › AI & models. The first start sets up your database and adds a demo resume so you have something to look at.

Young, but rehearsed. The app runs daily on my machine, and a fresh install — clone, start, first tailored resume — has been checked end to end on a second machine. It has had little testing on machines that aren't mine. If it fails on yours, please open an issue with the log — that report is one of the most valuable contributions there is.

Do you need an API key?

Recommended: yes. Tailoring, the Companion's form filling, cover letters and screening answers, building your career history, and the Assistant all use an AI service.

It costs far less than you'd think — measured, not estimated. We traced real applications end to end (Aug 2026) on the default model (GPT-5.6 Luna, $0.20 per million input tokens, $1.20 per million output tokens):

StepCost
Reading the job posting~¼¢
Finding gaps and questions~½¢
Tailoring~¼¢
Cover letter + screening answers~¼¢
Save a job → tailored resume → full application package≈1.3¢
Building your career record, per imported resume (once)~⅓¢

A busy month of applications costs about fifty cents; my whole search so far, using every feature daily, has cost under $2. (The Gemini setup is faster and costs under 3¢ per application.)

Your key stays with you. It's stored on your computer and sent only to the AI service you configured. The app never shows a saved key back; its logs never record keys, and record your prompts only if you turn that on.

No key, but you use Claude or Codex? Connect them over MCP and your assistant does the AI work itself: it reads the posting and writes the tailoring edits, and the app applies them with the same honesty checks — no AI key needed.

No key at all? Scoring, gap diagnostics, health reports, manual editing, PDF creation, application tracking and analytics all work without one. Features that need AI ask you to add a key instead of failing.

Local model servers (untested)

You can point the app at a local AI server (Ollama, LM Studio, vLLM) by setting OPENAI_BASE_URL in .env (http://host.docker.internal:<port>/v1 reaches your computer from inside Docker). We haven't validated any local model end to end yet, and long prompts and strict JSON output are where small models struggle (KNOWN_ISSUES.md tracks this). If you try it, press Test on each model in Settings › AI & models and tell us what worked in an issue.


Updating

One command, from the folder you cloned:

bash
./scripts/update.sh

It backs up your database, moves to the newest release, downloads the matching app, and waits until it's healthy again. ./scripts/update.sh --check tells you whether you're up to date without changing anything. (It needs bash — on Windows, run it under WSL.)

On v0.3.0 or older? Those versions kept your data in Postgres, and only v0.4.0 can move it into the database file — so update to v0.4.0 first. The script spots this and prints the steps; docs/UPDATING.md has them too.

Your data is safe during updates. Your resumes, applications and settings are ordinary folders on your disk, and no update step touches them. Deleting the project folder does delete them, so keep it.

After updating, reload the browser extension (chrome://extensions → Reload, then reload any open job tabs) and restart your AI assistant so it sees new tools.

docs/UPDATING.md has the rest: updating by hand, pinning a version, what the backup covers, and rolling back.


Using it well

Maestro CS is built for fewer, stronger applications, not volume. Most openings now draw hundreds of applicants, and many employers filter out resumes that read as machine-written — so the leverage is in depth per application.

Words you'll see:

  • Career history — one organized record of your work, built from your resumes. Each job, project or school in it is an item; each line is a bullet.
  • Base resume — your main resume for one kind of role, such as Data Scientist.
  • Tailoring — adjusting a base resume to one job, using only things you actually did.
  • Match score — Maestro's comparison of your resume with a saved job description (the app labels it ATS score). It is not an employer's score or a prediction of an interview.
  • AI service — OpenAI or Gemini, whichever you choose.

1. Build your career history first (once)

[Drop in your resumes, get your career history]

Upload every resume version you have — old ones, role-specific ones, the too-long one. Maestro merges duplicates across them and builds one career history: your verified record in one place.

This step pays off every time. Everything later is built from approved bullets, so its quality is the ceiling on everything else. Add certifications, project write-ups and performance-review notes too — anything true about your work can become evidence later.

Review your drafts before tailoring. Bullets taken unchanged from your files are approved on import; anything merged across resumes, or written by AI, waits in Drafts to review. Only approved bullets go into a resume, and fixing a duplicate once fixes every future application.

2. Build a base resume per career track

[One base resume per track, with its health grade and live preview]

One base per kind of role you actually target (such as Data Scientist or ML Engineer) — not one per job. New base resume › From career history suggests which entries belong, with a reason for each one it leaves out, plus a drafted summary.

[Adding bullets from your career history is explicit and versioned]

The optional instruction box steers the shape, not the facts: "lead with pipeline and cloud work, keep it mid-level, leave off teaching." Bullets are never rewritten at this step — approved bullets go in word for word, which is what keeps a generated resume defensible.

3. Save the job, then close the gaps

[Every job you have saved, from saved to signed]

Paste the job description (Add job) or save it with the Companion, then score it against your base resumes. Scoring uses no AI service, so the same resume and job always get the same number.

[The job's details, and a check of its stated requirements against your profile — including mismatches]

Every saved job also gets a requirements check: what the posting states about work authorization, visa (OPT) policy, salary and years of experience, compared with your profile — so a mismatch shows up now, not at the screening call.

Then work through the gaps rather than accepting a rewrite. Maestro asks targeted questions to find things that are true but not yet written down. Your answers are saved to your career history, so closing a gap once helps every future application.

About the score. It's our score: fixed and repeatable, but not a prediction of what an employer's system shows — no consumer tool can offer that. Independent tests make the point: the same resume scored 66–99 across 100 runs on a popular AI-judged checker, with an 18-point spread across five commercial ones. Use ours to compare your own drafts and catch gaps. Chasing 100 produces keyword-stuffed resumes that modern screens flag.

Languages. English resumes and job postings, including accented letters (Zürich, José, São Paulo). Non-Latin scripts (Chinese, Japanese, Korean, Cyrillic, Arabic, Hebrew, Devanagari, Thai) aren't supported yet and are refused on import rather than given a misleading score.

4. Generate the package, then read it

Cover letter, screening answers, and the PDF. Read everything before it goes anywhere — it's your name on it.

5. Choose your models deliberately

Settings › AI & models has three model roles: Fast (reading postings, bulk work), Smart (tailoring, finding gaps) and Assistant (the in-app Assistant). We tested the combinations on real job postings, and the Fast model turned out to decide almost everything — how completely a posting's requirements are read, how honest your score is, and most of the waiting time. So it comes down to two tested setups, one per AI service:

OpenAI · most thoroughGemini · fastest
Every role set togpt-5.6-lunagemini-3.7-flash
The one key you needOpenAIGemini
Job requirements capturedthe most complete we measuredabout ¾ of that, strongest on named tools
Save + tailor takes~40 seconds~10 seconds
Cost per applicationabout a pennyunder 3¢ (Gemini promo pricing doubles Jan 2027)
Made-up skillsnone measurednone measured

Neither is better overall, and any OpenAI-compatible model can be used instead. A fresh install starts with the OpenAI setup, because a model that misses requirements quietly inflates your score — by about nine points in our tests. With only a Gemini key, switch all three roles in Settings › AI & models (or set FAST_MODEL/SMART_MODEL/CHAT_MODEL in .env). Press Test next to each model to check it works; Find Gemini models (or Find OpenAI models) lists what your key can use.

Driving it from Claude, Codex, or ChatGPT (MCP)

MCP is the connector that lets an AI assistant use the app for you. With it, Claude (Desktop or Code), the ChatGPT desktop app or the Codex CLI can run the whole process in conversation — read a posting, score it, work the gaps, make the PDF. It runs on your computer against your data.

[Claude pulling the whole pipeline over MCP and building its own view of it]

With the app running, both install from their own settings — no terminal, no config file:

  • Claude — Settings → Extensions → Install Extension → select maestro-career-studio/mcpb/maestro-career-studio.mcpb inside the folder you cloned. One install covers Claude Desktop and Claude Code sessions inside the Claude app.
  • Codex / ChatGPT desktop — Settings → Plugins → Add → add seinun-ai/maestro-career-studio as a marketplace (ref main, sparse paths empty), then Install.

Neither needs Python on your computer: both run inside the app you already started.

Other assistants (Cursor, Windsurf, and others) — run the setup script; it prints a ready-to-paste config for each one (needs Python 3.12+):

bash
./scripts/setup-mcp.sh

Or open Claude Code or the Codex CLI in this folder and ask it to run the script for you.

Things to ask once it's connected:

  • "Here's a job posting: <paste>. Save it, score it against my base resumes, and tell me what it asks for that my resume doesn't show."
  • "Tailor my Data Scientist resume to that job, show me what changed, then make the PDF."
  • "Mark the Acme application as applied, and list everything still waiting on a reply."
  • "Across the jobs I've saved, which skills keep showing up as gaps?"

Tool sets. All 83 tools are on by default (full). Smaller sets — hunt, apply, explore, templates, career — keep a chat focused; pick one in the Claude extension's Tool profile setting or with setup-mcp.sh --profile. Use one set at a time.

Skills. docs/skills/ has ready-made skills for a daily job hunt and an apply run that works on its own and asks you only for what the app doesn't know, plus one yes before each submit. customize-job-skills suggests skills from what your agent knows about you, asks a few questions, and builds them with your assistant's own skill creator and scheduler.

Keep the connection type STDIO (the default). The HTTP option would expose the app, which has no login — don't. (ChatGPT on the web can't reach a local app; use the desktop app.)

Manual setup, every tool, and troubleshooting: backend/mcp_server/README.md.


The rest of the toolkit

The steps above are the core. These make each application quicker than the last.

Talk to one resume — or one section, or one bullet

The Assistant (the in-app chat) works on what you pin. Pin a base resume and it works on that one; pin a section, a job entry or a single bullet and it refuses edits outside it. Pin a career history item — a project, a role, a certification — to bring its detail into the conversation without letting the Assistant change it. Suggested edits arrive as a card you accept or discard; nothing changes silently.

No more resume_v2_FINAL(3).docx

Every change — a manual edit, an Assistant edit, a tailoring run, even a restore — saves a resume version. Open a resume's history to compare two versions or restore one; nothing is ever lost. Old resumes you no longer use are archived, not deleted.

Tell it how you sound — once

A persona describes you as a candidate: vision, strengths, goals, working style, how your writing should sound. Set it once in Profile › About you (or have it drafted from your career history, then review and save it), and every generated document uses that voice. It shapes tone and emphasis only — never facts.

Health Report — is this resume sound at all?

[A grade for the resume on its own, and what each problem is costing you]

A gap needs a job. A Health Report doesn't: it checks one resume on its own — can it be read by application systems, are the dates right, is the evidence strong, is the format sound. A serious problem blocks tailoring, because tailoring can't fix a broken resume. You can Mark as OK a check you disagree with, with a reason on record.

Templates you actually own

[LaTeX and Typst templates, built on your computer]

Switching templates is a button, not a rebuild: your content stays the same and renders through any template. There are two kinds — LaTeX and Typst — both built on your computer. Start from a bundled design, adapt one you liked, or write your own in the built-in editor; every template is test-built and checked so that one that application systems couldn't read never goes live. (The web "New template" button starts from a LaTeX template; Typst templates are created through the API or MCP.)

Quick tailor, when you already know the answer

The guided gap process is the careful path. Quick tailor is the fast one: one click against a job, answers taken from your saved preferences, tailored and rendered in one go. The honesty rule still holds — a skill Maestro found no evidence for can only go in your skills list, never into an invented bullet.

The Companion browser extension

[The Companion on a job page]

The Companion is a side panel in Chrome: save a job from the job board you're reading, score it, and fill application forms from your saved answers (Profile › Autofill). It leaves signatures, agreement boxes, passwords and government IDs to you unless you turn on the agreement permission in Profile, and it never moves to the next page or submits.

To improve form filling, it records which fields it met and whether they filled — never what you typed. That data stays on your computer, but it does show which companies you applied to and when. Clear it any time in Analytics → Autofill coverage → Clear data. There's no on/off switch in the panel yet; extension/README.md shows how to turn it off.

Analytics: what the market keeps asking you for

[The market you are actually applying into, in numbers]

Every saved job adds to a picture of the market you're applying into — top skills, a skill heatmap, role mix over time — filterable by role, level and job type. The most useful view is Skill gaps: skills jobs keep asking for, marked as not in your career history, in your career history or used before. Frequent and missing is worth learning next; frequent and already in your history is something you have but keep forgetting to say. Resume fit shows the score before and after tailoring for each base resume, so you can see whether tailoring is helping.

Hunt with the agent you already use

[A scheduled hunt reporting back — and stopping at your review]

Your AI assistant can job-hunt for you. It reads your job preferences from the app, finds postings on whatever sites it can use, saves and scores them against your resumes, and hands back a ranked shortlist for you to review. There's no job-board integration to be locked into.

Ready-made job-hunt and apply-session skills are in docs/skills/ — copy them into your assistant's skills folder as-is, or run customize-job-skills to make them yours or build new ones (batch tailoring, referral-first hunting, a weekly digest) from your own data.

Going all the way: agent applications

Maestro CS can take an application right up to the submit button. Read this part rather than skim it.

A job your agent finds becomes a proposal. You review proposals in the Agent inbox and Queue or Skip them (in bulk if you like). An apply run then works only the ones you queued: it tailors, renders and fills each application in a live agent session with a browser, asks you only for information the app doesn't have (and hands you logins, CAPTCHAs and signatures), and waits for your yes before each submit. Nothing is ever submitted from the web app itself, and a daily limit you set caps how many submissions are possible.

Be clear about what that yes is: the agent records it, so the record shows that the agent said you agreed. It's an audit trail and a volume limit, not a lock that a manipulated agent can't pick — so run it while you're watching. An agent can't mark an application submitted without a confirmation or your own word, and if it can't tell whether a submit went through, it stops and never clicks again.

The risks, plainly. Letting an agent read job pages and drive a browser means three real exposures:

  • Manipulated instructions. A job posting is untrusted text; text hidden in one can try to instruct the agent reading it.
  • Unverified employers. A posting the agent found isn't a vetted one, and an application sends your contact details and history to whoever posted it.
  • Bot detection. Some employers filter applications that look automated, and we won't help you hide it — no stealth browsing, no CAPTCHA bypass, no invisible (headless) submitting. See Project Scope.

Use it on jobs you have looked at yourself. Everything is written down — proposals, your yes, and the screenshots behind them.

Leave with everything

career.md is your whole career history as one Markdown file — downloadable from the Career history page or over MCP. Every application's PDF is saved in applications/, in a folder named after the company and role, so checking what you actually sent is opening a folder. Your data is yours, in files on your disk, and nothing about leaving is made difficult.


Where your files live

Everything stays inside the folder you cloned. These are yours, never uploaded, and ignored by git:

  • data/ — the database (maestro_cs.sqlite3). Deleting it deletes every application, resume version and career-record entry.
  • base_resumes/ — your base resumes and their PDFs (plus one demo resume).
  • applications/ — every application's PDF and source, one folder per company and role.
  • settings/ — your profile, persona and autofill details.
  • kb_documents/ — supporting documents you added to your career record.
  • exports/ — downloads such as career.md.
  • backups/ — database backups made by updates.
  • logs/ — the app's logs.

The code lives in backend/ (the server), frontend/ (the web app) and extension/ (the Chrome extension); contributors start at CONTRIBUTING.md.


Community, Documentation & Contributing

Contribution fast-path: docs fixes, resume/cover-letter templates and extension job-board adapters go straight to a pull request — no issue needed. Features and bigger changes: open an issue first. Every pull request gets a human reply within 48 hours and is read by a human — we don't merge AI slop.

This is an early release. If something doesn't work, please say so — a clear bug report is one of the most valuable contributions right now.

  • Project site: maestrocareerstudio.com — a five-minute tour before you clone anything.
  • Getting Started: docs/GETTING_STARTED.md — install to first tailored PDF, step by step.
  • Updating: docs/UPDATING.md — updating by hand, backups, rolling back.
  • Known issues: KNOWN_ISSUES.md — what works well, what's rough, and what's a deliberate limitation.
  • Skills for your AI assistant: docs/skills/ — job hunt, apply run, and a skill that builds your own.
  • Contributing: CONTRIBUTING.md — development setup, tests, development mode and LLM tracing, and where help is wanted.
  • How it's built: SYSTEM.md — the architecture reference for contributors and coding agents; read the relevant part before changing behaviour.
  • Glossary: UBIQUITOUS_LANGUAGE.md — the project's vocabulary, worth ten minutes before your first contribution.
  • Changelog: CHANGELOG.md — what changed in each release; read any Breaking changes heading before updating.
  • Releasing (maintainers): docs/RELEASING.md.
  • Security & privacy: SECURITY.md — the local-only rule and how to report a vulnerability. PRIVACY.md — what is stored, and what leaves your computer.
  • License: LICENSE — Apache License 2.0, plus NOTICE.

Privacy Policy

There is no Maestro CS server or account, and the author never receives your data. Your career record stays in files on your computer; it goes to an AI service only when you add a key and use an AI feature, and to the assistant you connect over MCP when it calls a tool. With a model on your own computer, the app sends nothing out. PRIVACY.md has the full policy: what is stored, every place data can go, retention, and how to ask a question.


Licensing

Maestro CS is free software under the Apache License 2.0.

You may use it commercially, and you don't have to publish your changes. Fork it, build it into a product, run a modified copy as a hosted service — all permitted. Apache 2.0 asks three things in return: keep the license and copyright notices, say what you changed in the files you changed, and pass along the NOTICE file with any redistribution. It also includes an explicit patent grant from every contributor, the main practical reason to prefer it over MIT or BSD.

Credits for the third-party pieces we redistribute — the LaTeX resume template, the XCharter font, the scoring model — are in THIRD_PARTY_NOTICES.md, which the license also asks you to carry forward.

No CLA. Contributions are licensed under Apache 2.0 by section 5 of the license itself; there's nothing to sign. Commercial questions: [email protected].


Credits & Citation

Maestro CS stands on other people's work. The full list — bundled sources, the scoring model, the PDF tools, and every dependency with its license — is in THIRD_PARTY_NOTICES.md. The ones that shape the product most:

Using Maestro CS in published work? Cite it with GitHub's "Cite this repository" button, which reads CITATION.cff.


Troubleshooting & Common Questions

"port is already allocated" when starting: Another program is using a port the app needs. Change FRONTEND_HOST_PORT (3000) or BACKEND_HOST_PORT (8001) in .env and run docker compose up -d again (lsof -i :<port> shows what's using it). If you change the backend port, the Companion needs the new address too — see extension/README.md.

AI features fail with "401 Unauthorized" or quota errors: Check the key in Settings › AI & models and press Test. If you put the key in .env after starting, run docker compose restart backend.

"database is locked": The database takes one writer at a time. Usually a program on your computer opened data/maestro_cs.sqlite3 while the app was running — stop the app first, or open a copy from backups/ instead. It also happens during long writes (like building your career record); give it a few minutes. On a drive that doesn't support the default mode (some network drives), set SQLITE_JOURNAL_MODE=DELETE in .env and restart.

PDFs fail to build: LaTeX templates need TeX, which the app's Docker image includes. If you run the backend outside Docker without TeX, LaTeX templates build through a Typst template instead and the app says so.

The app came up empty after updating from v0.3.0 or older: Your data isn't gone — it's still in the old Postgres volume. See Coming from v0.3.0 or older.

來源:README.md,提交 715c07c

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.7.1最新Oct 1, 2026