new-job
npx machina-cli add skill Mahashwetha/Job-search-email-system-claude/new-job --openclawAdd New Job to Tracker
Add a new row to List.xlsx (the job application tracker at the path in config.py → TRACKER_FILE).
Column layout
- A: Company name
- B: Role title
- C: Role link (job posting URL)
- D: Status
- E: HR contact (leave empty)
- F: Comments (leave empty)
Status values
- Default (applied):
done - Save for later / not yet applied:
In progress
If the user doesn't specify, use done.
Steps
- Ask the user for any missing info: company name (required), role title, job URL. If they provided it already, skip asking.
- Open
List.xlsxusing openpyxl. HandlePermissionErrorby working from a temp copy. - Use the first sheet (
wb.activeat load time — read it before any writes to avoid sheet-shift bugs). - Append the new row at the bottom: Company, Role, URL, Status, empty, empty.
- Save the file.
- Confirm to the user: company name, role, status, and which row it was added to.
Things to check
- If the company already exists in the tracker, mention it and ask if they still want to add a new row (they may have a different role).
- Leave columns E and F empty — HR contacts are managed separately via the update-hr workflow.
Source
git clone https://github.com/Mahashwetha/Job-search-email-system-claude/blob/main/.claude/skills/new-job/SKILL.mdView on GitHub Overview
This skill records a new job application in List.xlsx. It prompts for missing details (company, role, URL), appends a row with Company, Role, URL, Status, and empty HR/Comments fields on the first sheet, and saves. Status defaults to done unless you specify In progress for saved/not-yet-applied entries.
How This Skill Works
It uses openpyxl to open List.xlsx, reads the active sheet at load, and appends a new row at the bottom with: Company, Role, URL, Status, HR contact, and Comments. The Status defaults to done unless you indicate otherwise. After writing, it saves the file and reports the added row number and details; if the file is locked, it may operate from a temporary copy and then confirm the result.
When to Use It
- You want to log a new company and role you applied to.
- You want to save a company for later with status In progress.
- You have a job posting URL to capture in the tracker.
- You need to add a different role for the same company.
- You want a confirmation of the exact row number added.
Quick Start
- Step 1: Gather required info: company name (required), role title, and job URL.
- Step 2: Open List.xlsx with openpyxl and append a new row with Company, Role, URL, Status, leaving HR and Comments blank.
- Step 3: Save the file and confirm the added row number, company, role, and status to the user.
Best Practices
- Always ensure the company name is provided (required) before adding.
- Check if the company already exists; if so, decide whether to add another row for a different role.
- Use the provided URL if available; otherwise leave it blank for now.
- Follow the default column order: A=Company, B=Role, C=URL, D=Status, E=HR contact, F=Comments.
- Verify the added row number and summarize the entry back to the user.
Example Use Cases
- Add Acme Corp – Frontend Developer – https://careers.acme.com/frontend
- I applied to BetaTech – Data Scientist – https://betatech.example/jobs/123
- Track Gamma Solutions – Marketing Manager – https://gamma.solutions/jobs/456
- Save for later: Delta Systems – QA Engineer – https://deltasystems.example/careers/qa
- New application at Orion Labs – DevOps – https://orionlabs.io/careers/devops