Thank you Jeremy this is very helpful! This is the script code - I created it based on a video I found in this thread on creating a script for vlookups / linked records.

I want to automatically link records in two different tables using the records’ Email address as the reference point. Very possible that it’s not the most efficient script but I don’t think with my knowledge I’ll be able to identify efficiencies. If you or anyone else has advice, it would be much appreciated.
When you open up the Script editor, after having captured a record in the trigger (a record that has either been created or that has entered a view), you can pull that same record into the script by adding it to the input variable on the left side:

Just select + Add input variable, give it the name by which you will retrieve it, and for “Value” use the blue + button to find the Record ID of the record that triggered Step 1.
Then, you can retrieve that record from the input variable in your script, and act only on that record. So your new script might look something like this:

Here’s a copy-pastable version of that:
let recordId = input.config().recordID
let trainingTable = base.getTable("Training | Started")
let recordQuery = await trainingTable.selectRecordsAsync()
let recordToUpdate = recordQuery.records.find(record => record.id == recordId)
let trainingEmail = recordToUpdate.getCellValue("Email")
let applicationsQuery = await base.getTable("Applications").selectRecordsAsync()
let applicationsToLink = applicationsQuery.records.map(applicationRecord => {
if (applicationRecord.getCellValue("Email") === trainingEmail) {
return { id: applicationRecord.id }
}
})
await trainingTable.updateRecordAsync(recordId, {
"Applications record": [applicationsToLink]
})