by Gsync
Self-hosted, open-source job application tracker and AI-powered career assistant. Helps job seekers manage their search journey with AI resume review, job matching, task logging, and application analytics, all while keeping your data private.
# Add to your Claude Code skills
git clone https://github.com/Gsync/jobsyncLast scanned: 8/6/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@eslint/config-array: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@eslint/eslintrc: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@hono/node-server: Node.js Adapter for Hono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@modelcontextprotocol/sdk: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash",
"severity": "high"
},
{
"type": "npm-audit",
"message": "diff: jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch",
"severity": "low"
},
{
"type": "npm-audit",
"message": "eslint: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "fast-uri: fast-uri vulnerable to host confusion via backslash authority introducer",
"severity": "high"
},
{
"type": "npm-audit",
"message": "hono: Hono: ReDoS in CORS middleware via Access-Control-Request-Headers",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address: Address4 decodes leading-zero octets as decimal while resolvers decode them as octal, allowing SSRF and trust-boundary bypass",
"severity": "high"
},
{
"type": "npm-audit",
"message": "minimatch: Vulnerability found",
"severity": "high"
},
{
"file": "README.md",
"line": 71,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/Gsync/jobsync/main/deploy.sh | sudo\"",
"severity": "low"
}
],
"status": "WARNING",
"scannedAt": "2026-08-06T06:30:16.283Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}jobsync is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Gsync. Self-hosted, open-source job application tracker and AI-powered career assistant. Helps job seekers manage their search journey with AI resume review, job matching, task logging, and application analytics, all while keeping your data private. It has 797 GitHub stars.
jobsync returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.
Clone the repository with "git clone https://github.com/Gsync/jobsync" and add it to your Claude Code skills directory (see the Installation section above).
jobsync is primarily written in TypeScript. It is open-source under Gsync on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh jobsync against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
JobSync is a free, open-source companion for your job search: track applications, manage and export resumes, and run AI-powered resume reviews, job matching, generate cover letter — all self-hosted on your own server, so your data stays under your control. AI features can run entirely locally via Ollama or through your choice of cloud provider, and JobSync's built-in MCP server lets AI agents like Claude Desktop add jobs and interview questions straight from your chat.

Application Tracker: Keep a detailed record of all your job applications, including company details, job titles, application dates, and current status.

Monitoring Dashboard: Visualize your job search progress with an interactive dashboard that provides insights into your application activities, success rates, and upcoming tasks.
Resume Management: Store and manage your resumes, export them as professionally formatted PDFs (Simple or Professional template), and use them with AI to get reviews and match with job descriptions. Import existing resumes from PDF or Word (.docx) files — AI extracts and structures your contact info, experience, education, and certifications so you can review and save each section individually.
Automated Job Discovery: Schedule automations that track companies via job board APIs, then AI-match each listing against your resume and surface the best fits for review. See Features in Detail below.
Task & Activity Management: Manage tasks, track activities linked with tasks including time tracking.
AI Assistant: Leverage the power of AI to improve your resumes and match with jobs. Get personalized job matching with scoring to identify the best opportunities tailored to your profile, and generate a tailored cover letter from a job description and resume in one click.

AI Agent Integration (MCP): Connect AI agents like Claude Desktop via a built-in MCP server to add job applications and Question Bank entries directly from your chat, with your approval. When a job description is substantial enough, the agent can also analyze it against your default resume and save a job match score right from the chat.
Make sure Docker is installed and running, then:
git clone https://github.com/Gsync/jobsync.git
cd jobsync
docker compose up
Note: The first startup builds the app image, which can take a few minutes — if the app is unreachable right after
docker compose up, wait a bit before accessing it in your browser.
Open http://localhost:3737 and create your account. That's it!
API keys for AI providers can be configured in Settings after signing in.
Environment variables can be set in docker-compose.yml:
| Variable | Description |
|---|---|
TZ |
Your timezone (e.g. America/Edmonton). Set this on remote servers to avoid activity time shifts. |
AUTH_SECRET |
Auto-generated if not set. To set manually: openssl rand -base64 32 |
From the project directory, run the deploy script to pull the latest changes and rebuild:
curl -fsSL https://raw.githubusercontent.com/Gsync/jobsync/main/deploy.sh | sudo bash -s
On Windows, run the PowerShell equivalent from the project directory instead (deploy.sh needs WSL or Git Bash; deploy.ps1 runs natively):
.\deploy.ps1
Note: If you are updating in a homelab environment, edit
NEXTAUTH_URLin your.envfile to use your server IP address instead oflocalhost. See.env.examplefor the expected format.
Export any resume as a professionally formatted PDF directly from the resume page. Choose between two layouts — a clean Simple template and a more polished Professional template. If a PDF attachment already exists, you'll be prompted to replace it or keep the download only.
Import an existing resume from a PDF or Word (.docx) file. AI extracts structured data — contact info, summary, skills, work experience, education, and certifications — and presents each section as a review card. You can accept or skip individual sections before saving them to your resume.
Set up automations that search for new jobs on a schedule and AI-match them against your resume, so relevant openings come to you.
Greenhouse — track specific companies by name from a built-in directory (or by pasting a board URL). Each run pulls every published role from those companies' Greenhouse boards, ranks them against your target titles, skills, and resume with a fast local relevance score, and runs the AI match on only the top candidates to keep costs bounded. No API key required.
Lever — same company-tracking workflow as Greenhouse, backed by a built-in directory of 1,160+ companies (or paste a board URL). Automatically resolves the right regional API (lever.co or eu.lever.co) per company and carries full remote/hybrid/onsite signal from the listing. No API key required.
More job board sources are on the way. Discovered jobs are surfaced for review — accept the ones you like to promote them into your job tracker, or dismiss the rest.
JobSync exposes an MCP server so AI agents (Claude Desktop, Hermes, OpenClaw, etc.) can add job applications and Question Bank entries directly, with your approval.
Browsing a job posting or reading an interview question elsewhere and don't want to break your flow to log it manually? Just ask your connected AI agent, for example:
The agent resolves or creates the company, title, location, and tags by name, and reports back what it matched versus created — so your data stays de-duplicated without you having to switch to the app.
When you add a job with a substantial description and you've set a default resume (Profile), the agent also analyzes the fit against that resume and saves a job match score — no round trip to the app needed. The result shows up on the job just like an in-app AI match, scores, recommendation, and write-up included.
claude_desktop_config.json in your default editor.mcpServers, e.g.:{
"mcpServers": {
"jobsync": {
"command": "npx",
"args": [
"mcp-remote",
"http://<your-jobsync-url>/api/mcp",
"--header",
"Authorization: Bearer <your-token>"
]
}
}
}
Note: Claude Desktop only supports local (stdio) MCP servers directly, so
mcp-remoteis required as a bridge to JobSync's remote endpoint.
Clients that support streamable-http natively can connect directly without mcp-remote:
{
"mcpServers": {
"jobsync": {
"type": "streamable-http",
"url": "http://<your-jobsync-url>/api/mcp",
"headers": { "Authorization": "Bearer <your-token>" }
}
}
}
Self-hosting on a home network? If your JobSync URL is a plain
http://LAN address (notlocalhostor HTTPS), add--allow-httpto themcp-remoteargs — it refuses non-HTTPS URLs by default. The Settings page adds this flag automatically when it detects a non-localhost HTTP URL.
We welcome contributions! Please read our Contributing Guidelines to get started. This project follows a Code of Conduct — by participating, you agree to uphold its standards.