Job-search-email-system-claude search
This skill should be used when the user wants to check if a company or job URL is already in their tracker, or list all applications for a company. Triggers on phrases like "have I applied to [company]", "is [company] in tracker", "check [url]", "already applied [url]", "search [company]", "what jobs do I have at [company]", "did I apply to [company]", "[company] already in tracker?".
install
source · Clone the upstream repo
git clone https://github.com/Mahashwetha/Job-search-email-system-claude
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Mahashwetha/Job-search-email-system-claude "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/search" ~/.claude/skills/mahashwetha-job-search-email-system-claude-search && rm -rf "$T"
manifest:
.claude/skills/search/SKILL.mdsource content
Search Tracker
Look up a company or URL across both sheets of
List.xlsx (Sheet1 = active applications, Rejected = rejected/closed applications).
What to do based on input
User gives a URL
- Open
with openpyxl (use temp copy if PermissionError).List.xlsx - Search column C in both sheets for that URL (exact or substring match). Also handle cells with
formula — extract the URL from inside the formula.=HYPERLINK(...) - If found → show all matching rows (see Output Format below).
- If not found → use
to fetch the page and extract therequests
tag. Parse the company name from the title (format is usually<title>
). Then search column A in both sheets by that company name."Job Title - Company | Platform" - Report clearly: "Not in tracker" if nothing matches after both attempts.
User gives a company name only
- Open
with openpyxl (use temp copy if PermissionError).List.xlsx - Search column A in both sheets — case-insensitive substring match.
- Show all matching rows across both sheets (see Output Format below).
- Report "Not in tracker" if nothing found.
Output Format
Group results by sheet, show row number, company, role, status (with emoji), URL, and any comments:
Found 3 match(es) for "Theodo": [Sheet1] Row 45 — Theodo | AI Engineer | ✅ Applied URL: https://welcometothejungle.com/... Row 67 — Theodo | Tech Lead | 🕐 In Progress URL: https://... [Rejected] Row 12 — Theodo | Backend Engineer | ❌ Rejected Note: French required
Status emoji mapping:
/done
→ ✅ Appliedapplied
/in progress
→ 🕐 In Progressunder review
→ ❌ Rejectedrejected
/not available
→ ⏸️ No Jobs Availablenothing to apply- empty / other → ⬜ Not Contacted
Always show the Comments column (col F) if it has content — it often has useful notes like "Job posting CLOSED" or "French required".
Rules
- Always search BOTH sheets — Sheet1 and Rejected.
- Skip header row (row 1) when iterating.
- Company match is case-insensitive substring both ways:
ORquery in company
.company in query - For URL search, also check if the URL is wrapped in a HYPERLINK formula.
- If the user gave a URL that's not in the tracker, always attempt to identify the company from the page before saying "not found".