Guide · Agent skill
How to use the Notion Tracker Mirror agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The Notion Tracker Mirror skill (career-ops-plugin-notion) lets an AI agent copy your local job application tracker into a Notion database you own, and read saved job listings from Notion back into your local pipeline. This guide explains what the skill does, how to install it, how to ask the agent for it, and what you need to set up first. Your local file data/applications.md stays the main record; Notion is an optional extra copy.
Quick start
- 1Check requirements. Confirm Node.js is installed and that your career-ops repository has plugins.mjs and config/plugins.yml with the notion plugin enabled.
- 2Create the Notion pieces. Make a Career Ops parent page with an Applications database that has Company, Role, Status, Score and URL properties.
- 3Create and share an integration. Create an internal integration in Notion, copy its token, and share the Career Ops page with it.
- 4Install the skill. Unzip the downloaded ZIP into ~/.claude/skills/ or a project's .claude/skills/, or upload it under Settings → Capabilities → Skills in the Claude apps.
- 5Add environment values. Put NOTION_ACCESS_TOKEN and NOTION_PARENT_PAGE_ID in the .env file of your career-ops repository.
- 6Preview the export. Run node plugins.mjs run notion export --dry-run to see what would be pushed without writing to Notion.
- 7Run export or search. Run the real export to mirror your tracker, or search with a query to pull job leads with URLs into your pipeline.
What an agent skill is and what this one does
An agent skill is a folder of instructions and scripts that an AI agent can load when a task matches its description. This skill comes from the career-ops project's notion plugin and is licensed MIT.
It does two things. Export pushes each row of your tracker (company, role, status and score) into an Applications database in Notion as a read-only snapshot. Search looks through that Notion database for records that have a job URL, matching a query you give, and adds them to your local job pipeline.
- Export: local tracker to Notion, one-way
- Search: Notion records with job URLs to local pipeline
- Local data/applications.md remains the source of truth
Install the skill
Download the ZIP for this skill from our page. You can install it in one of three places depending on how you work.
For a personal setup, unzip the download into ~/.claude/skills/. For a single project, unzip it into that project's .claude/skills/ folder. In the Claude apps you can instead upload the ZIP under Settings → Capabilities → Skills.
The package contains four files: _notion.mjs, index.mjs, manifest.json and skill.md.
- Personal: ~/.claude/skills/
- Project only: .claude/skills/ inside the project
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
Set up Notion before the first run
The skill needs a Notion parent page called Career Ops. Inside it, create a database named Applications with the properties Company, Role, Status, Score and URL. Create an internal integration in Notion, copy its token, and share the Career Ops page with that integration.
Add two values to the .env file in your career-ops repository: NOTION_ACCESS_TOKEN (the integration token) and NOTION_PARENT_PAGE_ID (the ID of the parent page). Keep this file private, because anyone with the token can access the pages it is shared with.
- Node.js installed (the scripts are ES modules with .mjs extensions)
- A Notion internal integration token
- A Notion parent page ID and an Applications database with Company, Role, Status, Score and URL
- The career-ops repository with plugins.mjs and config/plugins.yml enabled
NOTION_ACCESS_TOKEN=your-integration-token
NOTION_PARENT_PAGE_ID=your-parent-page-idRun export and search
Export copies each tracker row to the Applications database. To preview what would be written without touching Notion, add --dry-run. Export reports how many rows were pushed and never writes local files.
Search returns Notion records that carry a job URL and match your query. The engine then appends those jobs to your pipeline. Search is the only command that changes your local pipeline.
- Export preview: add --dry-run to the export command
- Search output is a list of jobs with title, url, company and location
node plugins.mjs run notion export
node plugins.mjs run notion export --dry-run
node plugins.mjs run notion search "<query>"Ask the agent in plain language
You do not need to type the commands yourself. Once the skill is installed, describe what you want and the agent should pick it up because the request matches the skill's description. Phrases like the ones below are a good starting point, though the agent decides when to load the skill.
Be specific about the direction. Say whether you want to send your tracker to Notion or pull leads from Notion, and include a search term when you want to narrow the results.
- "Mirror my career-ops tracker to my Notion Applications database."
- "Do a dry run of the Notion export so I can see what would be pushed."
- "Search my Notion job leads for remote data engineering roles and add them to my pipeline."
Safety notes: scripts and network access
This skill runs scripts and uses the network. Its export and search commands call Notion using your integration token, so the token is shared with a local script. Review the files in the package before installing, and only install skills you trust.
Export is one-way and does not change your local files. Search does write to your local pipeline, so check results after a search. Use --dry-run first if you are unsure what an export will do.
- The skill stores NOTION_ACCESS_TOKEN in .env and needs it to reach Notion
- Scripts run locally and make network calls to Notion
- Search appends matching jobs to your local pipeline
Tips for a clean setup
Make the Notion database columns match the names exactly, including capitalisation, because the skill expects Company, Role, Status, Score and URL. Test with --dry-run before your first real export. Treat Notion as a view of your tracker rather than the place you edit it, since changes made in Notion are not written back to data/applications.md.
- Match property names exactly
- Run export with --dry-run first
- Edit your tracker locally, not in Notion
What people use it for
- Keep a read-only Notion view of your application pipeline so you can share status with a mentor or recruiter.
- Save job listings with URLs in a Notion database during research, then import matching ones into career-ops with a search.
- Extend career-ops with a sync backend by reading the export and search code as a starting point.
Frequently asked questions
How do I install the Notion Tracker Mirror skill?
Download the ZIP from the skill page and unzip it into ~/.claude/skills/ for personal use or a project's .claude/skills/ folder. In the Claude apps, you can upload the ZIP under Settings → Capabilities → Skills instead.
What do I need before using this skill?
You need Node.js, a Notion account with an internal integration token, a Notion parent page ID, an Applications database with Company, Role, Status, Score and URL properties shared with the integration, and the career-ops repository with plugins.mjs and config/plugins.yml enabled.
Is the Notion Tracker Mirror skill free?
The skill is licensed MIT. The source does not mention pricing, so check the page you downloaded it from and your own Notion plan for any costs.
Does Notion replace my local job tracker?
No. data/applications.md remains the main record. Export copies your tracker to Notion as a one-way mirror, and the skill is not designed to make Notion your primary tracker.
Why does export say it pushed rows but my local file did not change?
Export only writes to Notion and never writes local files, so that is expected. Only search changes your local pipeline, by appending jobs that have URLs.
What should I do if export fails or finds no records?
Check that NOTION_ACCESS_TOKEN and NOTION_PARENT_PAGE_ID are set in .env, that the Career Ops page is shared with your integration, and that the Applications database has the exact property names Company, Role, Status, Score and URL.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits job seekers who already use Notion and want a read-only copy of their pipeline there, or developers who want a starting point for a sync backend. If you want Notion as your primary tracker, or you are not comfortable storing a Notion integration token in a local .env file, pick a different approach.
Download the skill