diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index 1dbf0af93f289b00ac604f69b71b16101d418305..991a238d07c9c2e5c7f9ad6a47995a48df1c2daa 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -391,6 +391,18 @@ window.assignJob = function assignJob(slave, job) {
 	return r;
 };
 
+window.assignJobSafely = function assignJobSafely(slave, assignmentStr){
+	const job = App.Utils.jobForAssignment(assignmentStr);
+	if (!job) {
+		throw Error(`Can't find job object for assignment '${assignmentStr}'`);
+	}
+	if (job.canEmploy(slave).length === 0) {
+		assignJob(slave, assignmentStr);
+	} else {
+		assignJob(slave, "rest");
+	}
+};
+
 window.removeJob = function removeJob(slave, assignment) {
 	"use strict";
 	let r = "";