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.
Integrations
Steel
Google Sheets
Google Drive
Slack
Type
Categories
- Operations
- HR & People
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.
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.
How to customize it
- 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.
Use cases
- Research & Monitoring
- Notifications & Alerts
- Data Sync