CVS Health Data Scientist Interview Experience — Four Rounds, a Lawyer's Red Flag, and a Runner-Up Finish

Company: CVS Health

Role: Data Scientist

Round: Onsite

Seniority: General

Outcome: Rejected

On 2/5 I got an invite from the recruiter for a team video interview, and we picked 2/7 for the time. We talked about my resume and work history. She asked some basic questions about my status. She kept saying they were hiring urgently, so we scheduled the tech interview for 2/12, and along the way she went over the topics and content for it. That's when I learned it would be a tech interview focused on SQL and Python pandas. 2/12 tech interview. One hour of coding test — actually split into 25 minutes of SQL and 25 minutes of Python. It started with a self-introduction, and after the coding we chatted a bit about ML and A/B testing. The interviewer was nice, and the platform they used let you actually run your code, unlike a lot of other companies where they just hand you a table DDL and make you write blind. It's been two or three weeks since the interview so I don't remember all the details — just a rough sketch. There were about 3-4 SQL questions and 3-4 Python questions. The SQL setup was two tables — one about users, one about purchases. The first question gave a table and asked whether there were duplicate user IDs, and had me select both the raw and deduplicated user IDs. The second question asked for the users who made more than a certain number of purchases, along with their purchase counts — a CTE with a count, then a join and a where clause solved it. The third question asked for a percentage — what fraction of all users made a given number of purchases — and I remember I needed to add a group by/distinct on the purchases table before the join. The first time I ran it the interviewer told me it was wrong; once I deduped it, it was correct. I don't remember if there were three or four questions total — I might be forgetting one — but I do remember the percentage-of-users question was the last one. Then the Python/pandas part. I don't remember the pandas questions that clearly, but the funny thing is the interviewer mixed up question 1 and question 4 right off the bat. Question 1 should have just been a merge followed by a groupby-sum, with two output tables, but she asked me to produce a 2x2 pivot instead — pandas' pivot with aggfunc='sum' handled that. One of the middle two questions I don't remember exactly, but it was different from what the SQL side asked (a lot of the pandas questions on Leetcode are actually the SQL questions ported over). It used something like groupby, value_counts, merge, nunique/size, sort_values. Another one I remember was assigning 0/1 based on a condition — import numpy and use np.where. By question 4 I realized question 1 had already been asked earlier, so I went back and did question 1 there. That's roughly when time ran out. In the time left we talked about past projects and A/B testing for about 5-6 minutes. Note: on their platform, once a pandas question outputs a table, it gets saved, so the next question can reuse the table from the previous one — pretty convenient. 2/12 at 6pm, HR told me I passed this round. The next round would be with the manager; they were off 2/17 so we scheduled it for 2/18. The topic was case studies. 2/18, interview with the manager, 45 minutes. It was all about A/B testing and their campaigns — for example, how would you design a campaign to get people to go get a flu shot, mainly walking through my thought process and the factors I'd consider. (Thanks to a fellow forum member here — this exact question showed up.) Then she asked how you'd choose who to text or email. How do you know which campaign or channel actually brought a customer in. How would you design the A/B test for an experiment like that. They got back to me the same day — I moved on to round three. HR told me it would be BQ (behavioral questions) plus a case. 2/19, interview with the hiring manager, 45 minutes. Surprisingly there weren't many BQ questions — it also ended up centering on flu shots and campaigns. Pretty similar to the previous interview, though there was an extra question about how to evaluate campaign effectiveness and what to do if it's not working — like, if 100 people got a flu shot but only 50 of them actually came in because they got a text or email, what do you do. After this interview, HR had basically already popped the champagne for me (I mean, seriously) — they said the final round would be with an executive, 30 minutes, described as "basically just a chat." We scheduled it for 2/21. 2/21, final round with the executive. It really was 30 minutes, but it wasn't relaxed at all — all serious behavioral questions. Luckily I had prepped on the 18th and reviewed again on the night of the 20th. She asked roughly: an interesting project from my past, how I handle running into difficulties, what I do when a stakeholder is pushing a deadline on me, what I liked about my previous job and what I disliked. She never dug deep into any one question — it felt like a race against the clock, one question right after another. The whole time, she only seemed satisfied on the very first question; after that she seemed pretty impatient. Then on Friday night, the immigration lawyer they work with sent an email to HR, cc'ing me, saying that my status transfer would go past the grace period — flagging me as a red flag. (Seriously, have they never heard of transferring to B2 and getting a pending case approved? It felt like the lawyer either didn't know what they were doing or just didn't want to deal with the hassle. That lawyer might honestly be half the reason I got rejected.) After that I spent the entire weekend anxious over this red flag. Wednesday 2/26 I followed up, but HR didn't respond, which felt like a bad sign. Thursday 2/27 I texted HR to follow up again, and HR said they'd hired someone else with pharmacy-area experience. I was the classic runner-up. Overall, other than being really anxious and miserable from 2/22 to 2/27, everything else about the experience was pretty good, and I was genuinely interested in what the role actually does. It's just that the market isn't great, competition is fierce, and on top of that HR popped the champagne too early and the lawyer stirred things up — so I'd call the overall experience neutral.

CVS Health Data Scientist Interview Experience — Four Rounds, a Lawyer's Red Flag, and a Runner-Up Finish

CVS Health·Data Scientist·Oct 2025
OnsiteHR ScreenTechnical ScreenRejectedmedium

On 2/5 I got an invite from the recruiter for a team video interview, and we picked 2/7 for the time. We talked about my resume and work history. She asked some basic questions about my status. She kept saying they were hiring urgently, so we scheduled the tech interview for 2/12, and along the way she went over the topics and content for it. That's when I learned it would be a tech interview focused on SQL and Python pandas.

2/12 tech interview. One hour of coding test — actually split into 25 minutes of SQL and 25 minutes of Python. It started with a self-introduction, and after the coding we chatted a bit about ML and A/B testing. The interviewer was nice, and the platform they used let you actually run your code, unlike a lot of other companies where they just hand you a table DDL and make you write blind. It's been two or three weeks since the interview so I don't remember all the details — just a rough sketch. There were about 3-4 SQL questions and 3-4 Python questions.

The SQL setup was two tables — one about users, one about purchases. The first question gave a table and asked whether there were duplicate user IDs, and had me select both the raw and deduplicated user IDs. The second question asked for the users who made more than a certain number of purchases, along with their purchase counts — a CTE with a count, then a join and a where clause solved it. The third question asked for a percentage — what fraction of all users made a given number of purchases — and I remember I needed to add a group by/distinct on the purchases table before the join. The first time I ran it the interviewer told me it was wrong; once I deduped it, it was correct. I don't remember if there were three or four questions total — I might be forgetting one — but I do remember the percentage-of-users question was the last one.

Then the Python/pandas part. I don't remember the pandas questions that clearly, but the funny thing is the interviewer mixed up question 1 and question 4 right off the bat. Question 1 should have just been a merge followed by a groupby-sum, with two output tables, but she asked me to produce a 2x2 pivot instead — pandas' pivot with aggfunc='sum' handled that. One of the middle two questions I don't remember exactly, but it was different from what the SQL side asked (a lot of the pandas questions on Leetcode are actually the SQL questions ported over). It used something like groupby, value_counts, merge, nunique/size, sort_values. Another one I remember was assigning 0/1 based on a condition — import numpy and use np.where. By question 4 I realized question 1 had already been asked earlier, so I went back and did question 1 there. That's roughly when time ran out. In the time left we talked about past projects and A/B testing for about 5-6 minutes.

Note: on their platform, once a pandas question outputs a table, it gets saved, so the next question can reuse the table from the previous one — pretty convenient.

2/12 at 6pm, HR told me I passed this round. The next round would be with the manager; they were off 2/17 so we scheduled it for 2/18. The topic was case studies.

2/18, interview with the manager, 45 minutes. It was all about A/B testing and their campaigns — for example, how would you design a campaign to get people to go get a flu shot, mainly walking through my thought process and the factors I'd consider. (Thanks to a fellow forum member here — this exact question showed up.) Then she asked how you'd choose who to text or email. How do you know which campaign or channel actually brought a customer in. How would you design the A/B test for an experiment like that.

They got back to me the same day — I moved on to round three. HR told me it would be BQ (behavioral questions) plus a case.

2/19, interview with the hiring manager, 45 minutes. Surprisingly there weren't many BQ questions — it also ended up centering on flu shots and campaigns. Pretty similar to the previous interview, though there was an extra question about how to evaluate campaign effectiveness and what to do if it's not working — like, if 100 people got a flu shot but only 50 of them actually came in because they got a text or email, what do you do.

After this interview, HR had basically already popped the champagne for me (I mean, seriously) — they said the final round would be with an executive, 30 minutes, described as "basically just a chat." We scheduled it for 2/21.

2/21, final round with the executive. It really was 30 minutes, but it wasn't relaxed at all — all serious behavioral questions. Luckily I had prepped on the 18th and reviewed again on the night of the 20th. She asked roughly: an interesting project from my past, how I handle running into difficulties, what I do when a stakeholder is pushing a deadline on me, what I liked about my previous job and what I disliked. She never dug deep into any one question — it felt like a race against the clock, one question right after another. The whole time, she only seemed satisfied on the very first question; after that she seemed pretty impatient.

Then on Friday night, the immigration lawyer they work with sent an email to HR, cc'ing me, saying that my status transfer would go past the grace period — flagging me as a red flag. (Seriously, have they never heard of transferring to B2 and getting a pending case approved? It felt like the lawyer either didn't know what they were doing or just didn't want to deal with the hassle. That lawyer might honestly be half the reason I got rejected.)

After that I spent the entire weekend anxious over this red flag. Wednesday 2/26 I followed up, but HR didn't respond, which felt like a bad sign. Thursday 2/27 I texted HR to follow up again, and HR said they'd hired someone else with pharmacy-area experience. I was the classic runner-up.

Overall, other than being really anxious and miserable from 2/22 to 2/27, everything else about the experience was pretty good, and I was genuinely interested in what the role actually does. It's just that the market isn't great, competition is fierce, and on top of that HR popped the champagne too early and the lawyer stirred things up — so I'd call the overall experience neutral.

Curated and edited by PracHub

Practice the questions from this interview