Stock screening is a complicated topic. Beyond usual attributes, many derived (for example, P/CF is a derived attribute of a given stock) ratios or attributes can make this convoluted for beginners. And then, there are "machine learning" models learning to pick awesome stocks based on data, especially through backtesting with historical data streams.
For Indian stock market, I use the screener.in tool (free) to save my screens. You can play with some public screens listed over there.
Here I present a specific screen focusing on "Undervalued Mid-Cap and Small-Cap" companies.
Free cash flow > 0 and Debt to equity < 1 and Pledged percentage < 10 and Current ratio > 1.4 and EPS > EPS last year and Sales growth 3Years > 10 and Profit growth 3Years > 10 and Profit growth > 10 and Sales growth > 10 and Average return on equity 3Years > 20 and Return on equity > 20 and Average return on capital employed 3Years > 20 and Market Capitalization < 10000 and Market Capitalization > 50 and Profit growth 3Years > Price to Earning and EVEBITDA <= 10 and Volume > 1000
Running this across all Indian stocks results just 3 stocks
Feel free to play with screening criterions and research meticulously resulting companies (manual research is tremendously important for any good analyst / investor)