If you need a menu, you will need to create an ISPF panel.
You can use the QUEUE instruction of rexx to build your JCL. This example will compress a PDS:
/* REXX */
parse arg indsn
indsn = strip(translate(indsn,"","'"))
say indsn
queue "//PEDROC JOB , "
queue "// MSGLEVEL=(1,1),MSGCLASS=H,USER=&SYSUID, "
queue "// NOTIFY=&SYSUID,TIME=2,REGION=24M "
queue "//STEP1 EXEC PGM=IEBCOPY "
queue "//SYSPRINT DD SYSOUT=* "
queue "//INDD1 DD DISP=SHR,DSN="||indsn
queue "//OUTDD1 DD DISP=SHR,DSN="||indsn
queue "//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(10,20)) "
queue "//SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(10,20)) "
queue "//SYSIN DD * "
queue " COPY INDD=INDD1,OUTDD=OUTDD1 "
queue "/* "
queue "@#"
Address TSO "SUB * END(@#)"
QUEUE is one way, but many people instead use ISPF file tailoring services to build the job.