notion-job-tracker
by kedarnath30
README.md
# Notion Job Tracker MCP Server
## What it does
An MCP (Model Context Protocol) server that connects to a Notion job tracker database and exposes it as a set of tools Claude (or any MCP client) can call directly — searching, adding, and updating job leads without leaving the conversation.
## Tools
- **search_jobs(keyword: str)** — Searches the database for job leads whose job title or company name contains `keyword`.
- **add_job(role: str, company: str, status: str, apply_link: str, location: str = "", salary_range: str = "")** — Adds a new job lead row.
- **update_status(page_id: str, status: str)** — Updates the status of an existing job lead by its Notion page id.
## Notion database schema
This server expects the database to have these properties (rename in `server.py` if yours differ):
| Property | Type |
|--------------|--------|
| Role | Title |
| Company | Text |
| Status | Select |
| Apply Link | URL |
| Location | Text |
| Salary Range | Text |
## Setup
1. Install dependencies:
```bash
pip install -r requirements.txt
```
2. Create a Notion integration at https://www.notion.so/my-integrations, copy its secret, and share your job tracker database with that integration.
3. Copy `.env.example` to `.env` and fill in your values:
```bash
cp .env.example .env
```
```
NOTION_TOKEN=secret_xxx
NOTION_DATABASE_ID=your-database-id
```
The database id is the 32-character string in your database's URL.
4. Run the server:
```bash
python server.py
```
## Using with an MCP client
Add an entry to your MCP client's config, e.g. for Claude Desktop (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"notion-job-tracker": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}
```
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues