update-hr
npx machina-cli add skill Mahashwetha/Job-search-email-system-claude/update-hr --openclawUpdate HR Contacts
Find LinkedIn recruiter profiles for a company and add them to column E of List.xlsx.
Step 1 — Search LinkedIn
Use WebSearch with this query:
"{company}" recruiter OR "talent acquisition" OR "hiring manager" OR "HR manager" OR "people partner" Paris OR France OR EMEA site:linkedin.com/in
Location priority: Paris first, then France, then EMEA as a fallback. Only use EMEA-level contacts when no Paris or France-specific person is found. Ignore contacts based in India, US, or APAC unless the company has no EU presence at all.
Step 2 — Add to the HR_CONTACTS dict
Open update_hr_contacts.py and add or extend the company entry in the HR_CONTACTS dictionary. Use the company name exactly as it appears in column A of List.xlsx. If the company is already in the dict, append the new contacts to its list — don't replace existing ones.
Step 3 — Run the script
Run update_hr_contacts.py from the project root. The script reads existing cell content first and only appends contacts whose names aren't already there. Running it twice produces zero changes the second time.
Step 4 — Verify
The script reports how many rows were updated. Check that the count matches expectations.
Rules
- Never overwrite manually entered contacts — the script is append-only.
- Write names directly, no [UNVERIFIED] prefix.
- To remove a contact: delete it from Excel AND remove it from the
HR_CONTACTSdict. That's the only case requiring both steps. - Don't drag the fill handle in Excel after running — it creates ghost rows with duplicated formulas.
Source
git clone https://github.com/Mahashwetha/Job-search-email-system-claude/blob/main/.claude/skills/update-hr/SKILL.mdView on GitHub Overview
This skill automates locating HR contacts (recruiters, talent acquisition, hiring managers) for a company using LinkedIn searches and appends them to the List.xlsx HR fields. It prioritizes EU-based contacts and preserves existing manual entries by appending new information instead of overwriting.
How This Skill Works
Step 1 uses WebSearch with a recruiter-focused query to locate LinkedIn profiles, prioritizing Paris, then France, and finally EMEA, while ignoring India, US, or APAC unless no EU presence exists. Step 2 updates the HR_CONTACTS dictionary in update_hr_contacts.py by adding or appending the company's contacts using the exact company name from List.xlsx. Step 3 runs the script from the project root; it appends only new contacts and reports how many rows were updated.
When to Use It
- When you need to find current HR contacts (recruiters, talent acquisition, hiring managers) for a company listed in List.xlsx.
- When you want to add a new recruiter or HR contact found on LinkedIn for a company.
- When updating HR contacts without overwriting existing manual entries.
- When you need to verify the number of updated rows matches expectations after a run.
- When expanding EU-focused recruitment and prioritizing Paris or France-based contacts before broader EU/EMEA searches.
Quick Start
- Step 1: Search LinkedIn using the query "{company}" recruiter OR "talent acquisition" OR "hiring manager" OR "HR manager" OR "people partner" Paris OR France OR EMEA site:linkedin.com/in and apply the location priority.
- Step 2: Open update_hr_contacts.py and append the new contacts to the HR_CONTACTS entry for the company (or create it if it doesn't exist) using the exact company name from List.xlsx.
- Step 3: Run update_hr_contacts.py from the project root and verify the script reports how many rows were updated.
Best Practices
- Use the LinkedIn query exactly as shown to maximize relevant results.
- Only append new contacts; never overwrite manually entered ones in List.xlsx or HR_CONTACTS.
- Ensure the company name in List.xlsx matches the key in HR_CONTACTS exactly.
- After running, check the reported updated row count to confirm the update.
- Periodically audit HR_CONTACTS for duplicates and remove outdated roles.
Example Use Cases
- A company in List.xlsx gains three EU-based recruiters added to the HR_CONTACTS dict and column E, with Paris-based contacts prioritized.
- A new recruiter for a company is found in LinkedIn and appended without overwriting existing entries in HR_CONTACTS.
- An update run adds a hiring manager and talent acquisition lead for a company with EU presence, while ignoring US-based contacts.
- After running the script, the reported updated row count matches the expected number of new contacts added.
- Manually entered contacts remain intact; the next run only appends additional, non-duplicate contacts.