SyncGTM now works inside Claude and ChatGPT. Learn more
SyncGTM logoSyncGTM logo
  • Platform

    • Find Leads
    • Enrich Data
    • Intent Signals
    • Integrations
    • GTM MCP

    Person Data

    • Work Email
    • Mobile Number
    • Personal Email
    • Experience
    • Verify Emails
    View all →

    Company

    • Techstack
    • Website Traffic
    • Revenue
    • Google Ads
    • LinkedIn Posts
    View all →

    Person signals

    • Job Change
    • Promotions
    • Leadership Change
    • LinkedIn Posts
    • WhatsApp Validation
    View all →

    Account signals

    • Headcount Growth
    • Job Openings
    • Techstack Change
    • Funding
    • Product Launched
    View all →
    • Sales
    • RevOps
    • Agency
    • Startups
    • GTM Engineers
    • CRM Enrichment
    • Account Research
    • Inbound Automation
    • Outbound Automation
    • Monitor Signals
  • Fractional GTMe
  • Pricing
  • Learn

    • Blog
    • Docs
    • Templates
    • Reports
    • Case Studies
    • Webinars
    • Video Tutorials
    • Product Tour

    Resource

    • Affiliate
    • Free Tools
    • Credit Estimator
    • Compare Coverage
    • Agency Directory
    • Product Updates
    • Roadmap
    • Join community

    AI

    • GTM agents
    • GTM skills
  • Login
  • vsClay logoClay
  • Platform

    • Find Leads
    • Enrich Data
    • Intent Signals
    • Integrations
    • GTM MCP

    Person Data

    • Work Email
    • Mobile Number
    • Personal Email
    • Experience
    • Verify Emails
    • View all →

    Company

    • Techstack
    • Website Traffic
    • Revenue
    • Google Ads
    • LinkedIn Posts
    • View all →

    Person signals

    • Job Change
    • Promotions
    • Leadership Change
    • LinkedIn Posts
    • WhatsApp Validation
    • View all →

    Account signals

    • Headcount Growth
    • Job Openings
    • Techstack Change
    • Funding
    • Product Launched
    • View all →
    • Sales
    • RevOps
    • Agency
    • Startups
    • GTM Engineers
    • CRM Enrichment
    • Account Research
    • Inbound Automation
    • Outbound Automation
    • Monitor Signals
  • Fractional GTMe
  • Pricing
    • Blog
    • Docs
    • Templates
    • Reports
    • Case Studies
    • Webinars
    • Video Tutorials
    • Product Tour

    Resource

    • Affiliate
    • Free Tools
    • Credit Estimator
    • Compare Coverage
    • Agency Directory
    • Product Updates
    • Roadmap
    • Join community

    AI

    • GTM agents
    • GTM skills
  • Login
  • vsClay logoClay
SyncGTM logo
support@syncgtm.com
Built withfrom&

Product

  • Lead Finder
  • Data enrichment
  • Intent Signals
  • Integrations
  • GTM MCP
  • Enrichment CLIsoon

Use Cases

  • CRM Enrichment
  • Account Research
  • Inbound Automation
  • Outbound Automation
  • Monitor Signals

Person Data

  • Work Email
  • Mobile Number
  • Personal Email
  • Experience
  • Verify Emails
  • View all →

Company Data

  • Techstack
  • Website Traffic
  • Job Listing
  • Google Ads
  • LinkedIn Posts
  • View all →

Person Signals

  • Job Change
  • Promotions
  • Leadership Change
  • LinkedIn Posts
  • WhatsApp Validation
  • View all →

Account Signals

  • Headcount Growth
  • Job Openings
  • Techstack Change
  • Funding
  • Product Launched
  • View all →

Solutions

  • Sales
  • Agency
  • RevOps
  • Startups
  • GTM Engineers
  • Fractional GTMe

Company

  • Contact
  • Affiliate
  • Sign Up
  • Login
  • Terms
  • Affiliate Terms
  • Privacy

Resources

  • Pricing
  • Credit Estimator
  • Templates
  • Blog
  • Case Studies
  • Webinars
  • Video Tutorials
  • Slack Community
  • Docs
  • Agency Directory
  • Free Tools
  • Product Updates
  • Roadmap

Copyright ©2026 SyncGTM

Featured on SaaSBison
Job Search Claude Skill: Build a SKILL.md Job Hunter (2026)

In this Blog

  • TL;DR
  • Why Build a Job Search Claude Skill
  • What You Need Before You Start
  • Anatomy of the Job Hunter SKILL.md
  • Frontmatter
  • Inputs Block
  • Numbered Steps and the Tools They Call
  • Tracker CSV Schema and Skip Logic
  • Human Review Gates
  • The Full Copy-Paste SKILL.md
  • Where to Install the Skill
  • Claude Code
  • Claude App
  • Test It With a Small First Run
  • Tighten the Skill After a Bad Run
  • What a Run Costs
  • FAQs
  • Conclusion

Job Search Claude Skill: Build a SKILL.md Job Hunter (2026)

Kushal Magar

By Kushal Magar · October 17, 2026 · 12 min read

Key Takeaway

A job search Claude skill is a SKILL.md file that runs the same hunt every time: search LinkedIn jobs with your filters, skip roles already in your tracker, score the rest against your resume, find the hiring manager, verify their email, and log it all to a CSV. It stops at two review gates and never applies or sends anything. Copy the full skill below, change the inputs block, and run it.

Definition

A job search Claude skill is a SKILL.md file that gives Claude a fixed job-hunting procedure: the same search filters, the same resume scoring, the same hiring manager lookup and the same tracker file on every run, started by name instead of by a long prompt.

A job search Claude skill turns a messy weekly chore into one command. Instead of re-explaining your target titles, salary floor and resume every Monday, you write them down once in a SKILL.md, and Claude follows the same numbered steps each time.

This guide is the deep dive on the Skill itself. It covers the frontmatter, the inputs block, the steps that call SyncGTM MCP tools, the tracker CSV that skips roles you have already seen, a full copy-paste file, where to install it, and how to fix it after a bad run. For the broader workflow, start with the pillar guide, Job Search With Claude.


TL;DR

  • A skill is a folder with a SKILL.md. YAML frontmatter holds name and description; the body holds inputs, rules and numbered steps.
  • The tool chain is check_credits → search_linkedin_job_openings → fit scoring → find_people → find_work_email → verify_email → tracker CSV.
  • A tracker CSV read at the start of every run lets the skill skip roles you already saw.
  • Two review gates and a never-apply, never-send rule keep you in control.
  • Install at ~/.claude/skills/job-hunter/SKILL.md, .claude/skills/job-hunter/SKILL.md, or upload a zip in the Claude app.

Why Build a Job Search Claude Skill

A one-off prompt can run a decent job search once. A skill makes it run the same way the tenth time. That matters because job hunting is a loop: search, filter, review, reach out, repeat. Loops are where prompts drift.

  • Filters stop drifting. Titles, locations, work type and salary floor live in one inputs block instead of in whatever you remembered to type.
  • Repeat roles disappear. The tracker lets the skill skip anything already logged, so each run only shows new openings.
  • Credits stay predictable. Caps on jobs, shortlist size and contacts set a ceiling before any paid tool runs.
  • Nothing goes out by accident. The rules section forbids applying and sending, and review gates force a pause before contacts and drafts.

Anthropic describes skills as folders of instructions that Claude loads when relevant, and Claude Code also lets you run one directly with a slash command (see the Claude Code skills documentation). If you have built a skill for sourcing leads, this is the same pattern pointed at a different target; see the lead generation Claude skill guide for the sales version.


What You Need Before You Start

  1. Claude Code or the Claude app with permission to add a custom connector. On Team and Enterprise plans, an admin controls custom connectors.
  2. SyncGTM MCP connected. In the Claude app, add a custom connector with the URL https://api.syncgtm.com/mcp and approve the browser sign-in. In Claude Code, run:
claude mcp add --transport http syncgtm https://api.syncgtm.com/mcp
  1. A plain-text resume (Markdown or text works best) saved next to the skill, so Claude can read it without guessing.
  2. A few credits. Check the balance any time with the free check_credits tool. Costs are covered in the cost section.

New to MCP in general? The B2B database MCP guide explains what a connector is and what SyncGTM exposes through it.


Anatomy of the Job Hunter SKILL.md

The skill has five parts: frontmatter, an inputs block, hard rules, numbered steps, and a tracker schema. Here is why each one exists.

Frontmatter

The file must begin with YAML between two --- lines on the very first line. Otherwise the whole file is treated as plain content.

  • name sets the command. In Claude Code it defaults to the folder name, so keep the two identical (job-hunter).
  • descriptiontells Claude when to use the skill. Put the trigger phrases first ("run my job search", "find new jobs") because long descriptions are truncated in the skill listing.

Claude Code supports extra fields such as allowed-tools and disable-model-invocation. The Claude app is stricter: uploaded skills accept only name, description, license, compatibility, metadata and allowed-tools, and any other key causes an error. The skill in this post sticks to name and description so the same file works in both places.

Inputs Block

Put everything you will change between runs in one list at the top: target titles, locations, work type, experience level, salary floor, how recent a posting must be, the resume path, the tracker path, and the caps. Editing four lines is faster and safer than rewriting a prompt.

Numbered Steps and the Tools They Call

Each paid step names one tool and the parameters to pass. Naming parameters stops Claude from improvising a different search every run.

StepToolKey parameters
Preflightcheck_creditsNone. Free.
Find jobssearch_linkedin_job_openingstitle (required), locations, work_type, experience_level, published_at, salary_base, exclude_recruiting_agencies, save_only_unique_items, max_results, resume_keywords
Find hiring managerfind_peoplecompany_names, job_titles, job_levels, limit
Find work emailfind_work_emaillinkedin_url, domain
Verify emailverify_emailemail

Two parameters do real work. published_at takes a recency window such as r604800 for the past week, which keeps every run focused on fresh postings. resume_keywords takes a list of keyword-and-aliases objects and scores how well each opening matches your resume, so Claude starts its own scoring from a signal instead of from nothing. The salary_basefilter is best-effort, so the skill still checks the posting text and flags "salary unstated" instead of silently dropping roles.

Tracker CSV Schema and Skip Logic

The tracker is how the skill remembers. Step 1 reads it, step 4 drops anything already in it, and step 9 appends new rows. A fixed column order means the file stays usable in a spreadsheet and never drifts between runs.

job_url,company,title,location,posted,salary_text,fit_score,fit_reasons,contact_name,contact_title,contact_linkedin,contact_email,email_status,status,first_seen,notes
https://example.com/jobs/101,Acme Cloud,Growth Marketing Manager,Remote (US),2026-10-15,"$100k-$120k",84,"Paid + lifecycle match",Jane Example,Head of Marketing,https://www.linkedin.com/in/jane-example,jane@acme-example.com,verified,drafted,2026-10-17,

Illustrative row with placeholder company and person. Your tracker will hold real data.

Matching on the posting link, with company plus title as a fallback, catches the common case where the same role is reposted. Logging roles you rejected too (status skipped) is what stops them returning next week.

Human Review Gates

A skill that spends credits and drafts outreach needs brakes. This one has two:

  • Gate 1, after scoring: you see the shortlist and choose which roles are worth contact lookups. No contact credits are spent before this.
  • Gate 2, after drafting: drafts appear in chat only. You edit and send them yourself.

The hard rules also forbid submitting applications and sending anything. Treat those rules as part of the skill, not a suggestion. Also check recruiters' and platforms' terms before contacting people, and read every draft for accuracy before it goes out under your name.


The Full Copy-Paste SKILL.md

Save this as SKILL.md inside a folder named job-hunter. Change the example titles, locations and salary floor in the inputs block to match your own search.

---
name: job-hunter
description: Runs a repeatable job hunt. Use when the user says "run my job search", "find new jobs", "job hunter" or "check for new roles". Searches LinkedIn jobs, scores each against the resume, finds the hiring manager, verifies their email, and logs everything to job-tracker.csv. Never applies and never sends messages.
---

# Job Hunter

Find new roles that fit my resume, find who is hiring for them, and log everything.
Stop for my approval at the two review gates below.

## Inputs (edit these before each run)

- target_titles: ["Product Marketing Manager", "Growth Marketing Manager"]
- locations: ["Austin, Texas", "Remote"]
- work_type: ["remote", "hybrid"]
- experience_level: ["mid-senior"]
- salary_floor: 90000   (minimum base salary, USD)
- posted_within: "r604800"   (past week; r86400 = past 24h)
- resume_path: ./resume.md
- tracker_path: ./job-tracker.csv
- max_jobs: 20
- shortlist_size: 5
- hiring_manager_titles: ["Head of Marketing", "VP Marketing", "Director of Marketing"]

## Hard rules

1. Never submit an application. Never send an email, LinkedIn message or connection request. Drafts only.
2. Use only facts that appear in the resume file. Never invent experience, skills or numbers.
3. Call only the tools named in the steps below. Do not add other paid tools.
4. If a tool returns nothing or an error, record that in the tracker notes and move on. Do not retry in a loop.
5. If the tracker file cannot be read, ask me to paste or attach it. Do not assume it is empty.

## Steps

1. Preflight. Read the tracker (create it with the header row in the Tracker schema if missing). Call check_credits. Worst case for this run is about max_jobs x 0.3 + shortlist_size x (3 x 0.2 + 1 + 0.1) credits. If the balance is lower, tell me and stop.

2. Read the resume at resume_path. Extract 8 to 15 skills, tools and domain keywords. Build resume_keywords as a list of objects, each with a keyword and an aliases list (for example keyword "SEO", aliases ["search engine optimization"]).

3. Search. Call search_linkedin_job_openings once with: title = target_titles, locations = locations, work_type = work_type, experience_level = experience_level, published_at = posted_within, salary_base = salary_floor (as a string), exclude_recruiting_agencies = true, save_only_unique_items = true, max_results = max_jobs, resume_keywords = the list from step 2.

4. Skip what I have seen. Drop any job whose posting link is already in the tracker, or whose company and title both match a tracker row. Report how many were dropped.

5. Score fit from 0 to 100 against the resume: skills match 40, seniority and scope 25, location and work type 15, salary vs salary_floor 10, company stage and domain 10. If the posting shows no salary, score that part 5 and say "salary unstated". One short sentence of reasoning per job. Keep the top shortlist_size jobs scoring 60 or higher.

6. REVIEW GATE 1. Show a table: rank, company, title, location, fit score, reasoning, posting link. Ask which roles to continue with. Do nothing else until I answer.

7. Hiring manager. For each approved role, call find_people with company_names = [company], job_titles = hiring_manager_titles, job_levels = ["Manager", "Director", "VP"] and limit = 3. Pick the person whose title is closest to the role's function. If nobody fits, record "no contact found". Never guess a name.

8. Email. For the chosen person, call find_work_email with their linkedin_url and the company domain. If it returns "Email not found", record email_status = not_found. Otherwise call verify_email on the address. Record email_status = verified only if the result clearly says valid, otherwise unverified.

9. Log. Append one row per job reviewed (approved or not) to the tracker using the exact column order below. New rows get status = new, or status = shortlisted for approved roles.

10. REVIEW GATE 2. For approved roles with a contact, write a short draft note (under 90 words) that references one real line from the resume and one detail from the posting. Show the drafts in chat only. Do not send them. Ask me to edit or approve. Set status = drafted for those rows.

11. Summary. Print: jobs found, dropped as seen, scored, shortlisted, contacts found, verified emails, estimated credits spent, and the tracker path.

## Tracker schema (job-tracker.csv, exact column order)

job_url,company,title,location,posted,salary_text,fit_score,fit_reasons,contact_name,contact_title,contact_linkedin,contact_email,email_status,status,first_seen,notes

- status values: new, shortlisted, drafted, skipped, applied_by_me
- Only I change a status to applied_by_me.
- first_seen is today's date in YYYY-MM-DD.

The folder layout:

job-hunter/
  SKILL.md
  resume.md          (optional, or point resume_path elsewhere)
  job-tracker.csv    (created on first run)

At the first review gate, a run looks roughly like this:

Illustrative output (placeholder companies and people)

Review gate 1: shortlist
Rank  Company        Title                       Location        Fit  Why
1     Acme Cloud     Growth Marketing Manager    Remote (US)     84   Resume covers paid + lifecycle; salary stated, above floor
2     Northwind Labs Product Marketing Manager   Austin, TX      78   Strong launch work; stage is later than preferred
3     Example Health Senior PMM                  Hybrid, Austin  66   Domain gap; salary unstated

Dropped as already seen: 7
Credits spent so far (estimate): 6.0

Which roles should I look up contacts for?

Illustrative only. Companies, scores and counts are placeholders, not real results.


Where to Install the Skill

Claude Code

There are two common locations:

  • Personal: ~/.claude/skills/job-hunter/SKILL.md. Available in all your projects on that machine.
  • Project: .claude/skills/job-hunter/SKILL.md inside a repository. Available in sessions in that repo, and shareable by committing it.

Personal install:

mkdir -p ~/.claude/skills/job-hunter
# save the SKILL.md from this post as:
#   ~/.claude/skills/job-hunter/SKILL.md

Or keep the whole job search in its own project folder:

mkdir -p my-job-search/.claude/skills/job-hunter
cd my-job-search
# save SKILL.md into .claude/skills/job-hunter/
# put resume.md in the project root, then start Claude Code
claude

Claude Code watches these folders, so adding or editing a skill takes effect in the current session. If the top-level skills folder did not exist when the session started, run /reload-skills. Then type /job-hunter or ask Claude to run your job search. Because the resume and tracker use relative paths, start Claude Code from the folder that holds them. Put your resume in a personal skill folder or a private repo only, never in a public one.

Claude App

  1. Turn on Code execution and file creationunder Settings > Capabilities (on Team and Enterprise, an owner enables it).
  2. Zip the folder, keeping the folder name equal to the skill name:
zip -r job-hunter.zip job-hunter/
  1. Go to Customize > Skills, click +, choose Create skill, then Upload a skill, and select the zip.
  2. Add the SyncGTM custom connector at https://api.syncgtm.com/mcp so the tools are available in chat.

Uploaded skills are private to you until you share them. In the app there is no project folder on your disk, so attach your resume and tracker CSV to the chat; rule 5 in the skill tells Claude to ask for the tracker rather than assume it is empty, and you should download the updated CSV after each run. Anthropic's guide to using skills in Claude lists plan availability and the latest upload steps.


Test It With a Small First Run

Do not run the full 20-job version first. Shrink the caps and check the behavior:

  1. Set max_jobs: 5 and shortlist_size: 2.
  2. Start with an empty or one-row tracker so you can watch it get written.
  3. Confirm Claude calls check_credits first and stops at the first review gate.
  4. Approve one role and check that the contact has the right title and that nothing was sent.
  5. Run the skill a second time with the same filters. Previously seen roles should be reported as dropped. If they are not, the skip logic is broken.

Tighten the Skill After a Bad Run

Every bad run points to a missing sentence in the file. Fix the file, not the chat, so the fix applies to every future run.

What went wrongLikely causeEdit to make
Same roles showed up againTracker not read, or matching too looseMake step 1 mandatory; match on posting link first, then company plus title
Shortlist full of poor fitsWeak resume keywords or vague scoringAdd more specific keywords with aliases; raise the minimum score from 60
Agency postings clogged the listFilter missingConfirm exclude_recruiting_agencies = true is in step 3
Wrong person picked as hiring managerBroad titlesNarrow hiring_manager_titles to the function; require a title match, otherwise "no contact found"
Claude kept retrying a failed toolNo failure ruleKeep rule 4: log the error, move on, never loop
A draft claimed experience you do not haveDraft step not tied to the resumeStrengthen rule 2 and require each draft to quote a real resume line
Tracker columns changedSchema not exactKeep the header line verbatim and say "exact column order"

Keep edits small and re-run the five-job test after each one so you know which change fixed what.


What a Run Costs

Per-tool prices from the SyncGTM MCP documentation:

ToolCredits
check_creditsFree
search_linkedin_job_openings0.3 per job returned
find_people0.2 per person returned
find_work_email1 per email found (misses not billed)
verify_email0.1 per check

With the example caps (20 jobs, 5 shortlisted, 3 people per company), the worst case is 20 x 0.3 + 5 x (3 x 0.2 + 1 + 0.1) = 6 + 8.5 = 14.5 credits per run. That is the number the preflight step computes. To model other volumes, use the credits estimator or see SyncGTM pricing. For email-finding specifics, the email finder MCP guide explains how the waterfall works.


Conclusion

A job search Claude skill replaces a prompt you keep rewriting with a file you keep improving. The inputs block holds your search, the numbered steps name each tool and its parameters, the tracker CSV remembers what you have seen, and the review gates keep every send and every application in your hands.

Connect SyncGTM MCP, save the skill as job-hunter, run the five-job test, and tighten it after each bad run. For the full end-to-end workflow around it, read Job Search With Claude: Find Jobs and Hiring Managers.


Frequently Asked Questions

Give your job hunt a repeatable engine

SyncGTM MCP gives Claude live LinkedIn job search, people lookup, work email finding and email verification. Connect it once and the skill does the rest.

Share Article


Ask AI

Run Your Job Search Skill on Live LinkedIn Data

Connect SyncGTM MCP to Claude, drop in the job-hunter skill, and get a scored shortlist, a hiring manager and a verified email for each role.