First run of the /find-jobs skill. Searched all 8 job boards, compiled 20 results, presented table to user. The session surfaced significant friction points with agent-browser automation, site authentication, background agent permissions, and skill design gaps. This document captures everything needed for another agent to improve the find-jobs skill and agent-browser integration.
- Indeed: Loaded without login, snapshot returned structured job data with titles, companies, salaries, "Easily apply" badges. Best-behaved site.
- LinkedIn (public view): After dismissing the sign-in modal, the public job search returned 17+ Easy Apply listings with titles, companies, locations, and posting dates. The
f_AL=trueEasy Apply filter worked. - Glassdoor (direct URL): The form-fill approach failed, but opening a pre-built search URL (
/Job/remote-senior-software-engineer-jobs-SRCH_IL.0,6_IS11047_KO7,35.htm?sortBy=date_desc) loaded 8,094 results with salary data, Easy Apply badges, and company ratings. - We Work Remotely: Clean results. No login required. Jobs listed with title, company, salary range, posting age, and location restrictions.
- RemoteOK: Loaded the main page (not the specific search URL). Still showed job listings in a table format with company, title, salary, location, and posting age.
- Fractional Jobs: Main page loaded with 29 live jobs. Engineering filter available via radio buttons. Two relevant engineering roles found (CTO, Lead Engineer).
- HN Who is Hiring:
searchctl web-searchfound the Feb 2026 thread (item?id=46857488) and extracted 10+ relevant remote engineering jobs with salaries. - searchctl fallbacks: Worked well for HN and Wellfound when agent-browser couldn't get usable data.
- terminal-notifier: Worked from the main conversation for notifying the user.
Impact: Critical - All 8 background agents failed completely
When Task agents run in the background, they cannot prompt the user for tool permissions. Every agent-browser, searchctl, scrapectl, terminal-notifier, and WebFetch call was auto-denied with "Permission to use Bash has been auto-denied (prompts unavailable)."
This meant all 8 parallel search agents burned tokens doing nothing. Each agent tried 20-30 tool calls before giving up, wasting significant time and cost.
Root cause: Background agents run non-interactively. The permission system correctly blocks unprompted tool use, but there's no way to pre-authorize commands for subagents.
Fix needed in skill: The find-jobs skill should either:
- Run searches sequentially from the main conversation (not as background agents)
- Or document that the user must pre-approve
agent-browser,searchctl,scrapectl, andterminal-notifiercommands before launching (e.g., by adding to.claude/settings.local.jsonallow list) - Or the skill should run a single "warmup" command first to get blanket approval, then launch background agents
Recommended settings.local.json for job searching:
{
"permissions": {
"allow": [
"Bash(agent-browser*)",
"Bash(searchctl*)",
"Bash(scrapectl*)",
"Bash(terminal-notifier*)"
]
}
}Impact: High - Limited to public/guest view
LinkedIn immediately shows a "Sign in to view more jobs" dialog that overlays the results. After dismissing it via agent-browser click 'button[aria-label="Dismiss"]', the public view showed results but:
- No salary data visible
- No detailed job descriptions
- No way to use Easy Apply without being signed in
- Results may be limited/filtered compared to authenticated view
Fix needed: The skill should include a pre-authentication phase where the user signs into LinkedIn before searching. The skill should:
- Open LinkedIn login page
- Send terminal-notifier alert: "Please sign into LinkedIn"
- Wait for user confirmation
- Then proceed with searches
Impact: Medium - Worked around with direct URL
Attempted to fill the Glassdoor search form using combobox refs. The fill command failed with CSS selector parsing errors when using @ref syntax. The form has two comboboxes ("Find your perfect job" and location), but interacting with them via agent-browser was unreliable.
Workaround that worked: Skip the form entirely. Use pre-built search URLs:
https://www.glassdoor.com/Job/remote-senior-software-engineer-jobs-SRCH_IL.0,6_IS11047_KO7,35.htm?sortBy=date_desc
Fix needed in site-strategies.md: Document that Glassdoor form fill is unreliable. Provide direct URL patterns as the primary approach. The current strategy says "easier to use the search form" but the opposite is true for agent-browser.
Glassdoor also has aggressive login prompts that can interrupt browsing. The skill should handle this the same way as LinkedIn (pre-auth phase).
Impact: High - No results from agent-browser
Both URL patterns tried:
https://wellfound.com/jobs?role=Software+Engineer&remote=truehttps://wellfound.com/role/r/software-engineer
The snapshot returned only - document: - iframe, indicating the page content is loaded inside an iframe that agent-browser cannot access or the page requires JavaScript rendering that didn't complete.
Fix needed:
- Wellfound may require authentication to show job listings
- The skill should add Wellfound to the pre-auth phase
- Fallback to
searchctl raw-search "site:wellfound.com ..."should be the primary strategy - Consider using
agent-browser evalto check iframe content or wait longer for JS rendering
Impact: Low - Still got some results
The specific search URL https://remoteok.com/remote-senior-software-engineer-jobs redirected to the main RemoteOK page instead of filtered results. The main page still showed job listings but not filtered to the search term.
Fix needed in site-strategies.md: Test and update RemoteOK URL patterns. Try the query parameter approach instead:
https://remoteok.com/remote-jobs?query=senior+software+engineer
May also need to handle Cloudflare anti-bot challenges.
Impact: Low - Main page worked
The /jobs path returned a 404 ("Not Found"). The main page at https://fractionaljobs.io/ loaded correctly and showed all 29 live jobs with an Engineering filter.
Fix needed in site-strategies.md: Update the URL from https://fractionaljobs.io/jobs to just https://fractionaljobs.io/ and note that jobs are listed on the main page with category radio filters.
Impact: Medium - Required CSS selector workarounds
The @ref syntax (e.g., @e1) sometimes failed with: "Unsupported token "@e1" while parsing css selector "@e1"." This happened specifically on the LinkedIn session when trying to dismiss the sign-in modal.
Workaround: Use CSS selectors or accessible names instead:
# Instead of:
agent-browser --session jobs-linkedin click @e1
# Use:
agent-browser --session jobs-linkedin click 'button[aria-label="Dismiss"]'Note: This may be session-specific. The @ref syntax worked fine in other sessions during this run (e.g., Glassdoor snapshot). The issue may relate to refs going stale when the page state changes between snapshot and click.
Fix needed in skill: Add guidance that if @ref fails, fall back to CSS selectors or accessible names. Always re-snapshot immediately before clicking.
Impact: Medium - Couldn't get full job descriptions
When using scrapectl fetch-markdown on LinkedIn job URLs, the returned content was mostly the login/signup form rather than the actual job description. This limited enrichment for LinkedIn-sourced jobs.
Fix needed: For enrichment, prefer:
- Glassdoor or Indeed URLs (less login-gated)
- Company career page URLs (no login needed)
- Use agent-browser on an authenticated LinkedIn session to get full descriptions
The biggest improvement would be adding a Phase 0: Authentication before any searching begins. This phase should:
## Phase 0: Authenticate to Job Sites (Interactive)
**This phase requires user interaction.**
Before searching, ensure the user is signed into sites that require authentication.
This prevents login walls from blocking results and enables features like Easy Apply.
### Sites Requiring Authentication
1. **LinkedIn** - Required for Easy Apply, salary data, and full job descriptions
2. **Glassdoor** - Required to avoid aggressive login prompts mid-search
3. **Wellfound** - Required to see job listings (page is empty without auth)
### Sites That Don't Need Authentication
4. Indeed - Works without login
5. We Work Remotely - No login needed
6. RemoteOK - No login needed
7. Fractional Jobs - No login needed
8. HN Who is Hiring - No login needed
### Authentication Workflow
For each site requiring auth:
1. Open the site's login page in its own session:
```bash
agent-browser --session jobs-linkedin open "https://www.linkedin.com/login" --headed- Send notification:
terminal-notifier -title "Job Search: Sign In" -message "Please sign into LinkedIn in the browser window" -sound default -group jobsearch
- Tell the user in chat which site needs login
- Wait for user to confirm they've signed in
- Verify by snapshotting and checking for logged-in indicators
- Move to next site
Open browsers with --headed during auth so the user can see and interact with the login page.
After auth is complete, subsequent searches can run headless.
Each site uses its own --session jobs-SITENAME which persists cookies.
Once authenticated, the session stays logged in for all subsequent searches.
### Add Permission Pre-Check Phase
Before launching any searches, verify that the required tools are accessible:
```markdown
### Step 0.1: Verify Tool Permissions
Run a quick test to ensure all required tools work:
```bash
agent-browser --version
searchctl list-models
terminal-notifier -title "Test" -message "Permissions OK" -sound default -group jobsearch
If any fail, inform the user they need to approve these tools before proceeding. Do NOT proceed to background agents until permissions are confirmed.
### Fix Site Strategy URLs
Update `site-strategies.md` with these corrections:
| Site | Old URL | New URL | Notes |
|:-----|:--------|:--------|:------|
| Glassdoor | Form fill approach | Direct URL: `/Job/remote-TITLE-jobs-SRCH_IL.0,6_IS11047_KO7,35.htm?sortBy=date_desc` | Form fill is unreliable with agent-browser |
| RemoteOK | `/remote-SLUG-jobs` | `/remote-jobs?query=TITLE` | Slug URLs may redirect to main page |
| Fractional Jobs | `/jobs` | `/` (main page) | Jobs listed on homepage, filter with radio buttons |
| Wellfound | `/jobs?role=TITLE&remote=true` | Use `searchctl` fallback as primary | Browser returns empty iframe |
### Add Guidance for Background vs Foreground Execution
```markdown
### Execution Strategy
**If running with pre-approved permissions** (settings.local.json has allow rules):
- Launch all 8 site searches as background Task agents in parallel
- Each agent uses its own --session for isolation
**If running without pre-approved permissions** (default):
- Run all searches sequentially from the main conversation
- This is slower but ensures the user can approve each tool call
- Group searches efficiently: open multiple sites, then snapshot them
The skill should clearly identify which sites support easy/one-click apply and prioritize those:
### Easy Apply Capabilities by Site
| Site | Easy Apply? | How to Filter | Notes |
|:-----|:------------|:--------------|:------|
| LinkedIn | Yes | `&f_AL=true` in URL | Must be signed in to actually apply |
| Glassdoor | Yes | "Easy Apply only" button after search | Look for "Easy Apply" contentinfo in snapshot |
| Indeed | Yes | Look for "Easily apply" text in listings | No specific URL filter |
| Wellfound | Yes (built-in) | All jobs have built-in apply | Must be signed in |
| WWR | No | N/A | Links to company sites |
| RemoteOK | No | N/A | Links to company sites |
| Fractional Jobs | No | N/A | Contact-based |
| HN | No | N/A | Email/link in comments |- Senior Software Engineer - AI | Just Appraised Inc. | Remote | Easily apply
- Senior Software Engineer | CVS Health | Remote in Washington, DC | $83,430-$222,480/yr
- Senior Software Engineer - Application Integration | US LBM Holdings | Remote | Easily apply
- Senior Cloud Full Stack Engineer | Humana | Remote | $106,900-$147,000/yr
- DevOps Engineer III | Level Data LLC | Remote in Boston, MA | $120,000-$135,000/yr
- Senior Software Engineer | Mercury Insurance Services, LLC | Remote
- Senior DevOps Developer | BOEING | Herndon, VA
- Sr. Software Engineering Manager | CVS Health | Washington, DC
- Senior Software Engineer | Humana | Remote
- Senior Software Engineer II | Blizzard Entertainment | Irvine, CA
- Senior SAP Integration Developer | Mindset Consulting | Remote
- TIBCO Integration Programmer - Senior | U of Chicago Medicine | Chicago, IL
- Senior Software Engineer, Backend | Spotnana | Palo Alto, CA
- Sr Software Engineer, Search Federation | Cribl | Remote
- Sr. Software Engineer - Backend | Lively, Inc. | US Remote | 5d
- Senior Software Engineer | Curology | US Remote | 5d
- Senior Software Engineer I (360 Web) | Corporation PSI Intl Inc | US Remote | 19h
- Senior Software Engineer, Ads | Reddit, Inc. | US Remote | 5d
- Senior Software Engineer | Medallion | US Remote | 2d
- Senior Software Engineer II - External Platform | Samsara | US Remote | 6d
- Senior Software Engineer | Kandu | Los Angeles, CA | 1d
- Senior Software Engineer | ATTOM | Irvine, CA | 4d
- Lead Software Engineer | Acumen Fiscal Agent | Mesa, AZ | 4d
- Senior Software Engineer I (360 Web) | Articulate | US Remote | 1d
- Senior Backend Software Engineer | Teleport | US Remote | 2d
- Senior Software Engineer | Sinch | US Remote | 4d
- Senior Software Engineer | America's Test Kitchen | Boston, MA | 2d
- Senior Full-Stack Software Engineer (CRO) | Ollie | US Remote | 1h
- Sr. Software Engineer | Carrot | US Remote | 4d
- Senior Software Engineer | Mangomint | US Remote | 4d
- Senior Software Engineer | Microsoft | US Remote
- Senior Full Stack Engineer | Experis | Saint Louis, MO | $99K-$145K | Easy Apply
- Staff Software Engineer, Backend | Coinbase | Remote | $218K-$257K
- Sr. Cloud and API Developer | CareCentrix | Remote | $100K-$130K
- Senior .NET Developers | CyberBalance, LLC | Remote | Easy Apply
- Senior Engineer - DevOps | SheetLabels.com | Austin, TX | $90K-$120K | Easy Apply
- Remote Senior Full Stack Software Engineer | Torchlight AI | Remote | $200K | Easy Apply (requires TS clearance)
- Senior Golang Software Engineer | Credit Acceptance | Remote | $130K-$191K
- Full Stack Engineer (Level II) | Intellicheck | Chicago, IL | $85K-$110K | Easy Apply
- Oracle CPQ Developer - REMOTE | NTT DATA | Chicago, IL | $86K-$179K
- Senior iOS Engineer | Nesco Resource, LLC | New Albany, OH | $99K-$150K | Easy Apply
- Senior React Full Stack Engineer w/ CTO Ambitions | Geovea | Remote | Easy Apply
- Senior Software Engineer | WALTER | Remote | $50K-$75K | 9d
- Software Engineer | Sticker Mule | NY / EU only | $100K+ | 16d
- Software Engineer - Test | Subscript | US | 2d
- Software Engineer | Cortes 23 | Remote (non-US) | $50K-$75K | 5d
- AI Software Engineer | SlideSpeak | London/EU | $50K-$75K | 9d
- Senior Software Engineer, Growth | Clerk | SF/Anywhere | $100K+ | 12d
- Full-Stack Software Engineer (.NET/React) | comparis.ch | Zuerich/Anywhere | 14d
- Senior Software Engineer | fonio | Vienna/Anywhere | $100K+ | 17d
- Senior Software Engineer | Stellar AI | London/Global | Contract | 19d
- Senior Software Engineer (.NET, Node.js, React) | OpsFlow | Poland/Anywhere | $50K-$75K | 26d
- Software Engineer, Business Experience | CodeSignal | SF/Anywhere | 27d
- Senior Full Stack Engineer | Aguru UK | Europe/UK | $60K-$100K | Contractor | 5d
- Senior Software Engineer | Stellar AI | Europe/NA/UK/AU/NZ | $90K-$130K | Contractor | 5d
- Full Stack Product Engineer | Jiga | US/Europe | $100K-$190K | 5d
- Senior DevOps Engineer | Anduril Industries | Reston | Salary hidden | 2h
- Chief Technology Officer | ESL Edtech AI Startup | Remote (UK/EU/Asia) | $100-$150/hr | 5-10 hrs | Today
- Lead Engineer | Forward | Remote (USA/Canada) | $175-$225/hr | 20 hrs | 1 week
- Senior Platform Engineer | PrairieLearn | Remote US | $100K-$140K + equity
- Senior/Staff Engineer | Beautiful.ai | Remote | $120K-$250K + equity
- Software Engineer (Contract) | Doubling.io | Remote US | 1099
- Staff Software Engineers | EquipmentShare | Remote | up to $250K + equity | TS/Node/React
- Backend Owner | Sweptworks | Remote
- Software Engineer | Wolf Games | Remote US
- Full Stack Engineer | Canvas.io | Remote Europe | Django/React
- Senior Product Engineer | (unnamed startup) | Remote | TS/React/Node/PostgreSQL
- Staff AI Engineer | Strike | Remote | $216K-$232K
- Backend Software Engineer | Strike | Remote | $177K-$199K
- Senior Rust Engineer | Phantom | Remote | $200K-$230K
- Founding Engineer | MathGPT | Remote | $100K-$150K | React/TypeScript
- Principal Backend Software Engineer | Atlassian | Remote US | $171K-$269K | Java/Python/Go
- Session ID: e9961bd4-03a7-4c66-b0be-cc5ea7c1281a
- Date: 2026-02-07
- Skill used: /find-jobs
- Model: claude-opus-4-6
- Background agents launched: 8 (all failed due to permissions)
- Direct searches completed: 8 (all succeeded from main conversation)
- Total jobs found: ~73 across all sites
- Deduplicated results presented: 20
- User selections: Pending
- Skill:
/Users/mike/code/job/.claude/skills/find-jobs/SKILL.md - Site strategies:
/Users/mike/code/job/.claude/skills/find-jobs/references/site-strategies.md - Settings:
/Users/mike/code/job/.claude/settings.local.json - Plan transcript:
/Users/mike/.claude/projects/-Users-mike-code-job/71100f22-3f0e-488d-a7c5-72ff6711008f.jsonl