The San Francisco 49ers announced on Tuesday that they have claimed CB C.J. Goodwin off waivers from the New York Giants and waived WR DeAndre Carter. The team also signed undrafted rookie free agent DL Blaine Woodson to a three-year deal. Woodson participated in the team's rookie mini-camp on a tryout basis earlier this offseason.

Goodwin (6-4, 220) originally signed with the Pittsburgh Steelers as an undrafted rookie free agent on May 4, 2014. After spending the majority of his first two seasons on the Steelers practice squad (2014-15), he was signed by the Atlanta Falcons on January 5, 2016. With the Falcons, he appeared in 26 games (one start) and registered 12 tackles and two passes defensed. He also appeared in three postseason contests where he added three tackles and one pass defensed. He was waived by Atlanta on December 14, 2017, claimed off waivers by the Arizona Cardinals the following day where he went on to appear in two games. After signing a one-year exclusive rights contract with the Cardinals on April 3, 2018, he was waived by the team on May 1 and claimed by the New York Giants the following day. He was waived by the Giants on May 14.

A 28-year-old native of Wheeling WV, Goodwin attended California University of Pennsylvania after beginning his collegiate career at Bethany College and Fairmont State University. He finished his career at California University of Pennsylvania, appearing in all 11 games (one start) at wide receiver where he added 11 receptions for 126 yards and one touchdown. At Fairmont State, he registered 24 receptions for 440 yards and four touchdowns at wide receiver.

A 22-year-old native of Stroudsburg, PA, Woodson (6-2, 280) attended the University of Delaware. During his five-year career with the Blue Hens (2013-17), he played in 45 games (44 starts) and registered 159 tackles, 21.5 tackles for loss, 14.5 sacks, one interception, one pass defensed and one forced fumble. As a senior in 2017, he started all 11 games in which he appeared, and notched 55 tackles, 3.5 tackles for loss, three sacks, one interception and one forced fumble. In 2016, he started 11 games and finished with 24 tackles, 3.5 tackles for loss and one sack. In 2015, he earned Second-Team All-Colonial Athletic Association honors for the second-consecutive season after starting 11 games and finishing with 29 tackles, 3.5 tackles for loss and two sacks. He appeared in 12 games (11 starts) and registered 51 tackles, 11 tackles for loss and 8.5 sacks in 2014, and earned Second-Team All-Colonial Athletic Association honors after retaining freshman eligibility after not seeing game action in 2013.