Avidemux project file is a simple tinypy script text file. It contains all the settings of the current editing, including cut and filters. Since it is tinypy, you can edit it and use the powerful scripting language to, for example, process a whole directory the same way.
You can have a look at the additional tinypy functions by looking at the Scripting article.
Jobs are in fact also tinypy. They only differ from a regular project file by an additionnal “app.save(filename);” line at the end. They are stored in $HOME/.avidemux6/jobs/ directory.
Custom scripts are also tinypy files. They are stored in $HOME/.avidemux/custom. They can contain anything a project file can contain, but their usefulness is elsewhere. They can contain video encoder selection and configurations, video filters audio encoder selection and configurations, audio filters and format selections all at once, individually, or any combination.
For example, you may want to use very often the same encoder configuration, with (maybe) custom matrices. Or a custom set of filters.
In that case, do it manually and save the project file. Then edit that project file and remove everything except the part you are interested in (filters or encoder). Put that file in the custom scripts directory. For the script to appear in the Custom menu the file name must end with .py.
Now when you start Avidemux, that script will appear in the Custom menu, and by selecting it you can apply the custom codec and/or filters with one click.
See the Presets tutorial for more details.