The Scenario
Your recruiting team tracks 30 competitor companies. Every quarter, someone manually visits each company's careers page, screenshots the open roles, and drops a summary into a shared doc. The person who used to do this left three weeks ago, and the quarterly snapshot is due Friday. You've inherited 30 URLs in a Google Sheet and no process.
The bad version:
- Visit each careers page one by one, manually copy role titles, departments, and locations into the sheet — 150+ listings across 30 companies
- Try running AgentQL on a few career pages in the playground, get back well-structured data for the first two, then hit a page that uses a JavaScript-rendered listing grid and get back nothing
- Spend an hour figuring out why seven of the 30 URLs returned partial data and manually fill in what's missing
By the time the data is clean enough to analyze, Friday is gone and the quarterly snapshot is two days late.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads what's in your tabs, connects to AgentQL to query each careers page, and expands the results row by row so every open role gets its own row. You describe what you need. It does the rest.
Scrape all open job titles, departments, and locations from each careers URL in column A using AgentQL and expand the results row-by-row starting at row 2
What You Get
- One row per open role, expanded from each source URL
- Column B: job title as listed on the careers page
- Column C: department (Engineering, Sales, Marketing, etc.)
- Column D: location or "Remote" as listed
- Column E: the source URL from column A, repeated for each role so you can trace which company each listing came from
What If the Data Is Not Quite Ready
Some career page URLs redirect to an Applicant Tracking System subdomain
For each URL in column A, follow any redirect before scraping with AgentQL, extract all open role titles, departments, and locations, and expand the results row-by-row starting at row 2
I need a count of open roles per company, not the full listing
For each careers URL in column A, use AgentQL to count the total number of open roles and write the count into column B next to the company name in column A
Engineering roles need to be separated from non-engineering roles
Scrape all open roles from each careers URL in column A using AgentQL, write engineering roles into the 'Engineering' tab and all other roles into the 'Other Roles' tab, both expanded row-by-row
The careers URLs, the company names, and last quarter's role counts are in separate tabs — scrape this quarter's data and calculate the delta in one pass
Pull all open roles from careers URLs in column A of the 'Career Pages' tab using AgentQL, match company names from the 'Companies' tab by URL, then calculate the change in total role count compared to last quarter's data in column C of the 'Companies' tab and write the delta into column D
One prompt covers the scrape, the join, and the comparison — no intermediate steps.
Try It
Get the 7-day free trial of SheetXAI and open a Google Sheet with a list of competitor careers page URLs, then ask it to pull open roles into the sheet using AgentQL. See also: enriching a lead list with company metadata or the full AgentQL overview.
