He was admitted to the bar in 1878 and commenced practice in Boonville, Missouri.
He served as prosecuting attorney of Cooper County, Missouri from 1882 to 1886 and from 1890 to 1892.
He served as judge of the fourteenth judicial circuit of Missouri from June 1, 1892, until his resignation on September 9, 1899, having been elected to Congress.
Shackleford was elected as a Democratic Representative to the Fifty-sixth Congress to fill the vacancy caused by the death of Richard P. Bland.
He was re-elected to the Fifty-seventh and to the eight succeeding Congresses and served from August 29, 1899, to March 3, 1919.
He served as chairman of the Committee on Roads (sixty-third to sixty-fifth Congresses) and introduced legislation that would ultimately be enacted as the Federal Aid Road Act of 1916. On April 5, 1917, he voted against declaring war on Germany.
He was an unsuccessful candidate for renomination in 1918 to the Sixty-sixth Congress.
He moved to Jefferson City, Missouri, in 1919 and continued the practice of law.
He died in Jefferson City, Missouri, July 15, 1936.
He was interred in Walnut Grove Cemetery, Boonville, Missouri.