MCP Job Application Tracker & Resume Customizer

MCP Job Application Tracker & Resume Customizer

Automates job application tracking and resume/cover letter generation using AI, integrating with Google Drive, Notion, and Gmail.

Category
Visit Server

README

🧠 MCP Job Application Tracker & Resume Customizer

An MCP (Model Context Protocol) server that automates your job application process using AI. It connects with Google Drive, Notion, and Gmail to help you track applications, generate tailored resumes and cover letters, and send follow-up reminders.

✨ Features

  • AI-Powered Resume & Cover Letter Generation: Uses Claude to create tailored documents for each job
  • Google Drive Integration: Automatically saves generated documents to your Drive
  • Notion Database Tracking: Logs all job applications with status tracking
  • Follow-up Email Automation: Sends reminder emails for applications that need attention
  • MCP Protocol: Works seamlessly with MCP-compatible AI assistants

šŸš€ Quick Start

1. Install Dependencies

npm install

2. Set Up Environment Variables

Copy the example environment file and fill in your API keys:

cp env.example .env

For Windows users: You can also use the provided setup-env.bat or setup-env-windows.bat scripts. āš ļø IMPORTANT: Edit these files first to replace placeholder values with your actual API keys before running them. Never commit files containing real API keys!

You'll need to set up:

3. Build the Project

npm run build

4. Run the MCP Server

npm start

šŸ”§ Setup Instructions

Google APIs Setup

  1. Go to Google Cloud Console
  2. Create a new project or select existing one
  3. Enable the following APIs:
    • Google Drive API
    • Gmail API
  4. Create OAuth 2.0 credentials:
    • Application type: Web application
    • Authorized redirect URIs: http://localhost:3000/auth/google/callback
  5. Copy the Client ID and Client Secret to your .env file

Notion Setup

  1. Go to Notion Developers
  2. Create a new integration
  3. Copy the Internal Integration Token to your .env file
  4. Create a database in Notion with the following properties:
    • Job Title (Title)
    • Company (Text)
    • Status (Select: drafted, applied, interviewing, offer, rejected, withdrawn)
    • Applied Date (Date)
    • Follow-up Date (Date)
    • Resume URL (URL)
    • Cover Letter URL (URL)
    • Notes (Text)
    • Created (Date)
    • Last Updated (Date)
  5. Share the database with your integration
  6. Copy the database ID to your .env file

šŸ“– Usage

Available Tools

The MCP server provides the following tools:

process_job_application

Process a new job application by generating tailored resume and cover letter.

Parameters:

  • jobTitle (string): The title of the job position
  • companyName (string): The name of the company
  • jobDescription (string): The full job description text
  • resumeData (object): Your resume information

Example:

{
  "jobTitle": "Senior Software Engineer",
  "companyName": "Tech Corp",
  "jobDescription": "We are looking for a senior software engineer...",
  "resumeData": {
    "name": "John Doe",
    "email": "john@example.com",
    "phone": "+1-555-0123",
    "location": "San Francisco, CA",
    "summary": "Experienced software engineer...",
    "experience": [...],
    "education": [...],
    "skills": ["JavaScript", "Python", "React"],
    "projects": [...]
  }
}

get_job_applications

Retrieve all job applications from your Notion database.

update_job_status

Update the status of a job application.

Parameters:

  • pageId (string): The Notion page ID
  • status (string): New status (drafted, applied, interviewing, offer, rejected, withdrawn)
  • notes (string, optional): Additional notes

send_follow_up_emails

Send follow-up emails for applications that need attention.

Parameters:

  • recipientEmail (string): Email address to send follow-ups to

get_google_auth_url

Get the Google OAuth URL for setting up access.

šŸ”„ Workflow

  1. Find a Job: When you find a job you want to apply for
  2. Process Application: Use process_job_application with the job details and your resume data
  3. Review Documents: Check the generated resume and cover letter in Google Drive
  4. Submit Application: When you submit, update the status to "applied"
  5. Track Progress: Monitor your applications in Notion
  6. Follow Up: Use send_follow_up_emails to send reminders

šŸ› ļø Development

Project Structure

src/
ā”œā”€ā”€ config/          # Configuration management
ā”œā”€ā”€ services/        # External service integrations
│   ā”œā”€ā”€ openai.ts    # OpenAI GPT integration
│   ā”œā”€ā”€ google.ts    # Google Drive & Gmail
│   └── notion.ts    # Notion database
ā”œā”€ā”€ types/           # TypeScript type definitions
└── index.ts         # Main MCP server

Available Scripts

  • npm run dev: Run in development mode with hot reload
  • npm run build: Build the TypeScript project
  • npm start: Run the built server
  • npm run watch: Watch for changes and rebuild

šŸ”’ Security

  • All API keys are stored in environment variables
  • Google OAuth uses secure token exchange
  • No sensitive data is logged or stored in plain text

āš ļø Important Security Practices

NEVER commit API keys to version control!

  • Always use .env files for your API keys (already in .gitignore)
  • If using setup-env.bat or setup-env-windows.bat scripts, replace placeholders with your actual keys locally
  • Keep your API keys private and rotate them immediately if exposed
  • For Windows users: Copy the setup script templates, add your keys, but do NOT commit them back to the repository

šŸ¤ Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

šŸ“„ License

MIT License - see LICENSE file for details

šŸ†˜ Support

If you encounter any issues:

  1. Check that all environment variables are set correctly
  2. Verify your API keys have the necessary permissions
  3. Ensure your Notion database has the correct structure
  4. Check the console for error messages

For more help, please open an issue on GitHub.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured