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
List.xlsxwith openpyxl (use temp copy if PermissionError). - Search column C in both sheets for that URL (exact or substring match). Also handle cells with
=HYPERLINK(...)formula — extract the URL from inside the formula. - If found → show all matching rows (see Output Format below).
- If not found → use
requeststo fetch the page and extract the<title>tag. Parse the company name from the title (format is usually"Job Title - Company | Platform"). Then search column A in both sheets by that company name. - Report clearly: "Not in tracker" if nothing matches after both attempts.
User gives a company name only
- Open
List.xlsxwith openpyxl (use temp copy if PermissionError). - 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/applied→ ✅ Appliedin progress/under review→ 🕐 In Progressrejected→ ❌ Rejectednot available/nothing to apply→ ⏸️ No Jobs Available- 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:
query in companyORcompany in query. Skip empty cells — empty string always matches any substring check, so guard withif companyandif urlbefore comparing. - 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".