Loading repository data…
Loading repository data…
Gsync / repository
Self-hosted, open-source job application tracker and AI-powered career assistant. Built with Next.js, helps job seekers manage their search journey with AI resume review, job matching, task logging, and application analytics—all while keeping your data private.
JobSync is a web app companion for managing your job search journey. This free and open-source project is designed to help job seekers efficiently track and organize their job applications. Say goodbye to the chaos of scattered information and hello to a streamlined, intuitive, and powerful job search experience running locally on your system.
Job searching can be overwhelming, with numerous applications to track and deadlines to meet. JobSeeker Assistant is here to simplify this process, allowing you to focus on big picture and keep track of your job search related activities. JobSync app platform empowers you with the tools you need to stay organized, informed, and proactive throughout your job search.
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 and run automations that track companies directly via the Greenhouse and Lever job board APIs, then AI-match each listing against your resume and surface the best fits for review. More job board sources coming soon.
Task & Activity Management: Manage tasks, track activites linked with tasks included with 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.
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.
JobSync Assistant is completely free to use and open source. It provides a powerful job search management tool at no cost and ensures that everyone has access to the resources they need. Additionally, JobSeeker Assistant is designed to be self-hosted, giving you full control over your data. By using Docker, you can easily set up and run JobSync Assistant on your own server, ensuring a secure and personalized experience.
Make sure Docker is installed and running, then:
git clone https://github.com/Gsync/jobsync.git
cd jobsync
docker compose up
Note: If app is unreachable after container starts, wait for a few minutes before accessing the app in 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.
API keys for all cloud providers can be configured in Settings > AI Settings after signing in. Ollama is selected as the default provider.
Note: Selected models must support structured output for AI features to work correctly.
Works with Ollama to run AI models locally on your machine.