Long response. This is assuming you're looking for a professional-level person. Hourly and line-worker folks are a little different, but I think the principles are the same.
1. Know who you're looking for.
Most of the time, crappy interviews start a long time before you sit down with someone. What does your ideal candidate look like? What are they good at? What do they like to do?
Earlier in my career I messed this up a bunch. I didn't know who I was looking for, and I ended up hiring people who were happy to work in a job that wasn't clear. We deserved each other. It didn't work out for anyone.
2. Ask for real world stories and listen to what they say (and don't say).
People are pretty good at figuring out what you want to hear. So get your mind right and decide that what you want to hear is an honest understanding of who this person is, what they naturally like to do, and what they're good at. Think of yourself as a matchmaker, not a hiring manager.
Let's say it's really important that this role provides highly personalized, thoughtful customer service. If you ask them to tell you about a time they've provided highly personalized customer service, they'll come up with something.
Instead, ask for a story about their previous experience and listen for whether the customer service they provided was highly personalized and thoughtful. If it was, that's probably how they like to roll. If it wasn't, it's probably a gap.
3. Listen for culture.
Whatever core values and cultural norms your company has, ask for stories where those values might show up and then listen for whether they're there (like the highly personalized/thoughtful example).
Make notes of which ones regularly show up and which ones don't.
4. Listen for demonstrated competency.
Similar to culture. Ask for stories about their experience and see if they've demonstrated competency in what you'll expect from them in the job. If they'll need to be great on the phone or provide presentations, just listen for whether they ever bring those things up. Again, this requires that you know what you're going to expect of this person.
Make notes of what shows up and what doesn't.
5. Listen for BS and dig deeper.
If the stories are vague or sound a little "too perfect" then ask follow ups. Get details. It's unlikely they're outright lying, but they still might be full of crap. And if they're going to BS you in the interview, they'll BS you (and your customers and their teammates) for as long as you work together. We're all smart enough to understand the line between painting something in a positive light and being full of it.
This is HIGHLY important when hiring salespeople.
6. Listen to THEIR questions.
Top performers have questions about the work. If they don't have meaningful questions about the job this is a huge red flag.
Occasionally you'll get "y'all answered all my questions." If you get that, ask them what questions they had coming in. And ask them why those questions were important.
7. Address whatever gaps you identified.
There are no perfect candidates. Whatever didn't show up (culture and competency), bring it up with them directly.
"Hey, for this job it'll be really important that you ______ and I didn't hear you really talk about that in your past experience."
Good candidates will be honest about whether it's a gap. Again, listen for BS. Make sure they understand the expectations. And if there's a gap, what closing it would look like.
8. Make sure they understand "what's the catch."
As the owner, I have a final interview with them and this is my job. I talk to them in depth about the company culture and values, and I make sure they understand why it's not a good fit for some people. On the surface it all sounds great, but there have been people who were a bad fit and it caused a lot of hassle and BS for everyone.
We all live in the real world. You know there are some things that would drive some people nuts about working at your company. The good fit folks love it, others find it super annoying. Be honest about it up front.