# Weekly license check for every employee and contractor

> Every Monday we look up each person on your roster in the official licensing board, save dated proof, and flag only the ones you need to chase.

- Workflow type: agent
- Services: Steel, Google Sheets, Google Drive, Slack
- Categories: Operations, HR & People
- Published: 2026-08-10

## What it does

- Reads your roster of licensed staff and contractors from a Google Sheet, including each person's license number and the official board lookup page for their profession.
- Opens each licensing board page in a real browser to read the current status, the expiry date, and any disciplinary or restriction note, even on registry sites that block ordinary tools.
- Saves a dated PDF of every result into a monthly folder in Google Drive and writes the status, expiry date, and evidence link back onto the roster row.
- Posts one Slack update that leads with anyone expired, suspended, or flagged, then anyone expiring in the next 60 days, and stays quiet about everyone else.

## What you'll need

- A Google Sheet listing each licensed person with their name, license number, profession, and the public board lookup link for their license.
- A Google account with access to that sheet and to the Drive folder where the evidence should be stored.
- A Slack workspace and the channel where the weekly update should land.
- A Steel account, which is what opens the licensing board pages in a real browser.

## Prompt

Every Monday at 7am, verify that every licensed employee and contractor on our roster still holds a valid credential, and give me one short Slack post that is only ever a to-do list.

Start by reading the roster from Google Sheets with Get Values. Each row holds the license holder's name, their license number, their profession, and the public licensing board lookup URL for that person. Treat the sheet as the source of truth for who is in scope.

For each row, use Steel Scrape Webpage to load that state or professional board lookup page in a real cloud browser. This matters, because licensing board sites routinely block plain scrapers and sit behind captchas that Steel handles. From the page, read back the current license status, the expiry date, and any disciplinary or restriction flag.

Use judgement when reading each result. Board lookup pages differ wildly per state and profession, so confirm the person using the name and the license number together rather than trusting a name match alone, and be careful with common names, middle initials, and maiden or married name differences. A license that reads as active but carries a consent order, probation, or a practice restriction is not clean and should be treated as a flagged result, not a passing one. If you cannot find the person, or the page will not load, or more than one record plausibly matches, mark the row as unverified rather than guessing.

Capture a Steel Generate PDF of the result page as dated proof for each person you check. In Google Drive, use Create Folder to make a folder for the current month, then use Upload File (Multipart) to file each PDF into that folder, naming the file with the person's name, their license number, and the date of the check, so an auditor can open the folder and see exactly what was verified and when.

Write the results back onto the roster with Update Values: the current status, the expiry date, the date checked, and a link to the evidence PDF, each on the matching person's row.

Finish with a single Slack message using Send a Message. Lead with anyone expired, suspended, revoked, or carrying a disciplinary or restriction flag, one line each with the person, their profession, the license number, what is wrong, and the evidence link. Then list anyone whose license expires within the next 60 days, soonest first, with the number of days remaining. Then list anyone you could not verify this week so someone can check them by hand. Say nothing about people who are clean and not expiring soon. If nobody falls into any of those three groups, post one short line saying the roster is clear.

## How to customize

- Change the warning window. Sixty days before expiry is the default, but thirty or ninety works just as well.
- Change when it runs. Monday at 7am suits most teams, but any day and time works.
- Send the update somewhere else, such as a private compliance channel or a direct message to whoever owns credentialing.

## Example output

Weekly license check, Monday 7am. 42 people checked.

Action needed
• Dana Whitfield, RN, license #RN-448120: EXPIRED 2 Aug. Evidence: PDF link
• Marcus Lee, electrical contractor, #EC-90233: active but on probation under a consent order dated Jun 2026. Evidence: PDF link

Expiring within 60 days
• Priya Raman, RN, #RN-501882: expires 14 Sep, 36 days out
• Tom Alvarez, HVAC, #HV-22119: expires 28 Sep, 50 days out

Could not verify
• Sara Okonkwo, CPA, #CPA-77310: board site timed out twice, needs a manual check

## FAQ

### Will this work for any profession?

Yes, as long as the profession has a public license lookup page. Nursing boards, contractor and trade licensing, insurance producer lookups, and CPA registries all work. You give each person's lookup link on their roster row, so different states and professions can sit side by side in one sheet.

### What happens if a licensing board site is down or blocks the check?

That person is marked as unverified on the roster and listed in the Slack update so someone can check by hand. Nobody is ever quietly marked as clean just because the lookup failed.

### What counts as a problem worth flagging?

Expired, suspended, and revoked licenses, plus anything that reads as active but carries a disciplinary note, consent order, probation, or practice restriction. Those get flagged rather than passed, because they can still make a shift unbillable.

### Do I get a message even when everyone is fine?

You get one short line saying the roster is clear. The weekly post is only ever a to-do list, so people who are clean and not expiring soon are never listed.

### Is the proof good enough for an auditor?

Each check saves a dated PDF of the actual board page into a monthly folder in Google Drive, and the link is written onto the roster row. An auditor can open the folder and see the exact page you saw on the day you saw it.

Use this prompt in General Input: https://www.generalinput.com/prompts/weekly-license-check-for-every-employee-and-contractor