{"id":"agent-job-application-tracker-update","audience":"job-seekers","category":"agents","track":"agents","technique":"constraints","title":"Brief an assistant to update your job tracker from new emails","free":false,"task":"You want an AI assistant to update your job application tracker from this week's emails. Write its brief: use only the statuses Applied, Interview, Offer, Rejected and Ghosted (Ghosted means still Applied with 30 or more days since last contact), never add a company you haven't applied to (ask you instead), and never delete rows. Output exactly 7 numbered plain-text lines: one update_row per changed company in table order, an ASK_HUMAN line, then DONE.","materialLabel":"Your tracker, new emails and actions (attached to your prompt automatically)","material":"Job tracker (Nov 6)\nCompany | Role | Status | Days since last contact\nCorvane Analytics | Data Analyst | Applied | 12\nLumenfield | Analyst II | Interview | 5\nNorthgate Systems | BI Analyst | Applied | 9\nPinecrest Bank | Reporting Analyst | Applied | 41\nHalcyon Media | Marketing Analyst | Applied | 33\nRidgeway Health | Data Coordinator | Applied | 18\n\nNew emails this week\n- Corvane Analytics: \"We'd like to schedule a video interview for the Data Analyst role.\"\n- Lumenfield: \"Great news! We'd like to extend you an offer. Details Monday.\"\n- Northgate Systems: \"We've decided to move forward with other candidates.\"\n- Brightwave Robotics recruiter: \"Saw your profile. Want to chat about an analyst role?\"\n\nAvailable actions:\nupdate_row(company, status)\nadd_row(company, role, status)\ndelete_row(company)\nASK_HUMAN(question)\nDONE(summary)","rules":[{"type":"numberedItems","count":7},{"type":"plainText"}],"promptHints":[{"label":"Fixes the statuses","patterns":["applied","interview","offer","rejected"]},{"label":"Defines Ghosted","patterns":["ghost","30"]},{"label":"Forbids adding or deleting","patterns":["add_row","delete","never add"]},{"label":"Makes it ask before anything risky","patterns":["ask_human","ask (me|first|before)","approv","confirm","permission"]},{"label":"Shows the action-log format","patterns":["action:","action log","numbered","\\b1\\.","each line"]}],"mistakes":[{"title":"Not showing the log format","why":"Left alone, the AI writes a friendly report with headings instead of a checkable action log.","fix":"Show it literally: \"Format every line like 1. ACTION: tool(args), then ASK_HUMAN: and DONE: lines. Plain text.\"","checks":["numberedItems","plainText"]},{"title":"No fixed statuses","why":"The AI writes its own labels like \"Interview requested\" or \"Offer pending\", which break your filters.","fix":"Say: \"Use only Applied, Interview, Offer, Rejected, Ghosted.\"","checks":["r0"]},{"title":"Not defining Ghosted","why":"The AI has no rule for silence, so stale applications stay Applied forever.","fix":"Add: \"Ghosted = still Applied with 30+ days since last contact.\"","checks":["r1"]},{"title":"Letting it add or delete","why":"The AI adds the recruiter's company as if you'd applied, or tidies by deleting rejections.","fix":"Add: \"Never add or delete rows. Ask me about companies not in the tracker.\"","checks":["r2"]}],"hint":"Trackers only work if every label means one thing. Give the allowed statuses, define the fuzzy one, and keep the agent from adding or deleting rows.","rubricLabels":["Sets Corvane Analytics to Interview, Lumenfield to Offer and Northgate Systems to Rejected","Sets Pinecrest Bank and Halcyon Media to Ghosted (30+ days), and leaves Ridgeway Health (18 days) unchanged","Brightwave Robotics goes to ASK_HUMAN, there is no add_row or delete_row line, and the last line starts with DONE"]}