main.c here is a C program that boots common lisp, builds a command by
READing until EOF. The main command is a macroexpansion-time macro
like
(assoc-filter-dir wild-path &rest filters)
eg
(assoc-filter-dir #p"recordings/*.*" (day = 31) (hou = 18) (min < 40))
The LHS is any member of:
(sec min hou day month yea namestring decoded-time tgid unix-time
location? unused index)

The cadr is a probably but not necessarily built-in lisp function like
=

And the caddr is probably a number, or string or something.

Sorry about the unsophisticated Makefile. Good luck constructing
advanced lisp wildcard paths.

(1) .so
$ make
$ LD_LIBRARY_PATH=. ./main
#p"recordings/*.*"
(index < 150)
^D
(((NAMESTRING . "13000-1680305820_852987500-call_149.m4a")
 (DECODED-TIME (YEA . 2023) (MONTH . 3) (DAY . 31) (HOU . 18) (MIN . 37)
  (SEC . 0))
 (TGID . 13000) (UNIX-TIME . 1680305820) (LOCATION? . 852987500)
 (UNUSED . CALL) (INDEX . 149))
((NAMESTRING . "13000-1680304486_854962500-call_3.m4a")
 (DECODED-TIME (YEA . 2023) (MONTH . 3) (DAY . 31) (HOU . 18) (MIN . 14)
  (SEC . 46))
 (TGID . 13000) (UNIX-TIME . 1680304486) (LOCATION? . 854962500)
 (UNUSED . CALL) (INDEX . 3)))

(2) standalone
$ make standalone
$ printf '#p"recordings/*.*"' | ./main
. <lots> ..