Launchd for venv (code execution with launchctl)

I can start Home Assistant like this on macOS:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Label</key>
		<string>org.homeassistant</string>
		<key>Program</key>
    		<string>/Users/server/Documents/homeassistant/bin/hass</string>
		<key>RunAtLoad</key>
		<true/>
		<key>KeepAlive</key>
		<true/>
	</dict>
</plist>

It loads at startup and after it quits.
The problem is that HA does not run in the venv for obvious reasons.

This is the proper code for loading it in venv.

source /Users/server/Documents/homeassistant/bin/activate
/Users/server/Documents/homeassistant/bin/hass

How can I make this work with launchd?

If I just make a shell file with the above code and make it executable it doesn’t work. I assume the process has to be hass to be monitored.

I have the same question and would like to have a solution as well.
Does anybody know how to solve this?