Fixing "command not found" in Cron
Cron runs with a bare PATH (usually /usr/bin:/bin), so commands that work in your shell aren't found. Use absolute paths or set PATH at the top of the crontab.
The crontab line
0 * * * * /usr/local/bin/mytool run
Find it with which mytool in your shell and paste the full path into the crontab.
Or set PATH in the crontab
Add a line at the top of your crontab: PATH=/usr/local/bin:/usr/bin:/bin. All jobs below it inherit it.
Why the shell works but cron does not
Interactive shells load ~/.bashrc/~/.profile which extend PATH. Cron does not source those files, so it only sees its minimal default.
FAQ
Why does cron say command not found?
Cron uses a minimal PATH and does not load your shell profile. Use the absolute path or set PATH at the top of the crontab.
How do I find the absolute path of a command?
Run which commandname in your interactive shell; it prints the full path to use in cron.
Where do I put PATH in a crontab?
Add PATH=... on its own line above your job lines; every job after it inherits that PATH.