Build, version and render resumes as PDFs from Claude or any MCP client.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
ResuStack is an AI resume builder. Import a PDF or your LinkedIn profile, pick one of 14 designs, and edit by form or by chat β in the browser, or straight from Claude through its MCP server. Every change is reversible, and the PDF you download is rendered from the same template as the live preview.
π Live: resustackapp.com
ResuStack is a Model Context Protocol server. Claude β or any MCP client with Streamable HTTP and custom headers β writes the resume; ResuStack stores it, versions it and renders it.
1. Create a token. Sign in, open Profile β API token, and create one. It is shown once; replacing it revokes the old one. The Profile page also shows the endpoint address to use.
2. Add the server. With Claude Code:
Authentication is a bearer token only; session cookies are not accepted on this endpoint.
3. Ask. "List my resumes", "Switch my CV to the Label Gutter design and give me the PDF", "Fill What I'm working on from what we did this month."
| Tool | What it does |
|---|---|
list_resumes | Resumes on the account: id, title, language, template |
get_resume | The full stored content of one resume |
create_resume | Create a resume from structured content |
update_resume | Replace a resume's content (read it first β this is a replace, not a merge) |
set_focus_areas | Set only the "What I'm working on" section; the rest of the resume is untouched |
list_templates | The designs, with a description and whether each is ATS-safe |
set_template | Change a resume's design |
render_pdf | A download link for the PDF β single use, expires in 10 minutes |
check_quota | What the account has left this month |
| Prompt | What it does |
|---|---|
focus_areas_from_my_work | Has the client's model summarise the work you have actually done β from the conversations it can see β into a few lines, show them to you, and save them with set_focus_areas only after you approve |
server.json at the repository root describes the server for the official MCP Registry as com.resustackapp/resustack. Publishing under that name requires proving ownership of resustackapp.com with a file served at /.well-known/mcp-registry-auth:
Generate a key pair locally. Never commit key.pem (it is in .gitignore):
Print the proof record and set it as the MCP_REGISTRY_AUTH environment variable in Dokploy, then redeploy:
Check it is live:
Log in and publish from the repository root:
Bump version in server.json (and SERVER_INFO in mcp_server/protocol.py) for each new listing.




Free to start. Pro is a one-time purchase for a period β no subscription.
| Free plan | Limit |
|---|---|
| Resumes | 3 |
| PDF or LinkedIn imports | 2 / month |
| AI enhancements | 10 / month |
| PDF downloads | 5 / month |
| Agent chat messages | 10 / month |
| Tracked applications | 3 |
| Restore points per resume | 5 |
Pro removes these limits. Current prices are on the pricing page. Limits live in FREE_TIER_LIMITS in core/settings.py.
| Variable | Description | Example |
|---|---|---|
OPENAI_API_KEY | OpenAI API key | sk-proj-... |
SECRET_KEY | Django secret key | any long random string |
DEBUG | Debug mode | True |
ALLOWED_HOSTS | Allowed hosts | localhost,127.0.0.1 |
POSTGRES_DB / POSTGRES_USER / POSTGRES_PASSWORD | Database credentials | postgres |
POSTGRES_HOST / POSTGRES_PORT | Database address | db / 5432 |
EMAIL_HOST_USER / EMAIL_HOST_PASSWORD | SMTP credentials for password resets and email verification; for Gmail, an app password | you@gmail.com / app password |
EMAIL_HOST / EMAIL_PORT / EMAIL_USE_TLS / EMAIL_USE_SSL | SMTP server; defaults to Gmail (smtp.gmail.com, 587, TLS). For implicit TLS on 465, set EMAIL_USE_SSL=True | smtp.gmail.com / 587 / True / False |
DOWNLOAD_LINK_MAX_AGE | Seconds a signed PDF link stays valid (optional) | 600 |
GOOGLE_OAUTH_CLIENT_ID / GOOGLE_OAUTH_CLIENT_SECRET | Google sign-in; the button stays hidden until both are set (optional) | from Google Cloud Console |
DEFAULT_FROM_EMAIL | Sender for account emails; defaults to EMAIL_HOST_USER (optional) | ResuStack <you@gmail.com> |
MCP_REGISTRY_AUTH | MCP Registry domain proof served at /.well-known/mcp-registry-auth (optional, public key only) | v=MCPv1; k=ed25519; p=... |
PAYMENT_STATUS | coming_soon shows plans without taking payment; live enables checkout | coming_soon |
PAYMENT_PROVIDER, PAYMENT_WEBHOOK_SECRET, CHECKOUT_URL_*, PRODUCT_ID_* | Payment provider settings (optional) |
The app runs at http://localhost:8000.
WeasyPrint and OpenAI are mocked in the unit tests; no API calls are made.
Production runs on Dokploy. Every push to main triggers a deploy through a GitHub webhook: Dokploy builds the Dockerfile, and entrypoint.sh runs migrate and collectstatic before starting Gunicorn. Traefik handles HTTPS.
Setting it up on a new server:
curl -sSL https://dokploy.com/install.sh | shhttp://YOUR_SERVER_IP:3000 and create an admin account.env.prod.example) and the domain, then deployNotes:
ENTRYPOINT does everythingdocker-compose.prod.yml and the Caddyfile are kept for self-hosting without Dokploy; they are not what production uses.
Sign-in with Google uses django-allauth. ResuStack's own login, sign-up and password pages stay in charge; allauth adds only the Google flow.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/resustack)<a href="https://allmcps.com/mcp/resustack"><img src="https://allmcps.com/api/badge/resustack?style=directory" alt="ResuStack on AllMCPs" /></a>